`
tangyanbo
  • 浏览: 263165 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

更改Request Parameters中的值

阅读更多

1. 定义ParameterRequestWrapper 继承HttpServletRequestWrapper

 

public class ParameterRequestWrapper extends HttpServletRequestWrapper {

	private Map<String,String[]> params;

	public ParameterRequestWrapper(HttpServletRequest request, Map<String,String[]> newParams) {
		super(request);
		this.params = newParams;
	}

	@Override
	public String getParameter(String name) {
		Object v = params.get(name);
		if (v == null) {
			return null;
		} else if (v instanceof String[]) {
			String[] strArr = (String[]) v;
			if (strArr.length > 0) {
				return strArr[0];
			} else {
				return null;
			}
		} else if (v instanceof String) {
			return (String) v;
		} else {
			return v.toString();
		}
	}

	@Override
	public Map getParameterMap() {
		return params;
	}

	@Override
	public Enumeration getParameterNames() {
		return new Vector(params.keySet()).elements();
	}

	@Override
	public String[] getParameterValues(String name) {
		Object v = params.get(name);
		if (v == null) {
			return null;
		} else if (v instanceof String[]) {
			return (String[]) v;
		} else if (v instanceof String) {
			return new String[] { (String) v };
		} else {
			return new String[] { v.toString() };
		}
	}

}

 

2. 在filter 中编写如下代码:

 

public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		HttpServletRequest httpRequest = (HttpServletRequest) request;
		Map<String, String[]> parametersMap = DataFormat
				.formatRequestParameters(httpRequest);
		ParameterRequestWrapper requestWrapper = new ParameterRequestWrapper(
				httpRequest, parametersMap);
		chain.doFilter(requestWrapper, response);
	}
分享到:
评论

相关推荐

    pushlet获取参数修改过的jar包

    在使用的过程中发现,如果要在pullEvent()方法中获取参数比较麻烦,查看源码发现nl.justobjects.pushlet.servlet.Pushlet中已经将request参数传进了Session(注意是nl.justobjects.pushlet.core.Session)。...

    Loadrunner报错日志

    具体修改注册表中有TcpTimedWaitDelay和MaxUserPort项,键值在[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\]。因为负载生成器的性能太好,发数据包特别快,服务器也响应特别快,从而...

    openapi_parser:使用 OpenAPI3 定义验证和强制参数

    # request operation combine path parameters and OpenAPI3's Operation Object request_operation = root . request_operation ( :post , '/validate' ) ret = request_operation . validate_request_body ( '...

    OAuth协议 介绍

    (2)对资源的操作包括获取、创建、修改和删除资源。 (3)通过操作资源的表现形式来操作资源。 (4)资源的表现形式可以是任何格式。如在Web应用中它可以是XML或者HTML,这取决于读者是机器还是人,是消费web服务...

    XWork绕过安全限制执行任意命令漏洞补丁

    为了防范篡改服务器端对象,XWork的ParametersInterceptor不允许参数名中出现“#”字符,但如果使用了Java的unicode字符串表示\u0023,攻击者就可以绕过保护,修改保护Java方式执行的值: #_memberAccess['...

    ZendFramework中文文档

    11.1. 输出变量的值 (Dumping Variables) 12. Zend_Exception 12.1. 使用“异常” 13. Zend_Feed 13.1. 介绍 13.2. 导入Feeds 13.2.1. 定制 feeds 13.2.1.1. 导入定制的数组 13.2.1.2. 导入定制的数据源 ...

    freemarker总结

    l 数据模型中的变量任何地方都可见,也包括不同的名字空间,下面是修改的库: &lt;p&gt;Copyright (C) ${date} ${user}. All rights reserved. ${user}@acme.com"&gt; l 假设数据模型中的user变量的值是Fred,...

    Django框架使用内置方法实现登录功能详解

    @sensitive_post_parameters() @csrf_protect @never_cache # 视图函数要渲染的模板位置(registration/login.html) def login(request, template_name='registration/login.html', redirect_field_name=REDIRECT_...

    windows实用dos命令大全

    4.使用说明:选用/F参数,将文件中存在盘上的碎片消除,并调整磁盘文件的安排,确保文件之间毫无空隙。从而加快读盘速度和节省磁盘空间。  (九)SYS——系统复制命令  1.功能:将当前驱动器上的DOS系统文件IO....

    拉姆尔请求参数编辑器

    拉姆尔请求参数编辑器&lt;raml&gt; 用于根据RAML数据呈现查询/ uri参数形式的元素。 该元素将与raml-request-... 元素触发uri-parameter-changed和query-parameter-changed定制事件,以通知有关参数列表中的更改。

    springmybatis

    MyBatis ...-- 返回list 的select 语句,注意 resultMap 的值是指向前面定义好的 --&gt; select * from user where userName like #{userName} 在 IUserOperation 接口中增加方法:public List...

    duckrails:一种开发工具,可快速轻松地模拟API端点(可用docker映像)

    更改模拟顺序 设置常规模拟属性 定义响应主体 设置响应头 设置一些高级配置(延迟,动态标题,内容类型和状态) 保存后,该路由将对应用程序可用,您可以使用端点: 支持的响应功能 您可以为模拟定义静态或...

    Visual Basic 6编程技术大全 中译本扫描版带书签 2/2

    14.2.3开放式客户端批处理修改500 14.2.4使用Command对象504 14.2.5使用DataEnvironment设计器506 14.3高级技术510 14.3.1 Recordset事件510 14.3.2异步操作514 14.3.3保存过程516 14.3.4分层结构Recordsets521 第15...

    Visual Basic 6编程技术大全 中译本扫描版带书签 1/2

    14.2.3开放式客户端批处理修改500 14.2.4使用Command对象504 14.2.5使用DataEnvironment设计器506 14.3高级技术510 14.3.1 Recordset事件510 14.3.2异步操作514 14.3.3保存过程516 14.3.4分层结构Recordsets521 第15...

    高清监控系统兼容所有网络摄像机

    Device is busing refuse update request.=设备忙,拒绝升级请求 Start update module failed.=设备启动升级模块失败 Send data error.=传输数据出现错误 Burning:=烧写进度: Update Success=升级完成 Update Failed...

    网上图书销售数据库+ASP

    '-------------------------------------------------------------------- ' Microsoft ADO ' ...' ' ' ' ADO constants include file for VBScript ' '------------------------------------------------------------...

    AT编程指令与常见问题

    Set SMS text mode parameters(设置短消息文本模式参数) AT+CSMS Select Message Service(选择短消息服务) 对短消息的控制共有三种模式: Block Mode 基于AT命令的PDU Mode 基于AT命令的Text Mode 使用Block模式...

    CISCO 技术大集合

    Configuring global parameters: 1.设置路由器名: Enter host name [Router]: 2.设置进入特权状态的密文(secret),此密文在设置以后不会以明文方式显示: The enable secret is a one-way cryptographic ...

    sqlmap (懂的入)

    Agent parameters to find dynamic ones. On these it automatically tests and detects the ones affected by SQL injection. Moreover each dynamic parameter is tested for numeric, single quoted string, ...

Global site tag (gtag.js) - Google Analytics