1、浏览器访问本地资源A,本地资源A返回重定向让浏览器去访问本地资源B。
2、浏览器自动的去访问本地资源B,本地资源B返回重定向让浏览器访问外部资源百度。
3、百度自动的去访问百度。
1、本地资源1:
ResponseDemo01.java
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("/ResponseDemo01")
public class ResponseDemo01 extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doGet(req,resp);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("Demo01...");
//方式一、
//设置状态为重定向
resp.setStatus(302);
//设置响应头
resp.setHeader("Location","/loginServlet/ResponseDemo02");
// resp.sendRedirect("ResponseDemo02");
}
}
ResponseDemo02.java
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("/ResponseDemo02")
public class ResponseDemo02 extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//方式一
// resp.setStatus(302);
// resp.setHeader("Location","http://www.baidu.com");
//方式二:因为返回状态和响应头都是不变的,因此Response对象有一个方法可以简化操作。
System.out.println("demo02...1...");
resp.sendRedirect("http://www.baidu.com");
//
System.out.println("demo02...2...");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doGet(req,resp);
}
}
测试:
在浏览器中输入:localhost/loginServlet/ResponseDemo01 按确定键就会切换到百度首页。
控制台输出:
Demo01...
demo02...1...
demo02...2...