转载 在Struts2中使用servlet 配置问题
2011-08-14 20:10
302 查看
在做WEB项目时,要么是Struts+Spring+Hibernate,
要是就直接使用servlet。这次碰到一个项目,经理想要把之前一个用servlet做的部分模块移植到当前项目下(Struts+Spring),这
时发现Struts2.X(Struts1.X没试过不知道行不行)不能和servlet同时使用,主要是由于页面的请求都被struts给拦截了,根本
访问不了servlet,发现这个原因后本人是先直接在struts的配置文件中加上
<constant name="struts.action.extension" value="do,action"/>
(请求的后缀要有.do或.action才到struts配置文件里找对应的action),运行站点,可以工作了。
没想到刚过两天,在测试上传功能时又出错了(该上传功能也是
从原先的项目移植过来的),找不到上传的文件,这到是奇了怪了,仔细看了下log,发现在执行请求的servlet前还是经过了struts的过滤链,这
时我想可能是struts的文件过滤那块把文件给绑定到某个地方(好像使用struts2上传文件就是这么回事:通过文件拦截器
,将文件绑定到action中的对应属性),而当servlet去获取request中的文件二进制流时,将找不到文件,导致上传的文件为空,造成后续的
操作失败。至此只能在web.xml关于struts2的拦截链的配置修改了,原本配置如下:
<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>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action;*.do;...</url-pattern>(过滤不同的后缀,要分开写 ,在此为方便写在一起)
</filter-mapping>
至此struts和servlet可以一起运行啦
要是就直接使用servlet。这次碰到一个项目,经理想要把之前一个用servlet做的部分模块移植到当前项目下(Struts+Spring),这
时发现Struts2.X(Struts1.X没试过不知道行不行)不能和servlet同时使用,主要是由于页面的请求都被struts给拦截了,根本
访问不了servlet,发现这个原因后本人是先直接在struts的配置文件中加上
<constant name="struts.action.extension" value="do,action"/>
(请求的后缀要有.do或.action才到struts配置文件里找对应的action),运行站点,可以工作了。
没想到刚过两天,在测试上传功能时又出错了(该上传功能也是
从原先的项目移植过来的),找不到上传的文件,这到是奇了怪了,仔细看了下log,发现在执行请求的servlet前还是经过了struts的过滤链,这
时我想可能是struts的文件过滤那块把文件给绑定到某个地方(好像使用struts2上传文件就是这么回事:通过文件拦截器
,将文件绑定到action中的对应属性),而当servlet去获取request中的文件二进制流时,将找不到文件,导致上传的文件为空,造成后续的
操作失败。至此只能在web.xml关于struts2的拦截链的配置修改了,原本配置如下:
<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>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action;*.do;...</url-pattern>(过滤不同的后缀,要分开写 ,在此为方便写在一起)
</filter-mapping>
至此struts和servlet可以一起运行啦
相关文章推荐
- Servlet3.1使用@WebServlet注解配置问题记录
- JSP,mysql,tomcat下(基于struts2)中文及其乱码问题的解决 5大配置点 使用UTF-8编码
- 配置Struts2后如何使用servlet
- struts2和servlet同时使用问题
- Struts2中使用Velocity的resource.loader配置问题详解
- 解决使用struts2后servlet不能正常工作的问题
- struts2 中使用 servlet遇到的问题
- 在struts2中使用filter来配置servlet处理业务
- 【笔记】struts2学习笔记(二)--常见问题/一些配置/Myeclipse使用
- 使用过滤器解决Struts2和Servlet的共存问题
- 使用Eclipse配置Struts2开发 4000 环境
- 关于Maven使用不同环境进行配置的问题
- 关于在Struts2的action中直接使用response的异步问题
- 伤神!!Eclipse配置Struts2问题:ClassNotFoundException: org...dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
- 第9章 Servlet的配置与使用
- JavaWeb学习总结(四十八)——模拟Servlet3.0使用注解的方式配置Servlet
- struts2的配置和使用
- windows 2008初体验常见问题: 无线网络"没有正确配置为使用IP协议" 错误解决办法
- Linux下telnet服务配置和使用[转载]
- (转载)详细图解mongodb下载、安装、配置与使用