gpt4 book ai didi

java - 使用 HttpServletRequestWrapper 时无法发送 jsp 参数?

转载 作者:行者123 更新时间:2023-11-28 22:32:18 25 4
gpt4 key购买 nike

我用的是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

当删除 filter1 中的 HttpServletRequestWrapper 时,我得到正确的结果:

hi  
as2 runed
test:true

请帮助我,如何在 filter1 中使用 HttpServletRequestWrapper 获取 request.getParameter("test") ?谢谢。

最佳答案

看起来 Filter RequestWrapper 覆盖了 .getParameter() 方法并且没有委托(delegate)给原始请求。

关于java - 使用 HttpServletRequestWrapper 时无法发送 jsp 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10070811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com