首页 > 代码库 > SSH的框架整合

SSH的框架整合

struts 控制用的   

hibernate 操作数据库的 

spring 用解耦的 

 

 

第一步:先创建一个wed项目 。

 

 

 

第二步:配置struts2

1.添加Struts2所需要的基本jar包到 lib目录下 包名如下图:

技术分享

 2.在web.xml 文件里添加struts的过滤器配置如下:《提示:struts2-2.3版本》

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">  <display-name>ssh</display-name>  <welcome-file-list>    <welcome-file>index.html</welcome-file>  </welcome-file-list>  <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></web-app>

 3.在web.xml 文件里添加struts的过滤器配置如下:《提示:struts2-2.5版本》

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">  <display-name>ssh</display-name>  <welcome-file-list>    <welcome-file>index.html</welcome-file>  </welcome-file-list>      <filter>        <filter-name>struts-prepare</filter-name>        <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareFilter</filter-class>    </filter>    <filter>        <filter-name>struts-execute</filter-name>        <filter-class>org.apache.struts2.dispatcher.filter.StrutsExecuteFilter</filter-class>    </filter>    <filter-mapping>        <filter-name>struts-prepare</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>    <filter-mapping>        <filter-name>struts-execute</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping></web-app>

 4.在src目录下创建struts配置文件,struts.xml,内容如下:《提示:注意配置头信息需要对应的版本》

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"    "http://struts.apache.org/dtds/struts-2.3.dtd">   <struts>       <package name="struts2" extends="struts-default">       </package>   </struts> 

 

使用Struts2的好处:
1.实现了页面和代码的分离实现了mvc设计理念。
2.获取表单内容,并组织生成参数对象
3.根据请求的参数转发请求适当的控制器
4.在控制器中调用业务接口
5.将业务接口返回的结果包装起来发送给指定的视图,并由视图完成处理结果的展现
6.做一些简单的校验或国际化工作



第三步:配置spring 

1.在lib目录下导入spring相关的jar包如下:《提示:spring跟struts结合还需要2个struts的jar包分别是:

struts2-spring-plugin-2.3.30.jar和commons-logging-1.1.3.jar》

 技术分享

 2.在wed.xml文件下配置监听器,配置如下:

 

 <!-- 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-class>    </listener>

 

使用Spring的好处:
(1)Spring能有效地组织你的中间层对象。
(2)Spring能消除在许多工程中常见的对Singleton的过多使用。
(3)Spring能消除各种各样自定义格式的属性文件的需要,使配置信息一元化。
(4)Spring能够帮助我们真正意义上实现针对接口编程。
(5)在Spring应用中的大多数业务对象没有依赖于Spring。
(6)使用Spring构建的应用程序易于单元测试
(7)Spring支持JDBC和O/R Mapping产品(Hibernate)
(8)MVC Web框架,提供一种清晰,无侵略性的MVC实现方式。
(9)JNDI抽象层,便于改变实现细节,可以方便地在远程服务和本地服务间切换。
(10)简化访问数据库时的例外处理。
(11)Spring能使用AOP提供声明性事务管理,可以不直接操作JTA也能够对事务进行管理。
(12)提供了JavaMail或其他邮件系统的支持。

 

第四步:配置hibernate

1.在lib目录里导入hibernate相关的jar包如下:

 技术分享

2.在entity包下创建实体类

在entity创建实体类对应的xxx..hbm.xml映射文件。


3.应用IOC实现DAO接口

在Dao接口实现类里IndexDaoImpl定义一个sessionFactory的属性提供一个set的方法,方便在spring里注入 注入方式如下:

 

  <bean id="myDao" class="dao.IndexDaoImpl" scope="prototype">        <property name="sessionFactory" ref="mysessionFactory"></property>   </bean>           <!-- mysql hibernate配置 -->    <!-- 注入sessionFactory -->    <bean id="mysessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">        <!-- 注入连接池,包含了数据库用户名,密码等等信息 -->        <property name="dataSource" ref="myDataSource2"></property>        <!-- 配置Hibernate的其他的属性 -->        <property name="hibernateProperties">            <props>                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>                <prop key="hibernate.show_sql">true</prop>                <prop key="hibernate.format_sql">true</prop>                <prop key="hibernate.connection.autocommit">false</prop>                <!-- 开机自动生成表 -->                <prop key="hibernate.hbm2ddl.auto">update</prop>            </props>        </property>        <property name="mappingResources">            <list>                <value>entity/xxx.hbm.xml</value>            </list>        </property>        </bean>        <bean id="myDataSource2" class="com.mchange.v2.c3p0.ComboPooledDataSource">        <property name="driverClass" value=http://www.mamicode.com/"com.mysql.jdbc.Driver"></property>        <property name="jdbcUrl" value=http://www.mamicode.com/"jdbc:mysql://localhost:3306/CardDB"></property>        <property name="user" value=http://www.mamicode.com/"root"></property>        <property name="password" value=http://www.mamicode.com/"123456"></property>    </bean> 

 使用hibernate的好处:

1.连接数据库不用我们来管理。

2.原来是对表操作,现在是对对象操作。

 

   

SSH的框架整合