~本特利~ |
HttpServletResponse应用
解决中文输出乱码问题【任务1】
实现网页定时刷新并跳转【任务2】
实现请求重定向【讲解+任务3】
在某些情况下,针对客户端的请求,一个Servlet类可能无法完成全部工作。这时,可以使用请求重定向来完成。所谓请求重定向,指的是Web服务器接收到客户端的请求后,可能由于某些条件限制,不能访问当前请求URL所指向的Web资源,而是指定了一个新的资源路径,让客户端重新发送请求。
为了实现请求重定向,在HttpServletResponse接口中,定义了一个sendRedirect()方法,该方法用于生成302响应码和Location响应头,从而通知客户端重新访问Location响应头中指定的URL,sendRedirect()方法的完整语法如下所示:
需要注意的是,参数location可以使用相对URL,Web服务器会自动将相对URL翻译成绝对URL,再生成Location头字段。
为了使读者更好地了解sendRedirect()方法如何实现请求重定向,接下来,通过一个图来描述sendRedirect()方法的工作原理,如图所示。
在图中,当客户端访问Servlet1时 ,由于在Servlet1中调用了sendRedirect()方法将请求重定向到Servlet2,因此,Web服务器在收到Servlet1的响应消息后,立刻向Servlet2发送请求。Servlet2对请求处理完毕后,再将响应消息回送给客户端。
了解了sendRedirect()方法的工作原理后,接下来,通过一个用户登录的案例,分步骤讲解sendRedirect()方法的使用。
实现请求重定向
实现请求重定向的代码