大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 SSH框架是什么

SSH框架是什么

更新時間:2022-12-20 10:45:31 來源:動力節點 瀏覽1250次

SSH框架是什么

SSH是 struts+spring+hibernate的一個集成框架,是目前比較流行的一種Web應用程序開源框架。

集成SSH框架的系統從職責上分為四層:表示層、業務邏輯層、數據持久層和域模塊層,以幫助開發人員在短期內搭建結構清晰、可復用性好、維護方便的Web應用程序。

Struts作為系統的整體基礎架構,負責MVC的分離,在Struts框架的模型部分,控制業務跳轉;利用Hibernate框架對持久層提供支持,Spring做管理,管理struts和hibernate。具體做法是:用面向對象的分析方法根據需求提出一些模型,將這些模型實現為基本的Java對象,然后編寫基本的DAO(Data Access Objects)接口,并給出Hibernate的DAO實現,采用Hibernate架構實現的DAO類來實現Java類與數據庫之間的轉換和訪問,最后由Spring做管理,管理struts和hibernate。

在SSH 的組合框架模式中,三者各自的作用

Struts 是一個很好的MVC框架,主要技術是Servlet和Jsp。Struts的MVC設計模式可以使我們的邏輯變得很清晰,讓我們寫的程序層次分明。

Spring 提供了管理業務對象的一致方法,并鼓勵注入對接口編程而不是對類編程的良好習慣,使我們的產品在最大程度上解耦。

Hibernate 是用來持久化數據的,提供了完全面向對象的數據庫操作。Hibernate對JDBC進行了非常輕量級的封裝,它使得與關系型數據庫打交道變得非常輕松。

SSH架構圖

Struts負責Web層:

ActionFormBean接收網頁中表單提交的數據,然后通過Action進行處理,再Forward到對應的網頁,在Struts-config.xml中定義了,ActionServlet會加載進來。

Spring負責業務層管理,即Service:

Service為Action提供統一的調用接口,封裝持久層的DAO,并集成Hibernate,Spring可對JavaBean和事物進行統一管理。

Hibernate負責持久層,完成數據庫的CRUD操作:

Hibernate有一組hbm.xml文件和PO,是與數據庫中的表相對應的,然后定義DAO,這些是與數據庫打交道的類。

在Struts+Spring+Hibernate系統中,對象之間的調用流程如下:

Struts——>Spring——>Hibernate

JSP——>Action——>Service——>DAO——>Hibernate

1.spring的配置文件bean.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
        xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"
        xmlns:tx="http://www.springframework.org/schema/tx">
    <bean id="dataSource"
          class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
        <property name="jdbcUrl"
                  value="jdbc:mysql://localhost:3306/samblog?useUnicode=true&amp;characterEncoding=UTF-8&amp;autoReconnect=true">
        </property>
        <property name="user" value="root"></property>
        <property name="password" value="123456"></property>
        <property name="driverClass" value="org.gjt.mm.mysql.Driver"/>
    </bean>
    <bean id="sessionFactory"
          class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        <property name="dataSource">
            <ref bean="dataSource"/>
        </property>
        <property name="hibernateProperties">
            <value>
                hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
                hibernate.hbm2ddl.auto=update
                hibernate.show_sql=false
                hibernate.format_sql=false
            </value>
        </property>
        <property name="mappingResources">
            <list>
                <value>site/sambloger/domain/Users.hbm.xml</value>
                <value>site/sambloger/domain/Blog.hbm.xml</value>
                <value>site/sambloger/domain/Category.hbm.xml</value>
                <value>site/sambloger/domain/Comment.hbm.xml</value>
            </list>
        </property>
    </bean>
    <bean id="transactionManager"
          class="org.springframework.orm.hibernate5.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
    <tx:annotation-driven transaction-manager="transactionManager"/>
    <!-- 配置Blog  spring進行管理  服務層直接調用實現與數據庫的CRUD-->
    <bean id="blogDao" class="site.sambloger.dao.impl.BlogDAOImpl">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
    <bean id="blogService" class="site.sambloger.service.impl.BlogServiceImpl" scope="prototype">
        <property name="blogDao" ref="blogDao"/>
    </bean>
    <bean id="blogAction" class="site.sambloger.action.BlogAction">
        <property name="blogService" ref="blogService"/>
        <property name="commentService" ref="commentService"/>
    </bean>
    <!-- 配置Comment -->
    <bean id="commentDao" class="site.sambloger.dao.impl.CommentDAOImpl">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
    <bean id="commentService" class="site.sambloger.service.impl.CommentServiceImpl" scope="prototype">
        <property name="commentDao" ref="commentDao"/>
    </bean>
    <bean id="commentAction" class="site.sambloger.action.CommentAction">
        <property name="commentService" ref="commentService"/>
        <property name="blogService" ref="blogService"/>
    </bean>
    <!-- 配置Users -->
    <bean id="usersDao" class="site.sambloger.dao.impl.UsersDAOImpl">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <bean id="usersService" class="site.sambloger.service.impl.UsersServiceImpl" scope="prototype">
        <property name="usersDao" ref="usersDao"/>
    </bean>
    <bean id="usersAction" class="site.sambloger.action.UsersAction">
        <property name="userService" ref="usersService"></property>
    </bean>
</beans>
2.struts的配置文件 struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
    <package name="samblog" extends="struts-default" namespace="/">
             <action name="init" class="blogAction" method="init">
                    <result name="success">/bloglist.jsp</result>
            </action>
            <action name="getBlog" class="blogAction" method="getBlog">
                    <result name="success">/displayBlog.jsp</result>
            </action> 
            <action name="getAllNote" class="blogAction" method="getAllNote">
                <result name="success">/notelist.jsp</result>
            </action>
            <action name="addComment" class="commentAction" method="addComment">
                <result name="success"  type="redirect">/getBlog</result>
            </action>
    </package>
</struts>    
3.hibernate其中的一個配置文件  
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="site.sambloger.domain.Blog" table="blog">
        <!--id標簽表示映射到數據庫中是作為主鍵 其他property表示普通鍵-->
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="increment" />
        </id>
<!--該標簽加N方 會有一個字段叫category_id作為外鍵參照1(Category)的主鍵字段 并且用來存儲這個主鍵的信息-->
        <many-to-one name="category" class="site.sambloger.domain.Category"  lazy="false" cascade="all">
            <column name="category_id" not-null="true" />
        </many-to-one>
        <property name="title" type="java.lang.String">
            <column name="title" length="400" not-null="true" />
        </property>
        <property name="content" type="java.lang.String">
            <column name="content" length="4000" not-null="true" />
        </property>
        <property name="createdTime" type="java.util.Date">
            <column name="created_time" length="10" not-null="true" />
        </property>
<!--在一對多的關聯中,在一的一方(Blog)設置inverse=”true”讓多的一方來維護關聯關系更有助于優化,因為可以減少執行update語句-->
        <set name="comments" inverse="true">
            <key>
                <column name="blog_id" not-null="true" />
            </key>
            <one-to-many class="site.sambloger.domain.Comment" />
        </set>
    </class>
</hibernate-mapping>

以上就是關于“SSH框架是什么”的介紹,大家如果想了解更多相關知識,不妨來關注一下本站的SSH框架視頻教程,里面的課程內容細致全面,通俗易懂,很適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 午夜日韩在线 | 一本到视频在线观看 | 日本强日本不卡一 | 日韩在线手机看片免费看 | 久久精品人人做人人爱爱 | 免费 黄 色 人成 视频 | 久久婷婷午色综合夜啪 | 四虎在线成人免费网站 | 日韩一区二区在线观看 | 欧美一级永久免费毛片在线 | 婷婷视频在线观看 | 天码毛片一区二区三区入口 | 青草青草久热精品视频在线观看 | 国产成人精品免费视 | 亚洲欧美在线精品一区二区 | 色狠狠狠色噜噜噜综合网 | 好看的一级毛片 | 欧美成人 一区二区三区 | 色偷偷亚洲第一成人综合网址 | 99re国产精品视频首页 | 欧美高清性粉嫩交 | 亚洲高清国产一区二区三区 | 亚洲精品欧洲久久婷婷99 | 国产凹凸在线一区二区色老头 | 青青草免费视频在线播放 | 国产在线精品成人一区二区三区 | 一区二区三区免费视频网站 | 欧美大片天天免费看视频 | 中文字幕精品视频在线观看 | 国产剧情自拍 | 激情久久久久久久久久 | 免费国产成人高清在线观看视频 | 99热久久精里都是精品6 | 大片毛片女女女女女女女 | 夜夜爱夜夜操 | 不卡国产视频 | 久久这里只有精品国产99 | 女人18毛片a级毛片免费看一 | 99在线免费播放 | 在线观看 中文字幕 | 亚洲图欧美色综合图 |