现在的位置: 首页 > 综合 > 正文

struts+hibernate+spring手动配置

2018年01月17日 ⁄ 综合 ⁄ 共 5824字 ⁄ 字号 评论关闭

 

1.strutsweb.xml中配置过滤器

<!-- 定义Struts2FilterDispathcerFilter -->
 <filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher
  </filter-class>
 </filter>
 <!-- FilterDispatcher
用来初始化Struts2并且处理所有的WEB请求。 -->
 <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>

 

2.struts.xml配置

<!-- 系统常量配置 --> 
 <!--
指定国际化资源文件的baseNameresource -->
 <constant name="struts.custom.i18n.resources" value="resource"/>
 <!--
设置该应用使用的解码集 -->
 <constant name="struts.i18n.encoding" value="UTF-8"/>
 
 <package name="struts2" extends="struts-default">
<!--
拦截器配置 -->  
  <interceptors>
  <!--
配置学生角色的权限检查拦截器 -->
  <interceptor name="stuAuth" class=
  "com.qdlg.secondclass.action.authority.stuAuthorityInterceptor"/>
  <!--
配置老师角色的权限检查拦截器 -->
  <interceptor name="teaAuth" class=
  "com.qdlg.secondclass.action.authority.teaAuthorityInterceptor"/>
  <!--
配置管理员角色的权限检查拦截器 -->
  <interceptor name="admAuth" class=
   "com.qdlg.secondclass.action.authority.admAuthorityInterceptor"/>
  <!--
配置合法角色的权限检查拦截器 -->
  <interceptor name="legalAuth" class="com.qdlg.secondclass.action.authority.myAuthorityInterceptor"/>
   
   <!--
配置学生角色的默认的拦截器栈 -->
   <interceptor-stack name="stuStack">
    <interceptor-ref name="defaultStack"/>
    <interceptor-ref name="stuAuth"/>
   </interceptor-stack>
   <!--
配置老师角色的默认的拦截器栈 -->
   <interceptor-stack name="teaStack">
    <interceptor-ref name="defaultStack"/>
    <interceptor-ref name="teaAuth"/>
   </interceptor-stack>
   <!--
配置管理员角色的默认的拦截器栈 -->
   <interceptor-stack name="admStack">
    <interceptor-ref name="defaultStack"/>
    <interceptor-ref name="admAuth"/>
   </interceptor-stack>
   
   <!--
配置合法用户拦截器栈 -->
   <interceptor-stack name="myStack">
    <interceptor-ref name="defaultStack"/>
    <interceptor-ref name="legalAuth"/>
   </interceptor-stack> 
  </interceptors>
  
  

<!-- 定义全局Result映射 -->
  <global-results>
   <!--
定义sqlroot两个异常对应的视图页 -->
   <result name="business">/WEB-INF/jsp/error.jsp</result>
   <result name="root">/WEB-INF/jsp/error.jsp</result>
   <!--
定义login逻辑视图对应的视图资源 -->
   <result name="login">/login.jsp</result>
  </global-results>

  <!-- 定义全局异常映射 -->
  <global-exception-mappings>
   <!--
Action中遇到ScException异常时,
    
系统将转入namebusiness的结果中 -->
   <exception-mapping
    exception="com.qdlg.secondclass.exception.ScException"
    result="business"/>
   <!--
Action中遇到Exception异常时,
    
系统将转入nameroot的结果中 -->
   <exception-mapping exception="java.lang.Exception"
    result="root"/>
  </global-exception-mappings>
  

<!--action配置-->
  <action name="processLogin" class="com.qdlg.secondclass.action.LoginAction"  method="login">
        <result name="stu">/WEB-INF/student/home.jsp</result>
       <result name="tea">/WEB-INF/teacher/home.jsp</result>
       <result name="adm">/WEB-INF/admin/home.jsp</result>
       <result name="vis">/home.jsp</result>
       <result name="error">/login.jsp</result>
  </action>

 

3.web.xml中配置数据源

<!-- 配置数据源 -->
   <resource-ref>
   <description>DB Connection</description>
   <res-ref-name>jdbc/secondclass</res-ref-name>
   <res-type>javax.sql.DataSource</res-type>
   <res-auth>Container</res-auth>
   </resource-ref>

 

4.applicationContext.xml中配置数据源的实现方式,这里使用的c3p0

<!-- 定义数据源Bean,使用C3P0数据源实现 -->
 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
  destroy-method="close">
  <!--
指定连接数据库的驱动 -->
  <property name="driverClass" value="com.mysql.jdbc.Driver"/>
  <!--
指定连接数据库的URL -->
  <property name="jdbcUrl" value="jdbc:mysql://localhost/secondclass"/>
  <!--
指定连接数据库的用户名 -->
  <property name="user" value="root"/>
  <!--
指定连接数据库的密码 -->
  <property name="password" value="root"/>
  <!--
指定连接数据库连接池的最大连接数 -->
  <property name="maxPoolSize" value="40"/>
  <!--
指定连接数据库连接池的最小连接数 -->
  <property name="minPoolSize" value="1"/>
  <!--
指定连接数据库连接池的初始化连接数 -->
  <property name="initialPoolSize" value="1"/>
  <!--
指定连接数据库连接池的连接的最大空闲时间 -->
  <property name="maxIdleTime" value="20"/>
 </bean>

 

5.applicationContext.xml中将hibernatespring建立连接

 <!-- 定义HibernateSessionFactory -->
 <bean id="sessionFactory"
  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <!--
依赖注入数据源,注入正是上面定义的dataSource -->
  <property name="dataSource" ref="dataSource"/>
  <!-- mappingResouces
属性用来列出全部映射文件 -->
  <property name="mappingResources">
   <list>
    <!--
以下用来列出Hibernate映射文件 -->
    <value>com/qdlg/secondclass/model/SecondclassUsers.hbm.xml</value>
    <value>com/qdlg/secondclass/model/SecondclassExercise.hbm.xml</value>
   </list>
  </property>
  <!--
定义HibernateSessionFactory的属性 -->
  <property name="hibernateProperties">
   <props>
    <!--
指定数据库方言 -->
    <prop key="hibernate.dialect">
     org.hibernate.dialect.MySQLDialect</prop>
    <!--
是否根据需要每次自动创建数据库 -->
    <prop key="hibernate.hbm2ddl.auto">update</prop>
    <!--
显示Hibernate持久化操作所生成的SQL -->
    <prop key="hibernate.show_sql">false</prop>
    <!--
SQL脚本进行格式化后再输出 -->
    <prop key="hibernate.format_sql">true</prop>
   </props>
  </property>
 </bean>

 

6..applicationContext.xml中注入依赖关系

<!-- 注入依赖关系 -->
   <bean id="dbUtil" class="com.qdlg.secondclass.util.DBUtil">
           <property name="sf">
              <ref local="sessionFactory" />
           </property>
       </bean>
      
       <bean id="loginAction" class="com.qdlg.secondclass.action.LoginAction">
             <property name="dbUtil">
                 <ref local="dbUtil"/>
             </property>
        </bean>
       
        <bean id="mechanicsGameAction" class="com.qdlg.secondclass.bar.action.MechanicsGameAction">
             <property name="dbUtil">
                 <ref local="dbUtil"/>
             </property>
        </bean>
       

7.web.xml中配置Spring

<!-- 配置Spring配置文件的位置 -->
 <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/applicationContext.xml</param-value>
 </context-param>
 
 <!--
使用ContextLoaderListener初始化Spring容器 -->
 <listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener
  </listener-class>
 </listener>

 

8.推荐(1)将struts.xmlapplicationContext.xml文件放在src根目录下。当然放在其他文件夹下面也可以

 

9.推荐(2)使用ssh开发项目的时候,导入JUnit,建立test 
源码文件夹,安放测试用例,边开发边测试。

【上篇】
【下篇】

抱歉!评论已关闭.