gpt4 book ai didi

http - 为什么 request.getRequestDispatcher 不起作用?

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:11:26 25 4
gpt4 key购买 nike

我有一个主 JSP 和进程 JSP。在进程 jsp 中,我正在提交响应并将响应转发到成功页面。

 request.getRequestDispatcher("success.jsp").forward(request, response);

我能够在服务器端提交响应。 Process jsp 也能够转发成功JSP 的响应。但是 url 显示例如:http://process.jsp?param1=value1&parm2=value2

我希望我的输出显示为 url http://success.jsp 中的干净内容

请注意:这对 Java Servlet 非常有效,我刚刚试过了。我只使用 JSP 而不是 Java servelet,因为这是我们的项目要求。

有人可以建议我解决这个问题吗?

最佳答案

RequestDispatcher#forward()应该将请求和响应对象都转发到服务器内的另一个资源。当您执行 forward() 时,没有响应返回给客户端,这就是客户端显示相同初始 URL 的原因。

要让客户端显示另一个 URL,您可以使用 HttpServletResponse#sendRedirect() .这确实会返回到客户端,使其对您想要的 URL 发出新请求。所以将其更改为:

response.sendRedirect("success.jsp").

记住在执行此操作之前不要提交响应,否则您将得到一个 IllegalStateException

至于为什么你说在 Servlet 上工作,我不确定为什么,但不是 forward() 应该如何工作,JSP 最终被编译为 Servlets他们的行为应该相同。

关于http - 为什么 request.getRequestDispatcher 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12721759/

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