在Tomcat 7中的Servlet之前读/写请求参数

时间:2011-12-29 00:17:14

标签: tomcat

在调用Servlet之前,Tomcat 7中有没有办法读取和修改GET和POST请求参数?

到目前为止,我已经找到了Valve和Filter概念,但在我的情况下,它们有几个问题:

1)似乎无法在不调用Servlet的情况下从Valve / Filter发送响应

2)请求Dumper Valve已从Tomcat 7中删除,因此如果我只想处理一个应用程序的请求参数,我需要使用Filter。

3)如何安全地更改请求参数?

有什么解决方案吗?代码示例将受到高度赞赏!

1 个答案:

答案 0 :(得分:1)

  

1)似乎无法在不调用Servlet的情况下从Valve / Filter发送响应

那不是真的。只需直接写入response.getWriter()getOutputStream()而不继续使用阀门/过滤器链(即调用chain.doFilter(req, res))。


  

2)请求Dumper Valve已从Tomcat 7中删除,因此如果我只想处理一个应用程序的请求参数,我需要使用Filter。

这确实被RequestDumperFilter所取代,它允许您在webapp级别而不是在服务器级别(即在您的webapp的web.xml中)注册它。另请参阅Tomcat documentation


我只是不确定以上内容与修改请求有何关联。但对于这种情况,您通常会使用HttpServletRequestWrapper