SSH配置的步骤以及配置过程应该注意的问题

来源:互联网 发布:usb数据传输线 编辑:程序博客网 时间:2024/06/13 05:46

在学习javaweb的三大框架Struts2,Hibernate,Spring的时候遇到了很多问题,大部分是由于自身配置不规范造成的,下面来说一下一些正式的配置步骤

Struts2的配置

基础配置

<struts>    <constant name="struts.devMode" value="true"></constant>    <package name="p1" extends="struts-default">    <action name="login" class="com.heima.web.action.UserAction" method="Login">    <result>/login/home.jsp</result>    <result name="input">/login/login.jsp</result>    </action>    </package></struts>

当然这在action较多的项目中配置起来较为麻烦,因此,我们采用通配符的方式来配置

通配符配置方式

<struts><constant name="struts.devMode" value="true"></constant><package name="basicstruts2" extends="struts-default"><action name="page_*_*"><result name="success" type="dispatcher">/WEB-INF/pages/{1}/{2}.jsp</result></action></package></struts>

Spring和Hibernate在Spring配置文件中配置的几个步骤

加载jdbc属性文件

<!-- 加载jdbc属性文件 -->    <context:property-placeholder location="classpath:jdbc.properties"/>

配置属性文件

    <!-- 通过jdbc属性文件配置数据源 -->    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">        <property name="driverClass" value="${driverClass}"/>        <property name="jdbcUrl" value="${jdbcUrl}"/>        <property name="user" value="${user}"/>        <property name="password" value="${password}"/>    </bean>

配置Hibernate的工厂Bean

    <!-- spring框架用于整合Hibernate的工厂bean -->    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">        <property name="dataSource" ref="dataSource"/>

注入Hibernate的相关属性和映射文件

        <!-- 注入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.hbm2ddl.auto">update</prop>            </props>        </property>        <!-- 注入Hibernate的映射文件 -->        <property name="mappingDirectoryLocations">            <list>                <value>classpath:com/itheima/bos/domain</value>            </list>        </property>    </bean>

spring事务的最后配置

<!-- 事务管理器 -->    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">        <property name="sessionFactory" ref="sessionFactory"/>    </bean>    <!-- 组件扫描 -->    <context:component-scan base-package="com.itheima.bos"/>    <!-- 引入注解解析器 -->    <context:annotation-config/>    <!-- 事务注解 -->

Spring的其他配置

除了上述的配置,Spring还提供了权限配置(过滤器),编码设置,还有针对Hibernate的session提早关闭的过滤器来解决其他问题,有兴趣的可以自行去查阅一下。在这里,我举一个项目中最常用的编码设置的过滤器为例子、

Spring在web.xml中配置字符编码过滤器解决字符编码问题

 <filter>  <filter-name>characterEncodingFilter</filter-name>    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>    <init-param>    <param-name>encoding</param-name>    <param-value>UTF-8</param-value>    </init-param>  </filter>  <filter-mapping>  <filter-name>characterEncodingFilter</filter-name>  <url-pattern>/*</url-pattern>  </filter-mapping>

最后,总结一下我在学习SSH三大框架的时候,所遇到的坑,主要有以下几点

  • 1.文件路径是否与实际路径相符
  • 2.类文件的属性是否与数据库相对应,类的属性名与hbm.xml文件中配置的属性是否对应,属性的值允许少但不允许多
  • 3.类之间的关系映射是否正确(多对一,一对多,多对多)
  • 4.spring、Struts,Hibernate在配置过程中都特别注重属性,方法,变量的大小写问题、
  • 5.Hibernate查询的是对应的实体类的名称,Spring 是DAO和Service层的实现类的实例,并不是实现类本身,Struts的Action返回值是action里面result节点的name的值。
  • 6.Struts标签使用过程中,表单是否需要使用Struts标签。取决于是否需要回显

以上就是我在学习和配置SSH上的一些心得,有不足之处,还望批评指正。

0 0