Jakarta ee 如何将项目URL更改为最后一个调用的servlet?

Jakarta ee 如何将项目URL更改为最后一个调用的servlet?,jakarta-ee,servlets,Jakarta Ee,Servlets,从servlet servlet.html,我可以调用另一个servlet servlet2.html,如下所示: dispatcher = getServletContext().getRequestDispatcher("/servlet2.html"); 但是,在brouzer中,URL来自第一个servlet: 我希望它是当前servlet的URL 这可能吗?您需要执行重定向:response.sendRedirect/servlet2.html TL;博士 Dispatcher只将请

从servlet servlet.html,我可以调用另一个servlet servlet2.html,如下所示:

dispatcher = getServletContext().getRequestDispatcher("/servlet2.html");
但是,在brouzer中,URL来自第一个servlet:

我希望它是当前servlet的URL


这可能吗?

您需要执行重定向:response.sendRedirect/servlet2.html

TL;博士

Dispatcher只将请求传递给另一个servlet,所以客户机看不到任何更改

当您执行重定向时,服务器将使用HTTP代码302和参数位置以及完整URL向servlet2.html发送响应。当web浏览器收到此类响应时,它将对Location参数中给定的URL执行另一个请求


您可以找到更多解释。

当我编写response.sendRedirect/servlet2.html时,它给出了一个错误,表示找不到localhost:8080/servlet2.html,这是正确的,因为该URL是错误的,但当我删除/like so response.sendRedirectservlet2.html时,它现在可以工作了。你能解释一下为什么它在没有键盘的情况下工作吗?/对不起,我错了指应用程序的根。若并没有它,您将引用相对于原始请求路径的相对路径。