Ajax实现登录页面

通过使用ajax实现用户的登录

1、前端页面:
在这里插入图片描述
具体实现:(省略js文件的引用)

<body>
<%Date date = new Date();SimpleDateFormat sdf = new SimpleDateFormat("YYYY");String time = sdf.format(date);%>
<div class="container">
	<img class="bgone" src="./images/1.jpg" />
	<img class="pic" src="./images/a.png" />
	<form>
		<div class="table">
			<div class="wel">教师教学工作量统计系统</div>
			<div class="wel1">Statistical System Of Teaching Workload</div>
			<div class="dtext">© <%=time %> 圣文顺  & 蔡熙贝. All Rights Reserved.</div>
			<div class="user">
				<div id="yonghu"><img src="./images/yhm.png" /></div>
				<input type="text" name="staffid" id="staffid"/>
			</div> 
			<div class="password">
				<div id="yonghu"><img src="./images/mm.png"/></div>
				<input type="password" name="password" id="password"/>
			</div>
			<div class="fontdiv"><a href="javascript:void(0)" onclick="updatePwd()" class="font">忘记密码?</a></div>
			<font color="red"><label id="tip" class="tip"></label></font>
			<input class="btn" type="button" onclick="loginHome()" value="登录"/>
		</div>
	</form>
</div>
</body>
</html>

2、Ajax实现的Js文件

function loginHome(){
    var name =$("#staffid").val();//#是id选择器
    var pwd =$("#password").val();
    if(name==""){
    	document.getElementById("tip").innerText="用户名不能为空";
        return false;
    }
    if(pwd==""){
    	document.getElementById("tip").innerText="密码不能为空";
        return false;
    }
    else{
    	$.ajax({
	        type:"post",       //请求类型
	        url:"login.aspx",	//请求地址
	        dataType:"json",	//预期返回的参数类型
	        async: true,			//true代表的是异步请求,false代表的是同步请求,若为同步请求则会锁住浏览器
	        data:{staffid:name,password:pwd},    //传入后端Controller的参数
	        success:function(data){				//这里的data是后台返回的值
	        	var password = data.password;//提取出来密码
	        	if(pwd != password){
	        		document.getElementById("tip").innerText="账号或密码输入错误";
        		}else{
        			window.location.href="home.aspx";
        		}
	        }
	    });
    }
}

3、控制器部分

这里需要讲一下,因为js文件中dataType是json,也就是返回的是一个JSON格式的对象,所以控制器需要使用@ResponseBody注解

@responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML。

数据,需要注意的呢,在使用此注解之后不会再走试图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据。

@RequestMapping("login.aspx")
@ResponseBody    //@ResponseBody  注解用来将对象转化成json格式,在这里也就是说返回的user是json格式的
public User login(String staffid,String password,HttpServletRequest request,HttpServletResponse response) throws IOException {
	HttpSession session = request.getSession();
	userDao = sqlSession.getMapper(UserDao.class);
	User user = userDao.queryUser(staffid);
	if(user!=null) {
		if(password.equals(user.getPassword())) {
			session.setAttribute("user", user);
			return user;
		}else {
			return user;
		}
	}else {
		return null;
	}
}

4、演示
在这里插入图片描述

5、写在最后,json格式需要下载相应jar包
在这里插入图片描述

发布了54 篇原创文章 · 获赞 39 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Mr_C_python/article/details/104304367
今日推荐