正如标题所说:当从Servlet转发到JSP页面而不重定向从而失去Servlet的功能时,如何在URL中显示.jsp扩展名?
如果我使用以下代码从Servlet转发到JSP页面,我的URL中仍然有Servlet:
request.getRequestDispatcher("index.jsp").forward(request, response);
答案 0 :(得分:2)
你没有。
浏览器显示它认为从中获取数据的URL。除非你告诉它通过重定向得到一个不同的URL,否则它无法知道服务器在幕后做了什么。也不应该。
从应用程序设计的角度来看,您也不应该关心。使用唯一URL的唯一原因是用户可以设置书签。如果JSP页面需要来自servlet的数据,那么为用户提供不同的URL是没有意义的。
如果你没有设置为浏览器提供“.jsp”URL,那么让servlet在会话中存储数据。这是丑陋的,毫无意义的,并且受到并发访问问题的影响,但它确实有效。
答案 1 :(得分:-1)
您可以重定向到JSP而不是转发到它:
response.sendRedirect("index.jsp");