SSH构架搭建个人小结

来源:互联网 发布:each遍历json数组 编辑:程序博客网 时间:2024/05/22 02:14

转载自:http://www.ibeifeng.com/tech.php?id=69064


看过了两三个SSH搭建的视频(浪曦风中叶老师、尚学堂李勇老师的两个视频),也跟着视频把这个框架搭了两遍,有点迷迷糊糊的,为了加深印象,我决定不依靠视频再来搭一遍,经过一天的调试与处理,终于能够独立自主地把SSH框架给搭建起来了,不容易啊。其中出现的错误以及各种各样的BUG不计其数,通过查阅文档以及Google得到了解决。这里,我就来做一个总结:

SSH框架的基本配置:
1.相关jar包的引入,这里我采用的是spring2 + struts2 + hibernate3的组合,搭完了之后才发现Spring已经到3了,不知道在Spring3上面的配置是否相同,有待尝试。

Sql代码  收藏代码
  1. -----核心jar包-----  
  2. # spring.jar   
  3. # struts2-core.jar  
  4. # xwork-core.jar  
  5. # mysql-connector-java.jar  
  6. # hibernate3.jar  
  7. # struts2-spring-plugin.jar  
  8. -----在默认配置下核心jar所依赖的jar包---  
  9. # commons-collections.jar ---|  
  10. # commons-fileupload.jar-----|------------这三个jar包是在jakarta-commons项目中一些  
  11. # commons-logging.jar--------|            基于JDK上扩展的工具包。  
  12. # freemarker.jar  
  13. # log4j.jar  
  14. # ognl.jar  
  15. # dom4j.jar  
  16. # jta.jar  
  17. # cglib-nodep.jar  
  18. # antlr.jar ------------ 这个jar包是spring AOP 采用 动态代理 时需要的jar包。  

 

2.相关的配置
 i)/WEB-INF/web.xml
 a.需要配置一个Struts2的Filter:

Xml代码  收藏代码
  1. <filter>  
  2.   <filter-name>struts2</filter-name>  
  3.   <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
  4.  </filter>  
  5.  <filter-mapping>  
  6.   <filter-name>struts2</filter-name>  
  7.   <url-pattern>/*</url-pattern>  
  8.  </filter-mapping>  

  

 b.由于从struts2.1.3之后的版本不再建议采用org.apache.struts2.dispatcher.FilterDispatcher,所以,我们最好配置成StrutsPrepareAndExecuteFilter或者StrutsExecuteFilter以及StrutsPrepareFilter,需要注意的是:如配置成StrutsExecuteFilter需要将StrutsPrepareFilter也配置上,否则将会报错。所以建议就只直接采用StrutsPrepareAndExecuteFilter。

 c.此外还需要配置一个ContextListener:

Xml代码  收藏代码
  1. <listener>  
  2.    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  3. </listener>  

 如果你的applicationContext.xml没有配置在/WEB-INF/目录或者采用的不是默认的文件名,则还需要配context-param,让Spring找到对应的配置文件,如下(注意:param-name的内容一定是contextConfigLocation,Spring将根据该名称注入到相应的对象中):

Xml代码  收藏代码
  1. <context-param>  
  2.  <param-name>contextConfigLocation</param-name>  
  3.  <param-value>classpath*:application-Context.xml</param-value>  
  4. </context-param>  

  ii)applicationContext.xml,这个文件是比较核心的文件:

 a)配置sessionFactory,有两种配置方式:
 (1)采用传统的Hibernate配置文件,将其映射到sessionFactory中:

Xml代码  收藏代码
  1. <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
  2.  <property name="configLocation" >  
  3.   <value>classpath:hibernate.cfg.xml</value>  
  4.  </property>  
  5. </bean>  

  采用这种方式时,需要在hibernate.cfg.xml文件中配置数据连接相关信息,这里与一般的hibernate配置文件一样:

Xml代码  收藏代码
  1. <hibernate-configuration>  
  2.   <session-factory>  
  3.    <!-- connection configuration -->  
  4.    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>  
  5.    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/ssh_test</property>  
  6.    <property name="hibernate.connection.username">root</property>  
  7.    <property name="hibernate.connection.password">orange</property>  
  8.    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>  
  9.    <!-- the following configuration just for  programming and debug -->  
  10.    <property name="hibernate.show_sql">true</property>  
  11.      
  12.    <!-- mapping resource -->  
  13.    <mapping resource="com/ssh/bean/User.hbm.xml"/>  
  14.   </session-factory>  
  15.  </hibernate-configuration>  
  16.  (2)采用sessionFactory属性的方式配置数据源相关信息,如下:  
  17.    
  18.  <!-- 配置数据源 -->  
  19.  <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">  
  20.   <property name="driverClassName" value="com.mysql.jdbc.Driver" />  
  21.   <property name="url" value="jdbc:mysql://localhost:3306/mytest" />  
  22.   <property name="username" value="root"

原创粉丝点击