SSH主要是由Struts、Spring、Hibernate三大框架组成。
SSH主要也是面向MVC思想的框架,大体可归纳为以下:
- M又称之为model主要代表数据逻辑处理层:实体类(domian、pojo、entity)、DAO层、Service层。
- V又称之为view主要代表数据的显示层:JSP技术。
- C又称之为controller主要是处理访问请求和响应结果,如springMVC。
主要介绍SSH框架如何整合
导包
三大框架的主要核心包导入即可!
web.xml配置方法
配置过滤器
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
spring监听器
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener>
spring、hibernate、struts的配置整合:applicationContext.xml和struts.xml
- applicationContext.xml
1、引入beans、aop、tx、aop等约束;
2、获取数据源、连接数据库
<bean name="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/baoxiansystem"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</bean>
3、创建sessionfactory
<bean name="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="ds"></property>
3.1、hibernate辅助配置
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
3.2、orm映射文件
<property name="mappingResources">
<list>
<value>映身文件的路径.xml</value>
</list>
</property>
</bean>
4、创建spring管理对象
<bean name="名称" class="全类名引用"></bean>
5、AOP事务设置
5.1、事务管理器
<bean name="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
5.2、通知
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="get*" propagation="REQUIRED"/>
<tx:method name="find*" propagation="REQUIRED"/>
<tx:method name="select*" propagation="REQUIRED"/>
<tx:method name="save*" propagation="REQUIRED"/>
<tx:method name="insert*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
5.3、切面
<aop:config>
<aop:pointcut expression="execution(* com.fqy.*.*(..))" id="pc"/>
//第一*通配符表示:任意返回值
//第二*通配符表示:指定包名下的所有类
//第三*通配符表示:指定类下的所有方法
//..通配符表示所有形参个数为1个或多个。
<aop:advisor advice-ref="txAdvice" pointcut-ref="pc"/>
</aop:config>
struts.xml
引用struts版本约速
<struts>
<package name="default" extends="struts-default,json-default" namespace="">
<global-results>
<result name="error">error.jsp</result>
<result name="login">login.jsp</result>
</global-results>
//*通配符代表要访问的路径,使用*要提前规划访问的路径,{1}代表第一个*通配符的方法,也可以使用进行多个*通配符组合,可用{*的个数}代表。
<action name="*UserAction" class="userAction" method="{1}">
<result name="user">user.jsp</result>
<result name="admin">admin.jsp</result>
</action>
</package>
</truts>
- action、service、dao层与jsp层的代码实现。
- 未完待续…