我想从一页转发到另一页,但同样我想更改 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/