0

正如标题所说:从 Servlet 转发到 JSP 页面时,如何在 URL 中显示 .jsp 扩展名而不重定向,从而失去 Servlet 的功能

如果我使用以下代码从 Servlet 转发到 JSP 页面,我的 URL 中仍然有 Servlet:

request.getRequestDispatcher("index.jsp").forward(request, response);
4

2 回答 2

2

你没有。

浏览器会显示它认为正在从中获取数据的 URL。除非你告诉它它通过重定向获得不同的 URL,否则它无法知道服务器在幕后做什么。也不应该。

从应用程序设计的角度来看,您也不应该关心。使用唯一 URL 的唯一原因是用户可以设置书签。如果 JSP 页面需要来自 servlet 的数据,那么为用户提供不同的 URL 是没有意义的。

如果您对为浏览器提供“.jsp”URL 不以为然,那么让 servlet 将数据存储在会话中。这是丑陋的,毫无意义的,并且受到并发访问问题的影响,但它确实有效。

于 2012-09-12T14:03:09.107 回答
-1

您可以重定向到 JSP 而不是转发到它:

response.sendRedirect("index.jsp");
于 2012-09-12T13:57:02.040 回答