先看一下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文件中修改
<struts>
<constant
name="struts.action.extension"
value="action"></constant>
……
当然第四种方法最为简单,个人就只是试了第四种
分享到:
相关推荐
Struts2访问ServletAPI
Struts2和Servlet 1、在struts2的action中可以通过实现ServletResponseAware/ServletResquestAware接口 (org.apache.struts2.inteceptor.ServletResponseAware/ServletResquestAware)直接访问 HttpServletResponse/...
解决Struts2和servlet的中文乱码问题
这是一个java上传与下载的案例,此案例有两个实现方式:struts2和servle,所以说有两个DEMO,可供新手学习。
struts2和jspServlet上传
struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别...
绝对100%自己纯手打,里面是servlet和struts2的一些重要的基础知识!
tomcat、struts2、servlet Filter(过滤器) 工作原理 学习servlet的好资料,懂得工作原理,更容易理解问题.
servlet与struts简介 servlet与struts简介 servlet与struts简介
NULL 博文链接:https://aazham.iteye.com/blog/1305534
参考博文:http://blog.csdn.net/u011638419/article/details/41642773
struts2 Action 包 命名空间 servlet APIstruts2 Action 包 命名空间 servlet APIstruts2 Action 包 命名空间 servlet APIstruts2 Action 包 命名空间 servlet APIstruts2 Action 包 命名空间 servlet APIstruts2 ...
eclipse for javaee配置web开发环境(struts2+servlet+sping)字体.doc 让你快速学会在eclipse for javaee里开发javaweb项目
主要介绍了Struts和servlet不能共存问题解决方法,共有三种方法,需要的朋友可以参考下。
参考博文:http://blog.csdn.net/u011638419/article/details/41407401
其中包括xdoclet2与hibernate3.6的整合xdoclet1.2.3分别与spring3.0.5、struts1.3、struts2.1、 servlet的整合配置。其中还有相应的.xdt文件模板,其中struts2.1.xdt为自己写的。 需要xdoclet1.2.3 ...
用sevrlet模拟Struts2的简单功能。从拦截请求、解析自定义xml数据文件以及动态生成action的代理去执行目标方法,并实现了简单的日志拦截【interceptor】
3 Servlet依赖方面的对比:Struts 1 Action依赖于Servlet API,因为Struts 1 Action的execute方法中有HttpServletRequest和HttpServletResponse方法。Struts 2 Action不再依赖于Servlet API,从而允许Action脱离Web...
struts2和mybatis的struts2和mybatis的struts2和mybatis的struts2和mybatis的struts2和mybatis的struts2和mybatis的struts2和mybatis的struts2和mybatis的struts2和mybatis的struts2和mybatis的struts2和mybatis的