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);
}
分享到:
相关推荐
在使用的过程中发现,如果要在pullEvent()方法中获取参数比较麻烦,查看源码发现nl.justobjects.pushlet.servlet.Pushlet中已经将request参数传进了Session(注意是nl.justobjects.pushlet.core.Session)。...
具体修改注册表中有TcpTimedWaitDelay和MaxUserPort项,键值在[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\]。因为负载生成器的性能太好,发数据包特别快,服务器也响应特别快,从而...
# request operation combine path parameters and OpenAPI3's Operation Object request_operation = root . request_operation ( :post , '/validate' ) ret = request_operation . validate_request_body ( '...
(2)对资源的操作包括获取、创建、修改和删除资源。 (3)通过操作资源的表现形式来操作资源。 (4)资源的表现形式可以是任何格式。如在Web应用中它可以是XML或者HTML,这取决于读者是机器还是人,是消费web服务...
为了防范篡改服务器端对象,XWork的ParametersInterceptor不允许参数名中出现“#”字符,但如果使用了Java的unicode字符串表示\u0023,攻击者就可以绕过保护,修改保护Java方式执行的值: #_memberAccess['...
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. 导入定制的数据源 ...
l 数据模型中的变量任何地方都可见,也包括不同的名字空间,下面是修改的库: <p>Copyright (C) ${date} ${user}. All rights reserved. ${user}@acme.com"> l 假设数据模型中的user变量的值是Fred,...
@sensitive_post_parameters() @csrf_protect @never_cache # 视图函数要渲染的模板位置(registration/login.html) def login(request, template_name='registration/login.html', redirect_field_name=REDIRECT_...
4.使用说明:选用/F参数,将文件中存在盘上的碎片消除,并调整磁盘文件的安排,确保文件之间毫无空隙。从而加快读盘速度和节省磁盘空间。 (九)SYS——系统复制命令 1.功能:将当前驱动器上的DOS系统文件IO....
拉姆尔请求参数编辑器<raml> 用于根据RAML数据呈现查询/ uri参数形式的元素。 该元素将与raml-request-... 元素触发uri-parameter-changed和query-parameter-changed定制事件,以通知有关参数列表中的更改。
MyBatis ...-- 返回list 的select 语句,注意 resultMap 的值是指向前面定义好的 --> select * from user where userName like #{userName} 在 IUserOperation 接口中增加方法:public List...
更改模拟顺序 设置常规模拟属性 定义响应主体 设置响应头 设置一些高级配置(延迟,动态标题,内容类型和状态) 保存后,该路由将对应用程序可用,您可以使用端点: 支持的响应功能 您可以为模拟定义静态或...
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...
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...
'-------------------------------------------------------------------- ' Microsoft ADO ' ...' ' ' ' ADO constants include file for VBScript ' '------------------------------------------------------------...
Set SMS text mode parameters(设置短消息文本模式参数) AT+CSMS Select Message Service(选择短消息服务) 对短消息的控制共有三种模式: Block Mode 基于AT命令的PDU Mode 基于AT命令的Text Mode 使用Block模式...
Configuring global parameters: 1.设置路由器名: Enter host name [Router]: 2.设置进入特权状态的密文(secret),此密文在设置以后不会以明文方式显示: The enable secret is a one-way cryptographic ...
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, ...