在调用Servlet之前,Tomcat 7中有没有办法读取和修改GET和POST请求参数?
到目前为止,我已经找到了Valve和Filter概念,但在我的情况下,它们有几个问题:
1)似乎无法在不调用Servlet的情况下从Valve / Filter发送响应
2)请求Dumper Valve已从Tomcat 7中删除,因此如果我只想处理一个应用程序的请求参数,我需要使用Filter。
3)如何安全地更改请求参数?
有什么解决方案吗?代码示例将受到高度赞赏!
答案 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
。