java - 如何在用户浏览器中更改 url 而无需在 servlet 中进行客户端重定向

标签 java url servlets redirect forward

我想从一页转发到另一页,但同样我想更改 url。假设用户在这里 http://mywebsite/register当他完成他的注册过程时,我想在他的地址栏中输入这个 http://mywebsite/home

是否可以不使用 sendRedirect ,我的意思是仅服务器端转发?或解决此问题的任何其他方法?

最佳答案

您可以让 HTML 表单直接提交到该 URL。

<form action="http://mywebsite/home">

但这没有意义。在验证失败的情况下重新显示带有验证消息的相同表单时,您也会遇到问题。如果您打算保留原始 URL,则需要重定向回原始页面,并且需要摆弄在 session 范围而不是请求范围中存储消息,因为重定向基本上会创建一个全新的请求。每当最终用户在提交表单后按 F5 时,如果没有重定向,您也会遇到“双重提交”问题。

只需让 servlet 将成功的 POST 请求重定向到所需的 URL。这是规范的方法。更重要的是,这是一个推荐的“设计模式”:POST-Redirect-GET pattern .

关于java - 如何在用户浏览器中更改 url 而无需在 servlet 中进行客户端重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8931300/

相关文章:

java - Android/Java 重复按钮点击

Java SocketChannel : Why wrap-flip-write doesn't work but wrap-write does?

javascript - 在没有数据库的情况下实现聊天应用程序

java - 'this' 引用是否存储在 Java 的调用堆栈中?

java - 从 Java 服务器发送数据到 ESP8266

java - 如何在确认内容类型后将 URL 保存到文件?

html - 对于所有客户端,http ://example. com//的处理方式是否与 http ://example. com/不同?

java - 尝试按照 URL 然后下载图像

java - 将 ImageWriter 输出设置为 ObjectOutputStream

java - 如何将 Html 文件映射到 web.xml?