我使用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
请帮助我,request.getParameter("test")
如何HttpServletRequestWrapper
与filter1
进行对比?
谢谢。
答案 0 :(得分:0)
看起来Filter RequestWrapper
覆盖了.getParameter()
方法而未委托原始请求。