<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 7,  comments - 58,  trackbacks - 0
    struts與hibernate集成開發
    最近學習struts與hibernate相關知識,下面是個人對struts與hibernate集成開發的一些見解,寫出來跟大家共同討論、學習,歡迎指教。
     要集成struts與hibernate進行開發,首先應該了解一下struts和hibernate框架各自的工作原理和模式般的開發流程。
    首先介紹struts的大概工作流程,下面通過一張struts工作的時序圖來說明其工作流程:

    Struts工作流程分析:
    1)Web服務器啟動,初始化ActionServlet,讀取struts-config.xml文件配置信息,把這些信息分發到相應的對象中。
    2)用戶發出請求后,ActionServlet接收到請求,查找與請求匹配的Action映射對象(ActionMapping)對象是否存在,是:將請求以及Actionform對象傳遞給相應的Action對象。
    3)Action調用業務邏輯服務接口,結合ActionForm,對用戶的請求做出處理。
    4)Action處理完畢返回ActionForward對象給ActionServlet。ActionForward對象包含了轉發目標對象,可以是jsp或Action。
    5)ActionServlet根據ActionForward對象的指向繼續轉發請求,重復從第2步進行處理。
    至此,我們對struts 的基本工作流程有個整體的認識,但還沒提hibernate相關的任何知識,業務邏輯層也只是在第3)點微提一下。

    接下來,我們來看下hibernate是怎樣工作的?(注:在這不是討論ORM的實現,只討論怎讓hibernate這ORM中間件工作)
    Hibernate是個獨立的框架,它不依賴任何的Web Server或Application Server,就是說不需要這些支持。
    Hibernate有五個核心接口,分別為Configuratoin, SessionFactory, Session,Query及Criteria。通過這些接口就可以完成hibernate的初始化,對持久化對象進行存取,更新等操作。
    下面簡要介始一下這些接口。
    1、Configuration接口 是Hibernate應用的入口,在開始使用Hibernate的各種功能之前需要先創建Configuration對象。它負責加載Hibernate 應用配置文件,如Configuration cf = new Configuration.configure("com/myproj/hibernate/configs/hibernate.cfg.xml");
    2、SessionFactory接口 緩存了Configuration對象所包含的配置信息,能根據映射信息自動生成SQL語句,并提供生成Session對象的方法。
    3、Session接口提供一系列持久化的操作。
    到此,可以寫一小段代碼來加看下如何使用hibernate
    Configuration cf = new Configuration.configure("com/myproj/hibernate/configs/hibernate.cfg.xml");//配置文件不在此作介紹
    SessionFactory sessionFactory = cf.buildSessionFactory();
    Session session = sessionFactory.openSession();
    session.update();
    session.save();等等持久化操作。
    至此,簡單介紹了hibernate 是怎樣工作的,其實我只想讓你清楚:“Hibernate是個獨立的框架,它不依賴任何的Web Server或Application Server,就是說不需要這些支持。”

    那么,我們要回到主題來:如何集成struts與hibernate開發?答案很簡單:hibernate和struts本質上是沒什么聯系的,只要你記住:Hibernate是個獨立的框架,它不依賴任何的Web Server或Application Server。用DAO模式把hibernate持久化的操作封裝好,供業務邏輯服務類調用就可以。回過頭來看struts工作流時序圖的解釋的第三點:“3)Action調用業務邏輯服務接口,結合ActionForm,對用戶的請求做出處理。”,不難得出:
    用戶請求后,struts負責找到相應的Action對象,Action調用業務邏輯服務接口,業務邏輯服務接口調用DAO接口(這里默認的實現就用hibernate,當然, 還可以有多種對數據庫操作的實現)
    hibernate充當下面這張圖中的"持久層(DAO)"


    由于本人對struts及hibernate認識不深,寫這篇文章只是拋磚引玉,希望高手們發表意見指正錯誤,多指教。





    posted on 2008-02-29 18:44 Sonny Li 閱讀(996) 評論(0)  編輯  收藏 所屬分類: 框架相關

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2008年2月>
    272829303112
    3456789
    10111213141516
    17181920212223
    2425262728291
    2345678

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章分類

    相冊

    收藏夾

    博客好友

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 精品亚洲综合久久中文字幕| 国产公开免费人成视频| sss日本免费完整版在线观看| 一级做a毛片免费视频| 99re6在线视频精品免费下载 | 亚洲国产成人精品久久久国产成人一区二区三区综 | 亚洲?V无码乱码国产精品| 亚洲国产成人片在线观看| 国产免费内射又粗又爽密桃视频 | 亚洲av无码片vr一区二区三区 | 亚洲最大av无码网址| 精品亚洲A∨无码一区二区三区| 亚洲国产高清美女在线观看| 亚洲av纯肉无码精品动漫| 国产男女性潮高清免费网站| 国产成人亚洲精品青草天美| 日本免费在线观看| 国产猛烈高潮尖叫视频免费| 免费国产va视频永久在线观看| 三级网站免费观看| 成年性羞羞视频免费观看无限| 久久99亚洲综合精品首页| 亚洲免费网站观看视频| 久久精品国产免费| 亚洲国产成人久久综合碰| sihu国产精品永久免费| 图图资源网亚洲综合网站| 亚洲天堂免费在线视频| 亚洲av无码专区国产乱码在线观看| 一个人看的免费观看日本视频www 一个人看的免费视频www在线高清动漫 | 影音先锋在线免费观看| 亚洲四虎永久在线播放| 黄色网页在线免费观看| 亚洲午夜未满十八勿入| 免费激情视频网站| 中国亚洲呦女专区| 成年黄网站色大免费全看| 人人狠狠综合久久亚洲婷婷| 精品福利一区二区三区免费视频| 亚洲国产精品无码久久久不卡| 免免费国产AAAAA片|