前端配置
ajax配置:
设置方法名为:method:“pwdmodify”
通过data.result方法来判断,并显示提示值。
oldpassword.on("blur",function(){
$.ajax({
type:"GET",
url:path+"/jsp/user.do",
data:{method:"pwdmodify",oldpassword:oldpassword.val()},
dataType:"json",
success:function(data){
if(data.result == "true"){//旧密码正确
validateTip(oldpassword.next(),{"color":"green"},imgYes,true);
}else if(data.result == "false"){//旧密码输入不正确
validateTip(oldpassword.next(),{"color":"red"},imgNo + " 原密码输入不正确",false);
}else if(data.result == "sessionerror"){//当前用户session过期,请重新登录
validateTip(oldpassword.next(),{"color":"red"},imgNo + " 当前用户session过期,请重新登录",false);
}else if(data.result == "error"){//旧密码输入为空
validateTip(oldpassword.next(),{"color":"red"},imgNo + " 请输入旧密码",false);
}
},
error:function(data){
//请求出错
validateTip(oldpassword.next(),{"color":"red"},imgNo + " 请求错误",false);
}
});
思路
直接从session中获得用户的密码,进行判断
注:1.需要考虑session过期的情况
servlet层
public void PsdModify(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{
Object o = request.getSession().getAttribute(Constants.USER_SESSION);
String oldpassword = request.getParameter("oldpassword");
Map<String,String> resultmap = new HashMap<String, String>();
if (o == null){//session过期了
resultmap.put("result","sessionerror");
}else if (StringUtils.isNullOrEmpty(oldpassword)){
resultmap.put("result","error");
}else {
String userPassword = ((user) o).getUserPassword();
// equals和==的区别
if (oldpassword.equals(userPassword)){
resultmap.put("result","true");
}else {
resultmap.put("result","false");
}
}
response.setContentType("application/json");
PrintWriter writer = response.getWriter();
// 转换格式,将map键值对性的数据转化为json类型的,传递给前端
writer.write(JSONArray.toJSONString(resultmap));
writer.flush();
writer.close();
}
在web.xml中设置session的有效时间
<!--设置session有效时间-->
<session-config>
<session-timeout>30</session-timeout>
</session-config>
equals 和 == 之间的区别
equals是判断两个变量或者实例指向同一个内存空间的值是不是相同
而==是判断两个变量或者实例是不是指向同一个内存空间
举个通俗的例子来说,==是判断两个人是不是住在同一个地址,而equals是判断同一个地址里住的人是不是同一个