我使用Tomcat7。我的项目结构是:
-
AS1.jsp
-
AS2.jsp
web.xml
的内容是:
<filter-mapping>
<filter-name>filter1</filter-name>
<url-pattern>/as1.jsp</url-pattern>
</filter-mapping>
filter1
在 HttpServletRequestWrapper 中使用:
...
RequestWrapper requestWrapper = new RequestWrapper(req);
requestWrapper.setParameter("params", new String[]{Item.getParams()});
chain.doFilter(requestWrapper, response);
......
as1.jsp
的内容是:
hi <br/>
<jsp:include page="as2.jsp">
<jsp:param name="test" value="true" />
</jsp:include>
as2.jsp
的内容是:
as2 runed
<br/>
test:<%= request.getParameter("test") %>
当我部署项目时,我得到这个结果:
hi
as2 runed
test:null
当删除HttpServletRequestWrapper
filter1
时,我得到正确的结果:
hi
as2 runed
test:true
请帮助我,如何在filter1
与HttpServletRequestWrapper
request.getParameter("test")
?谢谢。
看起来Filter RequestWrapper
正在覆盖.getParameter()
方法而不是委托给原始请求。