天天看點

基于jsp+servlet圖書管理系統之背景使用者資訊修改操作

上一篇的部落格寫的是查詢操作,且附有源碼和資料庫,這篇部落格寫的是修改操作,附有從頭至尾寫的代碼(詳細的注釋)和資料庫!

 為了友善了解和說明,先寫一下執行的流程和步奏,詳細代碼可以下載下傳連接配接。

  1:修改操作的執行流程:

    1.1:修改操作需要先擷取到使用者資訊的編号,然後才可以進行修改,腦子裡一定有這個思路。故擷取使用者編号的操作即為查詢操作。這裡使用了一個小工具進行分頁操作,感興趣的可以下載下傳源碼檢視,當作練手使用也是灰常不錯的選擇。

      <d:column href="system/userinfoupdate" value="修改" title="修改"

            paramId="userId"  paramProperty="userId">      

      </d:column>

                 <!-- 這裡送出到的是相對應的servlet的doSet方法裡面 -->

          1.2:點選修改送出到system/userinfoupdate這個路徑的servlet層。然後到了背景調用service業務邏輯層的getUser方法。

      UserInfoService service=new UserInfoServiceImpl();

           //調用service業務邏輯層的getUser方法

           UserInfo userInfo=service.getUser(user);     

    1.3:然後業務邏輯層調用dao層(資料處理=層),return dao.getUser(user.getUserId());

    1.4:dao層(資料處理層)執行和資料庫的連接配接等等操作之後執行 return user;//傳回使用者的資訊

    1.5:service層執行return dao.getUser(user.getUserId());傳回到servlet層 

    1.6:servlet層轉發到 userinfo_update.jsp更新操作的jsp頁面

      request.getRequestDispatcher("/view/system/userinfo/userinfo_update.jsp").forward(request, response);

      1.7:在更新頁面沒修改好之後就可以送出到system/userinfoupdate這個執行更新操作的servlet層的doPost方法。需要注意的是隐藏文本框是為了擷取使用者編号,一定要寫,不然擷取不到使用者的編号,無法進行修改。

      <form action="system/userinfoupdate" class="form-horizontal" method="post">

            <input type="hidden" name="userId" value="${user.userId }"/>

      </form>  

   1.8:執行到這個修改的servlet層之後調用業務邏輯層的修改方法。

            boolean mark=service.updateUser(user);

   1.9:service業務邏輯層(修改,插入,僞删除都是使用提出來的工具類的方法),是以調用工具類裡面的方法。

      //添加和修改(僞删除)都可以調用工具類裡面公共的方法。

                int count=DbUtils.addAndUpdate(sql, list.toArray());

         2.0:工具類裡面的方法執行之後傳回執行的結果。return ps.executeUpdate();         

   2.1:又傳回到了service層,将執行的true或者false結果傳回到servlet層。

                if(count>0){

                    return true;

                }else{

                    return false;

                } 

    2.2:最後傳回到了修改的servlet層

      boolean mark=service.updateUser(user);

            //判斷最後傳回值是否為true,如果為true,提示修改成功,否則提示修改失敗

            if(mark){

                request.setAttribute("info", "使用者資訊修改成功");

            }else{

                request.setAttribute("info", "使用者資訊修改失敗");

            }

            request.getRequestDispatcher("/view/system/userinfo/user_info.jsp").forward(request, response);

      2.3:判斷上面的true或者false之後轉發到user_info.jsp這個頁面,這個頁面用來提示資訊

    2.4:提示資訊之後又由js的window跳轉到system/userinfoselect這個路徑的servlet層。

      window.location="system/userinfoselect"; 

   2.5:  跳轉到這個servlet層之後轉發到userinfo_list.jsp這個頁面。顯示出修改之後的結果。完成修改操作 

      request.getRequestDispatcher("/view/system/userinfo/userinfo_list.jsp").forward(request, response);

     至此修改操作基本完成;

下面将執行流程的重要代碼寫一下,希望對學習基于java開發的web方法的小夥伴有所幫助,也友善以後自行腦補。詳細的代碼可以去連結位址下載下傳。 1

  1:按照頁面點選修改的流程進行寫代碼,友善了解。第一是找到頁面點選修改。

   2:點選修改之後就到了修改的servlet層的doSet方法

  3:執行了上面的servlet層之後又到了service層(業務邏輯層)頁面。

   4:由于是查詢操作,是以還需要寫dao層(資料處理層),是以又執行到了dao層

   5:執行到了dao層之後傳回到service層(業務邏輯層),傳回到service層之後servlet層,傳回到servlet層之後又傳回到userinfo_update.jsp頁面。傳回到這個頁面開始修改,修改之後又送出到修改的servlet的doPost的這個方法。送出到servlet的方法之後又調用service層的修改的方法,修改的方法有調用工具類,由于代碼都貼過了,這裡介紹了一下執行流程,大家有個思路,這種小項目下去練練手就行了。

最後到了user_info.jsp提示資訊的頁面,又由js的window轉到了userinfo_list.jsp頁面。最後修改完成。

  由于代碼過多,這裡強調的是執行流程,詳細的代碼設計可以下載下傳源碼和資料庫自行腦補。

下面簡單看看執行的效果。(想想一個修改,執行起來。還TMD搞真複雜,哎,碼農不容易啊!)

 使用者管理界面的資訊:

基于jsp+servlet圖書管理系統之背景使用者資訊修改操作

點選修改之後的頁面:需要注意的是賬号設定為可讀不可寫,即不可修改。

基于jsp+servlet圖書管理系統之背景使用者資訊修改操作

儲存使用者之後對比顯示使用者資訊已經修改完成了。

基于jsp+servlet圖書管理系統之背景使用者資訊修改操作

至此修改示範基本完畢,感興趣的的可以下載下傳源碼看看。