Struts2与Spring整合步骤


1.加入jar包

复制文件。

复制struts2-spring-plugin-x-x-x.jar和spring.jar到WEB-INF/lib目录下。其中的x对应了Spring的版本号。还需要复制commons-logging.jar、struts2-core-2.3.4.1.jar文件到WEB-INF/lib目录下。

2. 配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <display-name>game.cai</display-name>
 
  <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>/*</url-pattern>
  </filter-mapping>
 
  <!-- 配置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监听器-->
    <listener> 
    <listener-class> 
      org.springframework.web.context.ContextLoaderListener 
    </listener-class> 
</listener> 
<!-- 用来定位Spring XML文件的上下文配置 -->
<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value> 
        classpath:/applicationContext*.xml 
    </param-value> 
</context-param> 

 <filter> 
        <filter-name>hibernateOpenSessionInViewFilter</filter-name> 
        <filter-class> 
          org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
        </filter-class> 
    </filter> 
   
 <filter> 
        <filter-name>struts2CleanUpFilter</filter-name> 
        <filter-class> 
          org.apache.struts2.dispatcher.ActionContextCleanUp
        </filter-class> 
    </filter> 
 
 
  <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.添加struts2-spring整合的插件:struts2-spring-plugin-2.0.12.jar,如果不使用这个插件,则需要在struts.xml里面配置:
<constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" /> 

推荐阅读:

Apache Struts多个前缀参数远程命令执行漏洞(CVE-2013-2251)

Apache Struts 多个开放重定向漏洞(CVE-2013-2248)

Struts2 远程执行代码(S2-016) 利用工具

相关内容