最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaWEB SMBMS實現密碼修改功能過程

 更新時間:2026年02月03日 08:56:40   作者:追JAVA的小菜鳥  
本文介紹了實現密碼修改功能的步驟,包括前端頁面、Dao層、Service層和Servlet層的編寫和調用,通過這些步驟,可以實現用戶密碼的修改功能

實現密碼修改功能

1、導入前端素材

密碼修改頁面——pwdmodify.jsp

2、Dao層——userDao接口

// 修改用戶密碼
public int updateUserPwd(Connection connection, int id, String userPassword) throws SQLException;

3、Dao層——userDaoImpl實現類

  • 編寫sql語句進行修改操作——未傳實參
public int updateUserPwd(Connection connection, int id, String userPassword) throws SQLException {
    PreparedStatement preparedStatement = null;
    int row = 0;
    if (connection != null){
        String sql = "update smbms_user set userPassword = ? where id = ?";
        Object params[] = {userPassword,id};
        row = BaseDao.execute(connection, preparedStatement, sql, params);
        BaseDao.release(null,preparedStatement,null);
    }
    return row;
}

4、Service層——userService接口

// 修改用戶密碼
public Boolean updatePwd(int id,String password);

5、Service層——userServiceImpl實現類

  • 調用Dao層,實現修改密碼操作——未傳實參
// 修改用戶密碼
public Boolean updatePwd(int id, String password) {
    Connection connection = null;
    boolean flag = false;
    try {
        connection = BaseDao.getconnection();
        // 如果調用Dao層數方法,返回行數大于0,則更新成功
        if (userDao.updateUserPwd(connection, id, password)>0){
            flag = true;
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }finally {
        BaseDao.release(connection,null,null);
    }
    return flag;
}

6、Servlet層——UserServlet

  • 從頁面獲取參數,調用userServiceImpl實現updatePwd()方法

完成Servlet的復用,調用各種方法

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    // 如果當前頁面?zhèn)骰氐闹岛驮O定的method的值一樣,就進入修改密碼方法
    String method = req.getParameter("method");
    if (method != null && method.equals("savepwd")) {
        this.UpdatePassword(req, resp);
    }else if(method.equals("pwdmodify")){
        this.pwdModify(req,resp);
    }
}

修改新密碼方法——UpdatePassword()

// 修改密碼——判斷新密碼
public void UpdatePassword(HttpServletRequest req, HttpServletResponse resp) throws IOException {
    boolean flag = false;
    // 1. 從Session中獲取user的信息
    Object obj = req.getSession().getAttribute(Constants.USER_SESSION);
    // 2. 從頁面中獲取新密碼
    String newpassword = req.getParameter("newpassword");
    // 3. 判斷——如果obj和輸入的密碼不為空 則進行修改密碼操作(在數據庫中修改)
    if(obj != null&& newpassword != null){
        userServiceImpl userService = new userServiceImpl();
        // 4. 把obj強轉為User類型,拿到用戶ID信息,傳入方法中
        flag = userService.updatePwd(((User) obj).getId(), newpassword);
        System.out.println("修改密碼前:"+req.getSession().getAttribute(Constants.USER_SESSION));
        if(flag){
            // 若修改成功 移除已存在的Session
            req.setAttribute("message","密碼修改成功!");
            req.getSession().removeAttribute(Constants.USER_SESSION);
        }else {
            // 若修改失敗,展示錯誤原因
            req.setAttribute("message","密碼修改失?。?);
        }
    }else {
        req.setAttribute("message","新密碼為空,密碼修改失敗!");
    }
    // 不管修改成功與否 都跳轉到當前頁面,因為session被清除了,所以沒有權限,會跳轉到error頁面
    resp.sendRedirect("pwdmodify.jsp");
    System.out.println("修改密碼后:"+req.getSession().getAttribute(Constants.USER_SESSION));
}

驗證舊密碼——pwdModify()

// 修改密碼——驗證舊密碼
public void pwdModify(HttpServletRequest req, HttpServletResponse resp) {
   // 1. 從Session中獲取user的信息
   Object obj = req.getSession().getAttribute(Constants.USER_SESSION);
   // 2. 從頁面獲取輸入的舊密碼
   String oldpassword = req.getParameter("oldpassword");
   // 3. new 一個Map結果集
   HashMap<String, String> resultMap = new HashMap<String, String>();
   // 4. 若停留頁面時間過長,session失效,展示錯誤信息
   if (obj == null) {
       resultMap.put("result", "sessionerror");
   } else if (oldpassword == null) {
       // 5. 若輸入的舊密碼為空,展示錯誤信息
       resultMap.put("result", "error");
   } else {
       // 6. 獲取Session中的舊密碼,與輸入的舊密碼比較
       String userOldPassword = ((User) obj).getUserPassword();
       if (userOldPassword.equals(oldpassword)) {
           // 若相同,返回true
           resultMap.put("result", "true");
       } else {
           resultMap.put("result", "false");
       }
   }
   try {
       resp.setContentType("application/json");
       PrintWriter writer = resp.getWriter();
       //JSONArray 阿里巴巴的JSON工具類, 轉換格式
       /*
       resultMap = ["result","sessionerror","result","error"]
       Json格式 = {key:value}
        */
       writer.write(JSONArray.toJSONString(resultMap));
       writer.flush();
       writer.close();
   } catch (IOException e) {
       e.printStackTrace();
   }
}

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • java編程題之順時針打印矩陣

    java編程題之順時針打印矩陣

    這篇文章主要為大家詳細介紹了java編程題之順時針打印矩陣,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • JavaWeb實現RSA+AES混合加密

    JavaWeb實現RSA+AES混合加密

    RSA+AES的混合加密時,AES用于給傳輸的數據加密,然后通過RSA給AES的秘鑰加密,本文就來詳細的介紹一下如何實現,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • 詳解Java編程的Observer觀察者設計模式

    詳解Java編程的Observer觀察者設計模式

    這篇文章主要介紹了Java編程的Observer觀察者設計模式,觀察者模式定義了一個一對多的依賴關系,讓一個或多個觀察者對象監(jiān)察一個主題對象,需要的朋友可以參考下
    2016-01-01
  • idea本地merge如何合并代碼

    idea本地merge如何合并代碼

    這篇文章主要介紹了idea本地merge如何合并代碼問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • java報錯:javax.xml.bind.JAXBException:?JAXB解決辦法

    java報錯:javax.xml.bind.JAXBException:?JAXB解決辦法

    這篇文章主要介紹了java報錯:javax.xml.bind.JAXBException:?JAXB的解決辦法,文中通過示例提出多種解決方案,幫助開發(fā)者快速定位并解決問題,需要的朋友可以參考下
    2025-05-05
  • Java中List與數組相互轉換實例分析

    Java中List與數組相互轉換實例分析

    這篇文章主要介紹了Java中List與數組相互轉換的方法,實例分析了Java中List與數組相互轉換中容易出現的問題與相關的解決方法,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-05-05
  • Java 使用Docker時經常遇到的五個問題

    Java 使用Docker時經常遇到的五個問題

    這篇文章主要介紹了Java 使用Docker時經常遇到的五個問題的相關資料,需要的朋友可以參考下
    2016-10-10
  • StringBuilder如何拼接(截取)想要的字符串

    StringBuilder如何拼接(截取)想要的字符串

    文章主要介紹了Java中字符串操作的兩種常用類StringBuilder和StringBuffer,以及三元表達式的使用和字符串截取的方法
    2024-12-12
  • 微信開發(fā)準備第二步 springmvc mybatis項目結構搭建

    微信開發(fā)準備第二步 springmvc mybatis項目結構搭建

    這篇文章主要為大家詳細介紹了微信開發(fā)準備第二步,springmvc和mybatis項目結構的搭建,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Spring注解和同步鎖不能同步問題解決

    Spring注解和同步鎖不能同步問題解決

    這篇文章主要介紹了Spring注解和同步鎖不能同步問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12

最新評論

乌兰浩特市| 台江县| 通渭县| 安吉县| 临沂市| 怀仁县| 禹城市| 三都| 高淳县| 柳江县| 邵东县| 嵊泗县| 保靖县| 亚东县| 鹤庆县| 廊坊市| 松江区| 凤城市| 即墨市| 夏津县| 孙吴县| 喀喇| 九寨沟县| 广汉市| 沅江市| 武宁县| 广元市| 正宁县| 兴国县| 九龙县| 南投县| 哈尔滨市| 错那县| 鄄城县| 黄龙县| 磴口县| 英德市| 彭阳县| 漳平市| 昌都县| 观塘区|