您的位置:首页 > 其它

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

2017-01-16 08:00 459 查看
在学习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上的一些心得,有不足之处,还望批评指正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐