package cn.paotui.www;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/login")
public class login extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("www.365paotui.cn");
response.setStatus(302);
response.setHeader("Location","https://www.baidu.com");
response.sendRedirect("https://www.baidu.com");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("同城一小时速递");
}
}
现象:当访问本地login时,发现地址栏变成https://www.baidu.com,这就是 重定向了。
概念:重定向是服务器通知浏览器去访问另一个地址,即再发出另一个请求。
实现方式1:
- 设置响应码response.setStatus(302);;
- 设置重定向的位置response.setHeader(“Location”, “/项目名/bServlet”);。
实现方式2:
- response.sendRedirect("/项目名/bServlet");
关于重定向的总结
- 重定向是两次请求
- 重定向的URL可以是其他应用,不局限于当前应用,例如重定向到百度
- 重定向的响应头为302,并且必须要有Location响应头
- 重定向就不要再使用response.getWriter()或response.getOutputStream()输出数据