优化密码修改使用ajax。主要是与前端接轨。
1.阿里巴巴fastjson
maven导入,导入包。
<!-- 阿里巴巴fastjson包-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.61</version>
</dependency>
2.验证旧密码(从现有的session中获取,session里面存有你登陆的信息,你登陆的信息就是旧密码)
//验证就旧密码,session中有用户的旧密码
public void pwdmodify(HttpServletRequest req, HttpServletResponse resp){
//从session中拿ID
Object o = req.getSession().getAttribute(Constants.USER_SESSION);
String oldpassword = req.getParameter("oldpassword");
//万能的Map : 结果集
Map<String, String> resultMap = new HashMap<String,String>();
if (o==null){//session失效了,session过期了
resultMap.put("result", "sessionerror");
}else if (StringUtils.isNullOrEmpty(oldpassword)){//输入的密码为空
resultMap.put("result","error");
}else {
String userPassword = ((User) o).getUserPassword();//session中用户的密码
if (oldpassword.equals(userPassword)){
resultMap.put("result","true");
}else {
resultMap.put("result","false");
}
}
try {
resp.setContentType("application/json");
PrintWriter writer = resp.getWriter();
//JSONArray 阿里巴巴的Json工具类,就是一个转换格式的。
/*
* resultMap = ["result","error","result","true"]
* Json格式 = {key,value}
* */
writer.write(JSONArray.toJSONString(resultMap));//就是把结果集编程json字符串传给前端。
writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
依据这个js来写。要清楚true,false等情况。
效果: