这篇文章主要介绍Servlet当中页面重定向应该如何正确地写地址的问题,首先来看一下Servlet的配置文件web.xml

<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>servlet.TestServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/servlet/TestServlet</url-pattern>
</servlet-mapping>


在这里,url-pattern路径必须以“/”开头,因为斜杠表示根目录。

在Servlet类中,如果需要重定向到某一页面(这里举例是更目录下的test.jsp),如下方式是错误的:

response.sendRedirect("test.jsp");


正确的写法如下:

response.sendRedirect(request.getContextPath() + "/test.jsp");

如果是服务器内部的跳转问题,那么如下的写法是错误的:

request.getRequestDispatcher("test.jsp").forward(request, response);

正确的写法有以下两种:

request.getRequestDispatcher("/test.jsp").forward(request, response);
request.getRequestDispatcher("../test.jsp").forward(request, response);