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

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

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

    peace嘮叨

    人生得意須盡歡,莫斯金樽空對月。

    SSH框架總結(框架分析+環境搭建+實例源碼下載)

    首先,SSH不是一個框架,而是多個框架(struts+spring+hibernate)的集成,是目前較流行的一種Web應用程序開源集成框架,用于構建靈活、易于擴展的多層Web應用程序

     

    集成SSH框架的系統從職責上分為四層:表示層、業務邏輯層、數據持久層和域模塊層(實體層)。

     

    Struts作為系統的整體基礎架構,負責MVC的分離,在Struts框架的模型部分,控制業務跳轉,利用Hibernate框架對持久層提供支持。Spring一方面作為一個輕量級的IoC容器,負責查找、定位、創建和管理對象及對象之間的依賴關系,另一方面能使StrutsHibernate更好地工作。

     

     

    SSH構建系統的基本業務流程是:

     

    1、在表示層中,首先通過JSP頁面實現交互界面,負責傳送請求(Request)和接收響應(Response),然后Struts根據配置文件(struts-config.xml)將ActionServlet接收到的Request委派給相應的Action處理。

    2、在業務層中,管理服務組件的Spring IoC容器負責向Action提供業務模型(Model)組件和該組件的協作對象數據處理(DAO)組件完成業務邏輯,并提供事務處理、緩沖池等容器組件以提升系統性能和保證數據的完整性。

    3、在持久層中,則依賴于Hibernate的對象化映射和數據庫交互,處理DAO組件請求的數據,并返回處理結果。

     

    采用上述開發模型,不僅實現了視圖、控制器與模型的徹底分離,而且還實現了業務邏輯層與持久層的分離。這樣無論前端如何變化,模型層只需很少的改動,并且數據庫的變化也不會對前端有所影響,大大提高了系統的可復用性。而且由于不同層之間耦合度小,有利于團隊成員并行工作,大大提高了開發效率。

     

     

    下面我們再詳細看一下組成SSH的這三個框架

    一、Spring

    1、什么是Spring?

    簡單來說,Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。

     

    2、Spring的特性

    具體自己百度吧

    所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測試的代碼

     

    3、為什么使用Spring?

    Spring的以上特性使得開發人員使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務器端的開發。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。

     

    二、Struts

    1、什么是Struts?

    它通過采用 Java Servlet/JSP 技術,實現了基于Java EEWeb應用的MVC設計模式的應用框架,是MVC經典設計模式中的一個經典產品。

     

    2、Struts1的核心構成

     

    在 Struts1 中,由一個名為 ActionServlet 的 Servlet 充當 控制器(Controller)的角色,根據描述模型、視圖、控制器對應關系的 struts-config.xml 的配置文件,轉發視圖(View)的請求,組裝響應數據模型(Model)。

     

    在 MVC 的模型(Model)部分,經常劃分為兩個主要子系統(系統的內部數據狀態與改變數據狀態的邏輯動作),這兩個概念子系統分別具體對應 Struts 1里的 ActionForm 與 Action 兩個需要繼承實現超類。在這里,Struts 1可以與各種標準的數據訪問技術結合在一起,包括Enterprise Java Beans(EJB), JDBC 與 JNDI。

     

    在 Struts 1的視圖(View) 端,除了使用標準的JavaServer Pages(JSP)以外,還提供了大量的標簽庫使用,同時也可以與其他表現層組件技術(產品)進行整合,比如 Velocity Templates,XSLT 等。

     

    通過應用 Struts 的框架,最終用戶可以把大部分的關注點放在自己的業務邏輯(Action)與 映射關系的配置文件(struts-config.xml)中。

     

    3、Struts1的基本執行流程

    詳見《STRUTS基本工作流程》

     

    4、什么是struts2

    Struts 2是Struts的下一代產品,是在 struts 1和WebWork的技術基礎上進行了合并的全新的Struts 2框架。其全新的Struts 2的體系結構與Struts 1的體系結構差別巨大。Struts 2以WebWork為核心,采用攔截器的機制來處理用戶的請求,這樣的設計也使得業務邏輯控制器能夠與ServletAPI完全脫離開,所以Struts 2可以理解為WebWork的更新產品

     

    5、strut2的體系結構

     

     

    解析:

    當Web容器收到請求(HttpServletRequest)它將請求傳遞給一個標準的的過濾鏈包括  流程(ActionContextCleanUp)過濾器,然后經過Other filters(SiteMesh ,etc),

    接下來需要調用FilterDispatcher核心控制器,然后它調用ActionMapper確定請求那個Action,ActionMapper返回一個收集Action詳細信息的ActionMaping對象。

    接下來FilterDispatcher將控制權委派給ActionProxy,ActionProxy調用配置管理器(ConfigurationManager) 從配置文件中讀取配置信息(struts.xml),然后創建ActionInvocation對象,ActionInvocation在調用Action之前會依次的調用所用配置攔截器(Interceptor N) 一旦執行結果返回結果字符串ActionInvocation負責查找結果字符串對應的(Result)然后執行這個Result Result會調用一些模版(JSP)

    來呈現頁面,之后攔截器(Interceptor N)會在被執行(順序和Action執行之前相反)最后響應(HttpServletResponse)被返回在web.xml中配置的那些過濾器和(核心控制器)(FilterDispatcher)。

     

    6、為什么使用Struts?

    首先,Struts 是MVC的一種實現,它將 Servlet和 JSP 標記(屬于 J2EE 規范)用作實現的一部分。Struts繼承了MVC的各項特性,并根據J2EE的特點,做了相應的變化與擴展減弱了業務邏輯接口和數據接口之間的耦合,以及讓視圖層更富于變化

     

    另外, struts具有頁面導航功能,使系統的脈絡更加清晰。通過一個配置文件,即可把握整個系統各部分之間的聯系,這對于后期的維護有著莫大的好處。尤其是當另一批開發者接手這個項目時,這種優勢體現得更加明顯。

     

    7、 Struts1和Struts2的區別

    詳見《Struts1 和 Struts2

     

    三、Hibernate

    1、什么是Hibernate?

    Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任

     

    2、Hibernate核心構成

     

    具體就不展開了

     

    3、Hibernate基本執行流程

     

     

    為什么使用Hibernate?

    1. 對JDBC訪問數據庫的代碼做了封裝,大大簡化了數據訪問層繁瑣的重復性代碼。

    2、Hibernate是一個優秀的ORM實現。他很大程度的簡化DAO層的編碼工作,將軟件開發人員從大量相同的數據持久層相關編程工作中解放出來,使開發更對象化了。

    3、移植性好,支持各種數據庫,如果換個數據庫只要在配置文件中變換配置就可以了,不用改變hibernate代碼。

    4、支持透明持久化,因為hibernate操作的是純粹的(pojo)java類,沒有實現任何接口,沒有侵入性。所以說它是一個輕量級框架。

     

     

    最后附上SSH1和SSH2框架搭建的實例,點擊即可下載

    SSH1框架搭建實例(spring2+struts1+hibernate3)采用舊版本,詳見代碼中注釋

    SSH2框架搭建實例(spring3.2+strust2.3.4+hibernate4.2)全部采用最新版本,詳見代碼中注釋

     

    開發環境搭建,參照我的另一篇博客

    Win7(64) + eclipse(64)+ tomcat7(64)+ jdk7(64)開發環境配置

     

     

     

     一些說明:
    索要代碼的郵箱,我基本上都發過了,如果有漏發,請聯系我。
    還是希望大家去csdn下載頁去下載。如果速度慢,可以去這里http://pan.baidu.com/s/1eQh7FXo
    開發環境配置。http://blog.csdn.net/shan9liang/article/details/8807784在war中,找到application-common.xml。修改數據源,指定自己的數據庫即可。項目部署后,會自動映射表。<!--配數據源 --><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /><property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" /><property name="username" value="ssh" /><property name="password" value="ssh" /></bean>以上是oracle的配置。
    如果使用其他數據庫,請在lib目錄下,加入驅動包。并修改數據源。
    
    原文出處:http://blog.csdn.net/shan9liang/article/details/8803989


     

    posted on 2015-11-17 21:21 王和平 閱讀(355) 評論(0)  編輯  收藏


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


    網站導航:
     

    My Links

    Blog Stats

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲av综合avav中文| 亚洲校园春色另类激情| 香港a毛片免费观看| 亚洲专区中文字幕| 免费一级一片一毛片| 免费精品一区二区三区第35| 亚洲一级毛片免费观看| 亚洲无码视频在线| 99视频全部免费精品全部四虎| 国产精品亚洲专区一区| 国产亚洲精品精华液| 野花高清在线观看免费3中文| 亚洲高清免费视频| 香蕉大伊亚洲人在线观看| 亚洲午夜精品久久久久久浪潮| 麻豆国产精品免费视频| jizz免费观看视频| 久久夜色精品国产噜噜亚洲a| 亚洲无人区一区二区三区| 成年女人色毛片免费看| 伊人久久免费视频| 成人精品综合免费视频| 亚洲国产精品久久网午夜| 亚洲伊人久久精品影院| 日本免费一本天堂在线| 4399影视免费观看高清直播| 国产大片免费天天看| 亚洲AV无码一区二区三区网址| 久久久久亚洲Av无码专| 国产亚洲av片在线观看18女人| 毛片免费观看的视频| 日韩av无码久久精品免费| j8又粗又长又硬又爽免费视频| 亚洲av无码电影网| 亚洲av鲁丝一区二区三区| 亚洲国产人成精品| 日韩免费无码一区二区视频| 99久久久国产精品免费无卡顿 | 男男gvh肉在线观看免费| 久久久久亚洲Av片无码v | 国产精品亚洲专区在线观看|