页面重定向

发布时间 2023-12-13 00:19:23作者: 牟兆迪
在Servlet,doPost中,`sendRedirect(String location)`方法用于将客户端重定向到指定的位置。参数location是一个URL,表示要重定向到的位置。这个方法会设置响应的状态码为302,表示临时重定向,然后在响应的Location头中设置重定向的URL。

例如,下面的代码将客户端重定向到名为"success.html"的页面:

response.sendRedirect("success.html");

在这个示例中,如果sendRedirect()方法被调用,客户端浏览器会收到一个状态码为302的HTTP响应,并在Location头中包含一个URL,指向"success.html"。浏览器会自动处理这个重定向,将页面导航到新的URL。

需要注意的是,sendRedirect()方法会结束当前的请求-响应周期,因此在调用这个方法之后,不应该再向response对象写入任何数据。
在Servlet.doGet中,`getRequestDispatcher(String path)`方法用于获取一个RequestDispatcher对象,该对象可以用于将请求转发到另一个资源(例如,另一个Servlet、JSP页面或静态文件)。

参数`path`是要转发到的资源的路径。路径可以是相对路径,也可以是以"/"开头的绝对路径。如果路径是相对路径,它是相对于当前请求的URL。如果路径以"/"开头,则它是相对于Web应用程序的根目录。

`forward(HttpServletRequest request, HttpServletResponse response)`方法用于将请求和响应对象转发到指定的资源。这个方法会结束当前的请求-响应周期,之后的代码不会被执行。

例如,下面的代码将请求转发到名为"records.jsp"的页面:

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

在这个示例中,请求和响应对象将被转发到"records.jsp"页面,页面会接收到原始的请求和响应对象,因此它可以访问请求中的数据,以及将数据发送到客户端。