struts2和servlet的共存问题
2013-04-19 00:10
302 查看
来自:http://www.blogjava.net/xcp/archive/2012/08/05/384824.html
先看一下struts2 的web.xml文件:
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在请求应用时,struts2将会截获所有请求,对于servlet请求将不能够正常相应,是struts2把servlet当成action了,因为servlet和action都是没有后缀的
解决方法目前有四种:
方法1:统一在servlet后面加上.servlet(包括web.xml配置文件中和页面上使用servlet的地方)
方法2:继承StrutsPrepareAndExecuteFilter,实现以下两个方法。
public void init(FilterConfig filterConfig) throws
ServletException {
..............................
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws
IOException, ServletException {
...............................
if(url.contain("servlet")){
((HttpServletResponse) response).sendRedirect(redirectUrl);
}
super.doFilter(request, response, chain);
}
方法3:修改拦截页面配置
原:
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>
/* </url-pattern>
</filter-mapping>
现:
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/user/*</url-pattern>
</filter-mapping>
servlet的请求路径不必改变
方法4:在struts.xml文件中修改
![](http://img.ph.126.net/Cxc_WRxuo2JGnBwYJ61AcQ==/1609192441856277805.jpg)
先看一下struts2 的web.xml文件:
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在请求应用时,struts2将会截获所有请求,对于servlet请求将不能够正常相应,是struts2把servlet当成action了,因为servlet和action都是没有后缀的
解决方法目前有四种:
方法1:统一在servlet后面加上.servlet(包括web.xml配置文件中和页面上使用servlet的地方)
方法2:继承StrutsPrepareAndExecuteFilter,实现以下两个方法。
public void init(FilterConfig filterConfig) throws
ServletException {
..............................
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws
IOException, ServletException {
...............................
if(url.contain("servlet")){
((HttpServletResponse) response).sendRedirect(redirectUrl);
}
super.doFilter(request, response, chain);
}
方法3:修改拦截页面配置
原:
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>
/* </url-pattern>
</filter-mapping>
现:
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/user/*</url-pattern>
</filter-mapping>
servlet的请求路径不必改变
方法4:在struts.xml文件中修改
![](http://img.ph.126.net/Cxc_WRxuo2JGnBwYJ61AcQ==/1609192441856277805.jpg)
相关文章推荐
- 使用过滤器解决Struts2和Servlet的共存问题
- struts2和servlet的共存问题以及解决
- struts2和servlet的共存问题
- struts2和servlet的共存问题 (已在实际问题中验证)
- struts2和servlet的共存问题
- struts2和servlet的共存问题
- struts2和servlet的共存问题
- struts2与servlet共存问题
- struts2和servlet的共存交互问题
- struts2和servlet的共存问题
- struts2和servlet的共存问题
- Structs2和servlet共存问题
- struts/Servlet,action转到jsp后,路径问题(struts2,jsp路径,action路径,action跳转,相对路径,绝对路径)
- struts2和servlet共存的几种方法
- struts2和servlet同时使用问题
- 解决使用struts2后servlet不能正常工作的问题
- 【Java EE 学习 35 上】【strus2】【类型转换器】【struts2和Servlet API解耦】【国际化问题】【资源文件乱码问题已经解决】
- servlet、struts1和struts2的线程安全问题
- servlet---知识点深化---重定向/转发/字节流字符流共存问题/多个servlet输出问题/请求包含
- 让struts2和servlet共存