从servlet" servlet.html",我可以调用另一个servlet" servlet2.html"像这样:
dispatcher = getServletContext().getRequestDispatcher("/servlet2.html");
但是,在brouzer中,URL来自第一个servlet:
http://localhost:8080/project/servlet.html
我希望它是当前servlet的URL。
http://localhost:8080/project/servlet2.html
这可能吗?
答案 0 :(得分:0)
您想要的是执行重定向:response.sendRedirect("/servlet2.html")
。
<强> TL; DR; 强>
Dispatcher只会将请求传递给另一个servlet,因此客户端看不到任何更改。
当您执行redirect
时,服务器正在发送带有HTTP代码302和参数Location
的响应,其中包含servlet2.html
的完整网址。当Web浏览器收到此类响应时,它将对Location
参数中给出的URL执行另一个请求。
Here您可以找到更多解释。