狂神说 javaweb 34集:Ajax验证密码实现_SMBMS 项目搭建(五)
优化密码修改使用Ajax
-
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.68</version>
</dependency>
//验证就密码: session中有用户的密码
public void pwdmodify(HttpServletRequest req, HttpServletResponse resp){
Object o = req.getSession().getAttribute(Constants.USER_SESSION);
String oldpassword = req.getParameter( "oldpassword" );
//万能的map: 结果集用map来代替
//我们一切的东西都可以存在map里面
HashMap<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();//session中用户的密码
if (oldpassword.equals( userPassword )){
resultMap.put( "result","true" );
}else {
resultMap.put( "result","false" );
}
}
try {
resp.setContentType( "application/json" );
//怎么返回json ,用流返回
PrintWriter writer = resp.getWriter();
//JSONArray 阿里巴巴的Json工具类,转换格式
/*
resultMap ={"result":"sessionerror","result":"error" }
JSON格式: {key:value,key:value}
*/
writer.write( JSONArray.toJSONString( resultMap ) );
writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
servlet实现
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String method = request.getParameter( "method" );
if(method.equals( "savepwd" ) && method != null){
this.updatePwd( request,response );
}else if (method.equals( "pwdmodify" ) && method != null){
this.pwdmodify( request,response );
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人