1.struts在web.xml中配置过滤器
<!-- 定义Struts2的FilterDispathcer的Filter -->
<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配置
<!-- 系统常量配置 -->
<!-- 指定国际化资源文件的baseName为resource -->
<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>
<!-- 定义sql、root两个异常对应的视图页 -->
<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异常时,
系统将转入name为business的结果中 -->
<exception-mapping
exception="com.qdlg.secondclass.exception.ScException"
result="business"/>
<!-- 当Action中遇到Exception异常时,
系统将转入name为root的结果中 -->
<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中将hibernate与spring建立连接
<!-- 定义Hibernate的SessionFactory -->
<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>
<!-- 定义Hibernate的SessionFactory的属性 -->
<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.xml和applicationContext.xml文件放在src根目录下。当然放在其他文件夹下面也可以
9.推荐(2)使用ssh开发项目的时候,导入JUnit,建立test
源码文件夹,安放测试用例,边开发边测试。