• 创建maven+spring+struts1


    一、 建立 maven 项目

     

    二、项目结构

    三、配置 pom.xml

     

    <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
        <!-- spring start -->
       	<dependency>
    	  <groupId>org.springframework</groupId>
    	  <artifactId>spring-core</artifactId>
    	  <version>4.2.1.RELEASE</version>
    	</dependency>
    	<dependency>
    	  <groupId>org.springframework</groupId>
    	  <artifactId>spring-web</artifactId>
    	  <version>4.2.1.RELEASE</version>
    	</dependency>
    	<dependency>
    	  <groupId>org.springframework</groupId>
    	  <artifactId>spring-context</artifactId>
    	  <version>4.2.1.RELEASE</version>
    	</dependency>
    	<dependency>
    	  <groupId>org.springframework</groupId>
    	  <artifactId>spring-tx</artifactId>
    	  <version>4.2.1.RELEASE</version>
    	</dependency>
    	<dependency>
    	  <groupId>aopalliance</groupId>
    	  <artifactId>aopalliance</artifactId>
    	  <version>1.0</version>
    	</dependency>
     	<!-- spring end -->
     	<!-- struts start -->
     	<dependency>
    	  <groupId>org.apache.struts</groupId>
    	  <artifactId>struts2-core</artifactId>
    	  <version>2.3.8</version>
    	</dependency>
    	<dependency>
    	  <groupId>org.apache.struts</groupId>
    	  <artifactId>struts2-convention-plugin</artifactId>
    	  <version>2.3.8</version>
    	</dependency>
     	<!-- struts end -->
     	<!-- spring + spring start -->
     	<dependency>
    	  <groupId>org.apache.struts</groupId>
    	  <artifactId>struts2-spring-plugin</artifactId>
    	  <version>2.3.8</version>
    	</dependency>
     	<!-- spring + spring end -->
     	<!-- C3P0 -->
    	<dependency>
    	  <groupId>com.mchange</groupId>
    	  <artifactId>c3p0</artifactId>
    	  <version>0.9.5.1</version>
    	</dependency>
    	<!-- End C3P0 -->
    	<!-- jstl -->
    	<dependency>
    	  <groupId>jstl</groupId>
    	  <artifactId>jstl</artifactId>
    	  <version>1.2</version>
    	</dependency>
    	<dependency>
    	  <groupId>taglibs</groupId>
    	  <artifactId>standard</artifactId>
    	  <version>1.1.2</version>
    	</dependency>
    	<!-- End jstl -->
      </dependencies>
    

     

    四、配置 web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        					http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
        
      <display-name>Archetype Created Web Application</display-name>
      
      <!-- Spring配置 -->  
      <context-param>  
        <param-name>contextConfigLocation</param-name>  
        <param-value>classpath*:spring/applicationContext-*.xml</param-value>  
      </context-param>  
      <listener>  
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
      </listener>  
      <!-- End Spring配置 -->
      <!-- 默认i18n资源文件 -->
      <context-param>
    	<param-name>
    		javax.servlet.jsp.jstl.fmt.localizationContext
    	</param-name>
    	<param-value>i18n/messages</param-value>
      </context-param>
      <!--End 默认i18n资源文件 -->
      <!-- Spring 编码过滤 -->  
      <filter>  
          <filter-name>encodingFilter</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>  
          <!--  
          <init-param>  
              <param-name>forceEncoding</param-name>  
              <param-value>true</param-value>  
          </init-param>
          -->
      </filter>
      <!--  
      <filter-mapping>  
          <filter-name>encodingFilter</filter-name>  
          <url-pattern>*.mvc</url-pattern>  
      </filter-mapping> 
      -->   
      <filter-mapping>  
          <filter-name>encodingFilter</filter-name>  
          <url-pattern>*.do</url-pattern>  
      </filter-mapping>  
      <filter-mapping>  
          <filter-name>encodingFilter</filter-name>  
          <url-pattern>*.action</url-pattern>  
      </filter-mapping>
      <!--   
      <filter-mapping>  
          <filter-name>encodingFilter</filter-name>  
          <url-pattern>*.jsp</url-pattern>  
      </filter-mapping>
      -->
      <!-- End Spring 编码过滤 -->
      <!-- Spring 刷新Introspector防止内存泄露 -->
      <listener>
    	<listener-class>
    		org.springframework.web.util.IntrospectorCleanupListener
    	</listener-class>
      </listener>
      <!-- End Spring 刷新Introspector防止内存泄露 -->
      <!-- 后台登录验证过滤 -->
      <filter>
    	<filter-name>userLoginFilter</filter-name>
    	<filter-class>
    		com.npsesa.web.filter.UserLoginFilter
    	</filter-class>
      </filter>
      <!-- End 后台登录验证过滤 -->
      <!-- Struts2配置 -->  
      <filter>  
        <filter-name>struts2-config</filter-name>  
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
      </filter>  
      <filter-mapping>  
        <filter-name>struts2-config</filter-name>  
        <url-pattern>*.do</url-pattern>  
      </filter-mapping>  
      <filter-mapping>  
        <filter-name>struts2-config</filter-name>  
        <url-pattern>*.action</url-pattern>  
      </filter-mapping> 
      <!-- End Struts2配置 -->
      <!-- session超时定义,单位为分钟 -->
      <session-config>
    	<session-timeout>20</session-timeout>
      </session-config>
      <!-- End session超时定义,单位为分钟 -->
      <!-- 默认首页定义 -->
      <welcome-file-list>
    	<welcome-file>index.jsp</welcome-file>
    	<welcome-file>index.html</welcome-file>
      </welcome-file-list>
      <!-- End 默认首页定义 -->
      <!-- Error Page定义 -->
      <error-page>
    	<error-code>500</error-code>
    	<location>/commons/500.jsp</location>
      </error-page>
      <error-page>
    	<error-code>404</error-code>
    	<location>/commons/404.jsp</location>
      </error-page>
      <error-page>
    	<error-code>403</error-code>
    	<location>/commons/403.jsp</location>
      </error-page>
      <!-- End Error Page定义 -->
    </web-app>
    

    五、新建文件夹,将项目结构变成如下

    六、配置jdbc.properties

    # Hsqldb
    #jdbc.url=jdbc:hsqldb:./hsqldb/se
    #jdbc.url=jdbc:hsqldb:hsql://localhost/se
    #hibernate.dialect=org.hibernate.dialect.HSQLDialect
    
    # Oracle
    #jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
    #jdbc.url=jdbc:oracle:thin:@localhost:se
    #hibernate.dialect=org.hibernate.dialect.Oracle9iDialect
    
    # DB2
    #jdbc.driverClassName=com.ibm.db2.jcc.DB2Driver
    #jdbc.driverClassName=COM.ibm.db2.jdbc.app.DB2Driver
    #jdbc.url=jdbc:db2://localhost:50000/se
    #hibernate.dialect=org.hibernate.dialect.DB2Dialect
    
    # MySQL
    #jdbc.driverClassName=com.mysql.jdbc.Driver
    #jdbc.url=jdbc:mysql://localhost:3306/npsesa?useUnicode=true&characterEncoding=utf8
    #hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
    
    # PostgreSQL
    #jdbc.driverClassName=org.postgresql.Driver
    #jdbc.url=jdbc:postgresql:se
    #hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
    
    # MS SQL Server
    jdbc.driverClassName=net.sourceforge.jtds.jdbc.Driver
    #jdbc.url=jdbc:jtds:sqlserver://192.168.3.221:1433;DatabaseName=npsesa
    jdbc.url=jdbc:jtds:sqlserver://localhost:1433;instance=SQL2012;DatabaseName=npsesa
    
    # Username & Password
    jdbc.username=sa
    jdbc.password=sas
    #jdbc.password=sa
    

    七、配置applicationContext-jdbc.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns:aop="http://www.springframework.org/schema/aop"
    	xmlns:tx="http://www.springframework.org/schema/tx"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
               http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
               http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"
    	default-autowire="byName">
    
    	<!-- 属性文件读入 -->
    	<bean id="propertyConfigurer"
    		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    		<property name="locations">
    			<list>
    				<value>classpath*:jdbc.properties</value>
    			</list>
    		</property>
    	</bean>
    	
    	<!-- 事务管理 --> 
    	<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    		<property name="dataSource" ref="dataSource" />
    	</bean>
    	
    	<!-- 拦截事务的方法设置 -->  
        <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">  
            <property name="transactionManager" ref="txManager" />  
            <property name="transactionAttributes">  
                <props>  
                    <prop key="find*">	PROPAGATION_REQUIRED,readOnly</prop>  
                    <prop key="get*">	PROPAGATION_REQUIRED,readOnly</prop>  
                    <prop key="insert*">PROPAGATION_REQUIRED</prop>  
                    <prop key="update*">PROPAGATION_REQUIRED</prop>  
                    <prop key="delete*">PROPAGATION_REQUIRED</prop>  
                    <prop key="add*">	PROPAGATION_REQUIRED</prop>  
                    <prop key="save*">	PROPAGATION_REQUIRED</prop>  
                    <prop key="remove*">PROPAGATION_REQUIRED</prop>  
                </props>  
            </property>  
        </bean>
        <bean id="txProxy" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">      
            <property name="beanNames">      
              <list>      
                 <value>*Dao</value> 
              </list>      
            </property>      
            <property name="interceptorNames">      
              <list>      
                 <value>transactionInterceptor</value>      
              </list>      
            </property>      
        </bean>
        
    	<!-- dbcp数据源配置 -->
    	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
            <property name="driverClass" value="${jdbc.driverClassName}"></property>	<!--mysql数据库驱动 -->        
            <property name="jdbcUrl" value="${jdbc.url}"></property>  			<!-- mysql数据库名称 -->  
            <property name="user" value="${jdbc.username}"></property>			<!-- 数据库的登陆用户名 -->    
            <property name="password" value="${jdbc.password}"></property>			<!-- 数据库的登陆密码 -->    
            <!-- 其他配置 -->  
            <property name="initialPoolSize" value="3"></property>  	<!--初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
            <property name="minPoolSize" value="3"></property>		<!--连接池中保留的最小连接数。Default: 3 -->  
            <property name="maxPoolSize" value="5"></property>		<!--连接池中保留的最大连接数。Default: 15 -->  
            <property name="acquireIncrement" value="3"></property>		<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->  
              
            <property name="maxStatements" value="8"></property>  			<!-- 控制数据源内加载的PreparedStatements数量。如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0 -->
            <property name="maxStatementsPerConnection" value="5"></property>	<!--maxStatementsPerConnection定义了连接池内单个连接所拥有的最大缓存statements数。Default: 0 -->  
            <property name="maxIdleTime" value="1800"></property>			<!--最大空闲时间,1800秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->  
    	</bean>
    	
    	
    	
        <!-- Spring jdbcTemplate -->
        <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    		<property name="dataSource" ref="dataSource" />
    	</bean>
    	
        <bean id="baseDAOAdapter" class="com.npsesa.dao.impl.BaseDAOAdapter">
    		<property name="jdbcTemplate" ref ="jdbcTemplate" />
    	</bean>
    </beans>
    

    八、配置 applicationContext-action.xml  

     

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 3.0//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 
    <beans> 
    </beans>
    

    九、配置 applicationContext-dao.xml  

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 3.0//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 
    <beans> 
    	<bean id="clientDao" class="com.npsesa.dao.impl.ClientDaoImpl" parent="baseDAOAdapter" />
    	<bean id="moduleDao" class="com.npsesa.dao.impl.ModuleDaoImpl" parent="baseDAOAdapter" />
    </beans>
    

    十、配置 struts2-config.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
       "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
       "http://struts.apache.org/dtds/struts-2.0.dtd">
       
    <struts2-config>  
    	<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
    		<set-property property="contextConfigLocation" 
    					  value="classpath:spring/applicationContext-action.xml" />
    	</plug-in>  
    </struts2-config> 
    

     

  • 相关阅读:
    [009]类型转换
    [008]new、delete及动态内存分配
    [007]操作符的求解顺序
    [010]转+修正---C++的贪吃蛇程序(未用面向对象封装)
    [006]为什么C++会被叫做是C++?
    [005]逗号表达式
    [JavaScript]转--如何让JS代码高大上
    [009]C---关于输出文本的打印问题
    [008]C---gcc环境下的一个编译器版本问题
    PlayMaker 状态机FSM重用
  • 原文地址:https://www.cnblogs.com/MissRabbit/p/6198021.html
Copyright © 2020-2023  润新知