转载 在Struts2中使用servlet 配置问题
在做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可以一起运行啦
分享到:
相关推荐
Struts2和Servlet 1、在struts2的action中可以通过实现ServletResponseAware/ServletResquestAware接口 (org.apache.struts2.inteceptor.ServletResponseAware/ServletResquestAware)直接访问 HttpServletResponse/...
Struts2 中的验证逻辑编写在 Action 中. 4、Struts1 中, Action 类必须继承 org.apache.struts.action.Action 类; Struts2 中任何一个 POJO 都可以是一个 Action 类. 5、Struts2 在页面里使用 OGNL 来显示各种对象...
eclipse for javaee配置web开发环境(struts2+servlet+sping)字体.doc 让你快速学会在eclipse for javaee里开发javaweb项目
解决struts2配置为/*之后 servlet不能使用的问题
Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,...
是否struts过滤器中提供的静态内容应该被浏览器缓存在头部属性中 struts.serve.static Whether the Struts filter should serve static content or not 是否struts过滤器应该提供静态内容 struts.tag....
3.控制器采用action开发,替代传统的servlet,直接跳转页面返回一个字符串即可,需配置struts.xml对应的jsp。 4.struts2,可以直接对表单提交的数据封装成对象,简洁!当然需要在web.xml中配置核心filter—...
其中包括xdoclet2与hibernate3.6的整合xdoclet1.2.3分别与spring3.0.5、struts1.3、struts2.1、 servlet的整合配置。其中还有相应的.xdt文件模板,其中struts2.1.xdt为自己写的。 需要xdoclet1.2.3 ...
Struts2第一章 一、 介绍: a) Struts2是以web work优秀的设计思想为核心,吸收了struts1的部分优点,建立了一个基于...a) 在项目中导入Struts2必需的jar包。 b) 修改web.xml配置文件。 c) 添加struts.xml配置文件。
2. 建立一个Web Project(命名为struts_exam1),并添加Struts 2 的相关jar 包; 3. 编写登录页面(login.jsp)、登录成功(login_success.jsp)和登录失败页面(login_fail.jsp); 4. 编写Ation实现类,实现execute()...
由于 Struts 的入口点是 ActionServlet ,所以得在 web.xml 中配置一下这 个 Servlet 。 2. 编写 Action 类(一般从 org.apache.struts.action.Action 类继承)。 3. 编写 ActionForm 类(一般从 org.apache.struts....
1.概述strust2中的拦截器 28 2.自定义拦截器 28 方式一,实现Interceptor接口。 28 方式二、继承AbstractInterceptor抽象类 29 方式三、继承MethodFilterInteceptor类 30 3.使用来MethodFilterInterceptor灵活拦截 ...
Struts2就是从servlet中封装以后得到的结果。 1.2Servlet的缺点 1、每写一个servlet在web.xml中都要做相应的配置。如果有多很servlet,会 导致web.xml内容过于繁多。 2、这样的结构不利于分组开发。 3、在servlet中...
struts1的配置比struts2麻烦很多。不仅要在.xml里写繁多的配置,多数也还要写一个FormBean来和action对应。struts2配置简单。不用继续servlet,任何一个带有方法的类都能当作action来使用。
描述:用于配置ActionServlet 数量:最多一个 属性: @bufferSize:指定上传文件的输入缓冲的大小.默认为4096 @className:指定当前控制器的配置类.默认为org.apache.struts.config.ControllerConfig @...
该属性指定加载Struts 2配置文件的配置文件管理器.该属性的默认值是org.apache.Struts2.config.DefaultConfiguration, 这是Struts 2默认的配置文件管理器.如果需要实现自己的配置管理器,开发者则可以实现一个实现...
servlet与Struts action线程安全问题分析
2、在sping配置中注意单元测试里,xml文件的路径问题,要用绝对路径。 3、struts.xml中命名空间和拦截器的使用。 4、sqlmapconfig.xml中传入参数和result的设置,只需要将得到的值result映射到有此属性的类对象. 5、...
4.3 在Struts2中配置自定义的拦截器 53 4.3.1 扩展拦截器接口的自定义拦截器配置 54 4.3.2 继承抽象拦截器的自定义拦截器配置 56 4.3.3 继承方法拦截器的自定义拦截器配置 58 4.4 Struts2文件上传拦截器应用 61 ...
Struts2执行流程 1. web.xml 部署描述符 2. FilterDispatcher 实现StrutsStatics, Filter接口 (1)Filter:一个filter是一个对象用于执行过滤任务为每个请求资源(一个servlet或静态内容),或响应一个资源,或两者.过滤...