什么是Ajax异步请求交互
- 异步:客户端不需要等待服务器端的响应。在服务器处理请求的过程中,客户端可以进行其他的操作。目前网站估计已经全面普及应用了,所以必须掌握!
- 优点,不用刷新整个网页就可以大到更新数据的操作,以一种xhr请求想后端获取数据达到实时更新的效果,大大的提升了用户体验,
使用jQuery实现ajax
1、确定导入jquery,
2、简单来一个鼠标失去焦点发起一个请求,
3、代码实现
oldpassword.on("blur",function(){
$.ajax({
type:"GET",
url:path+"/jsp/modifypwd",
data:{oldpassword:oldpassword.val()}, //Ajax传递的参数
//等价于path+"/jsp/user.do?method=pwdmodify&oldpassword=oldpassword.val()
dataType:"json",
success:function(data){
if(data == "true"){//旧密码正确
validateTip(oldpassword.next(),{"color":"green"},imgYes,true);
}else if(data == "false"){//旧密码输入不正确
validateTip(oldpassword.next(),{"color":"red"},imgNo + " 原密码输入不正确",false);
}else if(data == "sessionerror"){//当前用户session过期,请重新登录
validateTip(oldpassword.next(),{"color":"red"},imgNo + " 当前用户session过期,请重新登录",false);
}else if(data == "error"){//旧密码输入为空
validateTip(oldpassword.next(),{"color":"red"},imgNo + " 请输入旧密码",false);
}
},
error:function(data){
//请求出错
validateTip(oldpassword.next(),{"color":"red"},imgNo + " 请求错误",false);
}
});
4、后端接受请求实现(ssm)
@ResponseBody
@RequestMapping("modifypwd")
public String modifypwd(@Param("oldpassword") String oldpassword, HttpServletRequest request){
System.out.println("进入密码验证");
HttpSession session = request.getSession(true);
User userByNameAndPwd = (User) session.getAttribute("user");
System.out.println("session"+userByNameAndPwd);
String userPassword = userByNameAndPwd.getUserPassword();
if(oldpassword.equals(userPassword)){
return "true";
}else if (StringUtils.isNullOrEmpty(oldpassword)){
return "error";
}else {
return "false";
}
}
- 使用注解@ResponseBody返回字符串或者json数据,ajax接受数据,进行判断,