`

struts2 项目中使用filter获取

阅读更多

我在ssh 项目中使用过滤器filter 拦截一个请求,然后在filter中想获取request(使用),然后获取请求体。

filter中部分代码如下:

 

for (int i = 0; i < contentLength;)
			try {

				int readlen = request.getInputStream().read(buffer, i,
						contentLength - i);
				requestPacket.append(new String(buffer));
				if (readlen == -1) {
					return null;
				}
				i += readlen;
			} catch (IOException ioexception) {
				ioexception.printStackTrace();
			} finally {
				// logger.info("Json Request:" + requestPacket);
				System.out.println("Json Request:" + requestPacket);
			}

 但是request 的inputstream中无内容,为什么会无内容呢?

请求的方式是post,而且确实设置了请求体,怎么会没有内容呢?

测试了半天才发现是struts2 的原因:

因为struts2 的过滤器:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

被struts2 的过滤器拦截之后,请求体就为空了。

如何解决这个问题呢?

方式一:把自定义的过滤器 放在struts的filter之前;

 方式二:修改struts2 过滤器的url pattern:

<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>*.action</url-pattern>
	</filter-mapping>

 

 

分享到:
评论

相关推荐

    struts2+kindEditor4.1.7

    中文乱码不是问题,一般struts2+spring开发项目的时候,使用spring的filter就可以搞定 &lt;filter&gt; &lt;filter-name&gt;Set Character Encoding&lt;/filter-name&gt; &lt;filter-class&gt;org.springframework.web.filter....

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    2.8.3 在JSP页面中使用Include指令后,JSP不能编译 2.9 精彩回顾 第3章前人栽树后人乘凉 ——、JSP内置对象 3.1 本章学习任务 3.1.1 本章知识体系 3.1.2 实例开发任务 3.2 简化开发JSP内置对象概述 3.2.1 为什么...

    AjaxAnyWhere中文帮助文档.pdf

    际项目中,可以根据项目实际需求来修改url-pattern 的值,定制要应用AjaxAnywhere 的请求类型,即只有特定 的请求才应用AjaxAnywhere 处理。 AjaxAnywhere 的类库及其用法 AjaxAnywhere 使用一个名为aa.js 的...

    北风客户关系管理源码 CRM

    该项目使用流行的Struts 2 + Hibernate + Spring + JQuery整合开发。众所周知Struts 2框架比之前辈要胜出不少,而Hibernate框架也是持久化中的首选,而大名鼎鼎的Spring更是无所不能。再加上设计轻巧的JQuery框架,...

    客户关系管理系统框架搭建(二)

    crm项目的架构 * 创建web工程 * 引入jar包 * mysql的驱动包 * hibernate需要的jar包 * spring需要的jar包 * struts2需要的jar包 * jstl 需要的jar包 * junit需要的jar包 * 包的介绍 * ...

    《MyEclipse 6 Java 开发中文教程》前10章

    9.2 创建Struts项目 168 9.2.1 创建Web项目 169 9.2.2 加入 Struts开发功能 169 9.3 使用Struts工具 171 9.3.1 Struts配置文件编辑器 171 9.3.2 Struts组件向导 173 9.4编写登录应用 175 9.4.1 应用的流程和目标 175...

    java视频教程Day01 免费

    以上教学过程中贯穿一个银行项目,根据每天所学的东西不断完善 J2EE部分 14. JDBC Overview and Using JDBC (JDBC概述及使用) 15. JDBC 2.0 core features (JDBC 2.0核心) 16. JDBC 2.0 standard extension ...

    ThinkPHP v3.0.1 开发板.zip

    使用面向对象的开发结构和MVC模式,采用单一入口模式等,融合了Struts的 Action思想和JSP的TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,封装了CURD和一些常用操作,在项目配置、类 库导入、模版引擎、查询语言...

    spring security 参考手册中文版

    作为用户在Spring MVC测试中使用注释运行 108 12.2.4测试HTTP基本认证 109 12.3 SecurityMockMvcRequestBuilders 109 12.3.1测试基于表单的认证 109 12.3.2测试注销 110 12.4 SecurityMockMvcResultMatchers 110 ...

Global site tag (gtag.js) - Google Analytics