1

我使用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  

当删除HttpServletRequestWrapperfilter1我得到正确的结果:

hi  
as2 runed  
test:true  

请帮助我,如何request.getParameter("test")进入?谢谢你。HttpServletRequestWrapperfilter1

4

1 回答 1

0

看起来Filter RequestWrapper 是覆盖.getParameter()方法而不是委托给原始请求。

于 2012-04-09T08:46:19.103 回答