jFinal写的登录功能的具体实现

本文介绍了一个简单的用户登录系统的实现过程,包括登录验证的Model层逻辑和Controller层处理流程,以及前端页面交互和Ajax异步请求的实现细节。

不细讲,主要留自己下次复制用的(嘿嘿)

	//登录   model
		public boolean findUserLogin(String username,String password,List<User> userlist){
			String querysql="select * from user where username=? and password=? AND state=1 ";
			List<User> list;
			try{
				//绑定参数查询数据使用find()方法查询数据返回数据为集合
				list=this.dao.find(querysql, username,password);
			}catch(Exception ex){
				ex.printStackTrace();
				return false;
			}
			if(list.isEmpty() || list==null){
				return false;
			}
			//将登录者数据添加到userlist集合中
			userlist.add(list.get(0));
			return true;
			
		}

//登录 Controller
	public void login(){
		//获取登录者信息查询
		String username=getPara("username");
		
		String password=getPara("password");
		
		List<User> userlist=new ArrayList<User>();
		boolean bflag = User.dao.findUserLogin(username, password, userlist);
		//如果数据能查出来保持会话更新登陆时间并将登录者信息响应回去
		if(bflag){
			//this.getSession().setAttribute("username", username);
			//创建当前时间以字符串形式返回
			String t=TimeHelper.Format("yyyy-MM-dd HH:mm:ss");
			//记录登录者登录信息
			String sql="update user set LoginTime=? where username=?";
			//使用update方法执行修改语句
			Db.update(sql, t,username);
			//设置代表登录状态的信息
			setAttr("status",0);
			//储存登录者信息于请求中
			setAttr("user",userlist.get(0));
			//将登录者信息保存到会话session中
			this.setSessionAttr("adminlogin", userlist.get(0));
			
		}else{
			//如果失败登录状态为-1代表
			setAttr("status",-1);
		}
		//响应请求
		this.renderJson();
		
	}

<-- 局部的html,jsp页面 -->           
 <form method="post">
                <div class="form-group">
                    <input type="text" class="form-control" placeholder="用户名" required="required" id="username">
                </div>
                <div class="form-group">
                    <input type="password" class="form-control" placeholder="密码" required="required" id="password">
                </div>
                <button id="login" type="button" class="btn btn-primary block full-width m-b" onclick="javascript:loginSubmit()">登 录</button>
                                                                                  
                <!--  
                <p class="text-muted text-center"> <a href="login.html#"><small>忘记密码了?</small></a> | <a href="register.html">注册一个新账号</a>
                </p>
                -->

            </form>

敲击回车键触发 登录的单击事件

 <script>
    $("body").keydown(function() {
        if (event.keyCode == "13") {//keyCode=13是回车键
            $("#login").click();
        }
    });
    
    </script>

ajax代码如下:

/*
 *管理员登录 
 */
function loginSubmit(){
	//获取login.jsp页面的数据登录者姓名和密码
	var username=$("input#username").val();
	var password=$("input#password").val();
	if(username==""){
		layer.tips('用户名不能为空',"#username",{
			tips:[2,'#ff0000']});
		$("input#username").focus();
		return;
	}
	if(password==""){
		layer.tips('密码不能为空','#password',{
			tips:[2,'#ff0000']
		});
		$("input#password").focus();	
		return;
	}
	//当密码和用户名不为空的时候使用Ajax进行用户信息登录验证
	var strJSON ={"username":username,"password":password};
	jQuery.ajax({
		url:"./user/login",
		type:"POST",
		data:strJSON,
		success:function(obj){
			if(obj.status==0){
				//将登录者信息保存在cookie中以便添加信息时添加经济人
				setCookie("loginname",obj.user.username);
				//跳转到首页
				window.location.replace("index.jsp");//登录成功
			}else{
				layer.alert('用户名或密码不正确', {
      			  skin: 'layui-layer-molv' //样式类名
      			  ,closeBtn: 0
      			  ,shift: 4 //动画类型
      			});
			}
		},
		error:function(){
			layer.alert('系统错误',{skin:'layui-layer-molv'
				,closeBatn:0});
		},
		complete:function(obj){
			if(obj.status==200);
		}
	});
}



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值