狂神说 javaweb 33集:smbms密码修改实现_SMBMS 项目搭建(四)

33.smbms密码修改实现

  1. 导入前端素材

 <li><a href="${pageContext.request.contextPath }/jsp/pwdmodify.jsp">密码修改</a></li>
 

写项目,建议从底层向上写

在这里插入图片描述

  1. UserDao接口

    updatePwd.java

     //修改当前用户密码
     public int updatePwd(Connection connection, int id, String pwd) throws Exception;
  2. UserDao接口实现类

    updatePwd.java

 //修改当前用户密码
 public int updatePwd(Connection connection, int id, String pwd) throws Exception {
     int flag = 0;
     PreparedStatement pstm = null;
     if (connection != null) {
         String sql = "update smbms_user set userPassword= ? where id = ?";
         Object[] params = {pwd, id};
         flag = BaseDao.execute(connection, pstm, sql, params);
         BaseDao.closeResource(null, pstm, null);
    }
     return flag;
 }
  1. UserService层

     //根据用户Id修改密码
     public boolean updatePwd(int id, String pwd);
  2. UserService实现类

     public boolean updatePwd(int id, String pwd) {
         boolean flag = false;
         Connection connection = null;
         try {
             connection = BaseDao.getConnection();
             if (userDao.updatePwd(connection, id, pwd) > 0) {
                 flag = true;
            }
        } catch (Exception e) {
             e.printStackTrace();
        } finally {
             BaseDao.closeResource(connection, null, null);
        }
         return flag;
     }
  3. servlet记得实现复用,要提取出方法! dao层service层 自己写映射类和实现类 下面是 servlet层 的主体

     //实现Servlet的复用
     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         //从Session里面拿ID
         Object o = request.getSession().getAttribute(Constants.USER_SESSION);
         String newpassword = request.getParameter("newpassword");
         boolean flag = false;
         if (o != null && !StringUtils.isNullOrEmpty(newpassword)) {
             UserService userService = new UserServiceImpl();
             flag = userService.updatePwd(((User) o).getId(), newpassword);
             if (flag) {
                 request.setAttribute("message", "修改密码成功,请退出并使用新密码重新登录!");
                 request.getSession().removeAttribute(Constants.USER_SESSION);//session注销
            } else {
                 request.setAttribute("message", "修改密码失败!");
            }
        } else {
             request.setAttribute("message", "修改密码失败!");
        }
         //修改成功后转发就行了
         request.getRequestDispatcher("pwdmodify.jsp").forward(request, response);
     }
  4. 提取为方法

     public class UserServlet extends HttpServlet {
         @Override
         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 );
            }
     
        }
     
         @Override
         protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
             doGet( req, resp );
        }
         public void updatePwd(HttpServletRequest request, HttpServletResponse response){
             //从Session里面拿ID
             Object o = request.getSession().getAttribute(Constants.USER_SESSION);
             String newpassword = request.getParameter("newpassword");
             boolean flag = false;
             if (o != null && !StringUtils.isNullOrEmpty(newpassword)) {
                 UserService userService = new UserServiceImpl();
                 flag = userService.updatePwd(((User) o).getId(), newpassword);
                 if (flag) {
                     request.setAttribute("message", "修改密码成功,请退出并使用新密码重新登录!");
                     request.getSession().removeAttribute(Constants.USER_SESSION);//session注销
                } else {
                     request.setAttribute("message", "修改密码失败!");
                }
            } else {
                 request.setAttribute("message", "修改密码失败!");
            }
             //修改成功后转发就行了
             try {
                 request.getRequestDispatcher("pwdmodify.jsp").forward(request, response);
            } catch (ServletException e) {
                 e.printStackTrace();
            } catch (IOException e) {
                 e.printStackTrace();
            }
        }
     }

    注册xml

     <servlet>
         <servlet-name>UserServlet</servlet-name>
         <servlet-class>com.study.servlet.user.UserServlet</servlet-class>
     </servlet>
     <servlet-mapping>
         <servlet-name>UserServlet</servlet-name>
         <url-pattern>/jsp/user.do</url-pattern>
     </servlet-mapping>
  5. 测试

posted @   坚持做  阅读(130)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示