创建一个web项目
1. 创建的是一个web项目 必须要添加web.xml文件
web.xml is missing and <failOnMissingWebXml> is set to true
2.在src目录下创建一个WEB-INF的文件夹。创建web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>blxgfdb</display-name>
<!-- 指定struts2的核心过滤器-->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 确定spring配置文件的位置 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!-- spring监听器 加载xml配置文件 tomcat启动加载配置文件-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app
3.在src下创建config文件夹,在文件夹里添加applicationContext.xml,c3p0-db.properties数据配置文件,log4j.properties日志文件 ,struts.xml struts2的配置文件
1.applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
">
<!--配置c3p0连接池 用以连接数据库 -->
<context:property-placeholder location="classpath:c3p0-db.properties" />
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
<!--定义在从数据库获取新连接失败后重复尝试的次数。默认值: 30 ;小于等于0表示无限次 -->
<property name="acquireRetryAttempts" value="0" />
<!--重新尝试的时间间隔,默认为:1000毫秒 -->
<property name="acquireRetryDelay" value="1000" />
<!--定义所有连接测试都执行的测试语句。在使用连接测试的情况下这个一显著提高测试速度。测试的表必须在初始数据源的时候就存在。Default:
null -->
<property name="preferredTestQuery" value="select 1" />
<!--每1800秒检查所有连接池中的空闲连接。Default: 0 -->
<property name="idleConnectionTestPeriod" value="300" />
<!-- 获取连接时测试有效性,每次都验证连接是否可用 -->
<property name="testConnectionOnCheckout" value="false" />
</bean>
<!-- spring整合hibernate 获得sessionFactory LocalSessionFactoryBean
1.数据源 2.hibernateProperties hibernate其他配置文件-->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
<prop key="hibernate.show_sql">true</prop> <!-- 控制sql语句是否在控制台输出 -->
<prop key="hibernate.format_sql">true</prop> <!-- 格式化控制台输出的sql语句 -->
<prop key="hibernate.hbm2ddl.auto">update</prop> <!-- 如果没有表,自动创建 -->
<prop key="javax.persistence.validation.mode">none</prop>
<prop key="hibernate.current_session_context_class">thread</prop>
<prop key="hibernate.dialect">hbsi.yfzx.util.Oracle11gDialect</prop>
</props>
</property>
<!-- 以上文件均可拷贝 -->
<!--读取映射文件 -->
<property name="mappingDirectoryLocations">
<value>classpath:hbsi/yfzx/domain/</value>
</property>
</bean>
<!--配置Dao -->
<!--
<bean id="userDao" class="hbsi.yfzx.dao.Impl.UserDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
-->
<bean id="bjbDao" class="hbsi.yfzx.dao.Impl.BjbDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
<property name="pZdcsDao" ref="pZdcsDao"></property>
</bean>
<!--配置service-->
<bean id="bjbService" class="hbsi.yfzx.service.Impl.BjbServiceImpl">
<property name="bjbDao" ref="bjbDao"></property>
</bean>
<!--配置声明事务管理方式 -->
<bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!--配置回滚条件 -->
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="save*" />
<tx:method name="update*" />
<tx:method name="delete*" />
<tx:method name="find*" read-only="true" />
</tx:attributes>
</tx:advice>
<!--配置哪个包里的需要回滚 -->
<aop:config>
<aop:advisor advice-ref="txAdvice"
pointcut="execution(* hbsi.yfzx.service..*.*(..))" />
</aop:config>
2.c3p0-db.properties
jdbc.driverClass=oracle.jdbc.driver.OracleDriver
jdbc.jdbcUrl=jdbc:oracle:thin:@xxx.xxx.x.x:1521:orcl
jdbc.user=system
jdbc.password=root
3.log4j.properties
log4j.rootLogger=INFO,CONSOLE,DayRollingFile
#console
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=INFO
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d - %c -%-4r [%t] %-5p %x - %m%n
# dayrollingfile
log4j.appender.DayRollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DayRollingFile.file=C:/blxLogs/log_
log4j.appender.DayRollingFile.DatePattern=yyyyMMdd'.log'
log4j.appender.DayRollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.DayRollingFile.layout.ConversionPattern=/n/n[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
4.struts.xml
<struts>
<constant name="struts.i18n.encoding" value="UTF-8"></constant>
<constant name="struts.devMode" value="false"></constant>
<!--该属性设置浏览器是否缓存静态内容.当应用处于开发阶段时,我们希望每次请求都获得服务器的最新响应,则可设置该属性为false. -->
<constant name="struts.serve.static.browserCache" value="false" />
<!--对于某些Java EE服务器,不支持HttpServlet Request调用getParameterMap()方法,此时可以设置该属性值为true来解决该问题.该属性的默认值是false.对于WebLogic、Orion和OC4J服务器,通常应该设置该属性为true. -->
<constant name="struts.dispatcher.parametersWorkaround" value="false" />
<!--该属性设置当struts.xml文件改变后,系统是否自动重新加载该文件.该属性的默认值是false. -->
<constant name="struts.configuration.xml.reload" value="true" />
<!-- 上传文件使用 设置存放临时文件的文件夹 -->
<constant name="struts.multipart.saveDir" value="/tmp"></constant>
这里拦截器就不配置了,各位根据自己需要拦截内容 自行配置
<!-- 这句话是将struts交给spring管理 -->
<constant name="struts.objectFactory" value="spring"></constant>
<!---配置action--!>
<package name="site" namespace="/" extends="json-default">
<action name="siteBjbAction_*" class="hbsi.yfzx.action.BjbAction" method="{1}">
<result name="data" type="json">
<param name="callbackParameter">callback</param>
<param name="noCache">true</param>
<param name="root">dataMap</param>
</result>
</action>
</package>
温馨提示:文档仅供参考,若有不足,请多多指教