1. 程式人生 > >Struts2框架實戰之J2EE網購整合(Struts2+Hibernate)

Struts2框架實戰之J2EE網購整合(Struts2+Hibernate)

5、Struts2框架實戰之J2EE網購整合


說明:此次Struts2實戰是在Hibernate的實戰的基礎上引入Struts2,最終實現Struts2+Hibernate5的框架。

上接Struts2攔截器&UI標籤:https://blog.csdn.net/biggerchong/article/details/84633068

目錄

5、Struts2框架實戰之J2EE網購整合

5.1 引入Struts2框架環境

5.2 取代servlet模組

  5.2.1 重構登入模組

5.2.2 重構商品模組

5.2.3 重構購物車模組

5.3 許可權管理(攔截器實現)   

5.4 總結


5.1 引入Struts2框架環境

         首先在github上下載Hibernate整合後的原始碼,用MyEclipse啟動後,之後引入Struts2的jar包和struts.xml的配置檔案,最後在web.xml中新增struts2的核心過濾支援,這樣Struts2環境就引入進來了。


5.2 取代servlet模組

我們知道,Struts2是一種web層的MVC框架,使用Struts2就可以取代傳統J2EE開發中servlet模組,利用Struts2的Action類將原始碼中的servlet的模組完全取代。

  5.2.1 重構登入模組

在登入模組中,

(1)首先更改登入模組的的myLogin.jsp與myRegister.jsp頁面表單action屬性;

(2)然後在struts.xml中配置package與package下的對應表單請求的action;

3)建立UserAction類,利用介面依次實現                                                                                                             UserService

àUserServiceImplàUserDaoàUserDaoImpl;

(4)在UserDaoImpl中來利用Hibernate來實現與資料庫互動的具體功能。

下面列出部分細節:

         struts.xml檔案:

        

         UserAction類:

        

         個人中心資訊顯示:

 

5.2.2 重構商品模組

顯然商品模組與前面的登入模組是差不多的,關鍵點是hibernate的處理,這裡主要來說商品查詢後如何在顯示頁面顯示的問題,在這裡我才用struts2的標籤iterator屬性來實現,如下圖:

 

5.2.3 重構購物車模組

購物車模組中應該使用多個ShoppingCarAction的方法,這裡為了減少程式碼量只用了一個方法,購物車和個人資訊中心都應該設定許可權管理,這部分將在後面設定訪問許可權(Struts2的攔截器來實現),這一板塊這裡還是主要關心頁面顯示,如下圖:


5.3 許可權管理(攔截器實現)   

登入許可權管理:當用戶未登入時,無法訪問個人中心並要求使用者登入;無法訪問購物車(可以瀏覽商品)並要求使用者登入。

首先編寫攔截器,對登入時傳入session中的userInfo進行查詢,如果userInfo存在(不為null)不做處理;如果userInfo不存在(為null)進行攔截並且跳轉頁面至登入介面。

 

攔截器privilageInterceptor如下:

 

struts.xml中配置攔截器進行攔截:

         定義攔截器

         在指定位置攔截


5.4 總結

在整個整合過程中需要保持思路清晰,struts2框架就是一套流程,慢慢熟練起來將大大提升開發效率,對於框架的使用還是比較簡單的,但是框架的原理?

尤其是對於SSH這種經典框架我們更應該知其然並知其所以然,當你足夠理解SSH這套經典框架的原理後,對於Java開發中那上百種框架也能得心應手,在框架的學習中我們學會使用框架是框架的入門,理解框架開發的深層原理才是重中之重的精髓。當然目前博主還只是入門階段,之後還需要看適當的書籍進一步加深理解,等我的功力練成那麼隨之而來將是深入理解SSH框架原理系列的大波福利,歡迎大家關注本人的CSDN部落格。


最後當然是原始碼了呀!已上傳至github:

         Struts2整合前原始碼:https://github.com/SCAsMessi/JavaStudy/tree/master/CSDN/%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%8F%8A%E6%A1%86%E6%9E%B6%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/myWeb%EF%BC%88Hibernate%E6%95%B4%E5%90%88%E5%90%8E%EF%BC%89

         Struts2整合後原始碼:https://github.com/SCAsMessi/JavaStudy/tree/master/CSDN/%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%8F%8A%E6%A1%86%E6%9E%B6%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/myWeb(Strtus2%2BHibernate%E6%95%B4%E5%90%88%E5%90%8E)

                                                                                                          ---Thanks             ----知飛翀