更新时间:2023-02-14 来源:黑马程序员 浏览量:
在某些情况下,针对客户端的情况,一个Servlet类可能无法完成全部工作。这时,可以使用请求重定向完成这一工作。请求重定向指Web服务器接收到客户端的请求后,可能由于某些条件的限制,不能访问当前请求URL所指向的Web资源,而是指定了一个新的资源路径,让客户端重新发送请求。
为了实现请求重定向,HttpServletResponse接口定义了一个sendRedirect()方法,该方法用于生成302响应码和location响应头,从而通知客户端重新访问Location响应头中指定的URL,sendRedirect()方法的完整语法如下所示:
public void sendRedirect(java.lang.String location)throws java.io.IOException
在上述方法代码中,参数location可以使用相对URL,Web服务器会自动将相对URL翻译成绝对URL,再生成Location头字段。
sendRedirect()方法的工作原理如图10-13所示。
图10-13 sendRedirect()方法的工作原理
在图10-13中,当客户端访问Servlet1时,由于在Servlet1中调用了sendRedirect()方法将请求重定向到Servlet2,因此,浏览器收到Servlet1的响应消息后,立刻向Servlet2发送请求,Servlet2对请求处理完毕后,再将响应消息回送给客户端浏览器并显示。