1. 什么是重定向呢?
重定向就是客户端给服务端一个请求,服务端找到客户端指定的AServlet,由于该AServlet并不能处理该请求,所以,给客户端相应一个信息头:“302,Location=Bservlet”,让客户端自动的再次发出请求,不过此时的请求地址却是BServlet。所以,重定向后的地址栏是,http://localhost:8080/BServlet。
如下图:
注意点:
重定向一共发生了两次请求、两次响应。
地址栏的地址是第二次请求的地址。
使用重定向的时候,不要使用输出流进行输出数据,不然会发生错误!
具体实现:
第一种:
response.setHeader("Location","/项目名/重定向的Servlet路径");
response.setStatus(302);
如:
response.setHeader("Location","/Test/BServlet"); //其中那个重定向的Servlet路径是指在xml配置的路径。
response.setStatus(302);//设置状态码302
第二种:(是把上面第一种方法进行封装得到的。它比上面第一种方法更加快捷。)
response.sendRedirect("/Test/BServlet");//它会自动给信息头设置为:Location:"/Test/BServlet"。
//状态码为302