gpt4 book ai didi

java - JSP getQueryString() 和 getParameterMap() 返回不同的参数

转载 作者:行者123 更新时间:2023-11-30 11:06:28 27 4
gpt4 key购买 nike

我有一个 JSP,可以从像这样的 url 访问

http://localhost/products.jsp

(因此没有查询字符串),而该页面包含其他 JSP:

<jsp:include page="product.jsp">
<jsp:param value="1" name="recordNumber"/>
</jsp:include>

product.jsp 中,调用了一个接收 request 对象的 Java 方法:

NavigationUtils.getProductUrl(request)

该方法逻辑由请求参数驱动。
我得到的是:

  1. request.getQueryString() 返回 null
  2. request.getParameterMap() 有一个条目 "recordNumber"

这是标准行为还是我做错了什么?

我已经查阅了有关 HttpServletRequest.getQueryString() 的文档和 ServletRequest.getParameterMap() ,但我找不到所描述的行为,也找不到任何对可能产生不同结果的容器相关处理的引用。

主要问题是我可能会使用 getParameterMap() 而不是 getQueryString() 来破坏现有代码,因此对此的任何建议都会有所帮助。

最佳答案

查询字符串只不过是一种对请求中的参数进行编码的机制,但它并不是唯一的一种。通常,在浏览器向服务器发送 GET 请求时使用。另一种机制是在表单编码的 POST 请求的主体中。

在您的情况下,JSP 想要包含另一个 JSP 的结果,这一切都发生在服务器端。 servlet 容器可以将参数从一个 JSP 传递到另一个 JSP,而不必在查询字符串上对参数进行编码(这会不必要地低效)。

使用getParametergetParameterMap 是更通用的解决方案。使用 getQueryString 只有在特定情况下才真正有意义,因为这显然是您需要看起来很艺术的东西。

关于java - JSP getQueryString() 和 getParameterMap() 返回不同的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29299314/

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