重定向就是在访问一个Servlet时,没有得到资源,只能去找另外一个Servlet去获取资源。状态码为302。
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(name = "MyServlet") public class MyServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setStatus(302); response.setHeader("Location", "https://start.firefoxchina.cn/"); } }
在服务器执行该程序的时候,状态码被设置为302(重定向),并且告诉了服务器的访问地址。
在通过Http协议访问MyServlet时,http地址由http://localhost:8080/MyServlet_war_exploded/abc自动变为火狐的网址。因为状态码已经告诉服务器http://localhost:8080/MyServlet_war_exploded/abc这条路走不通了,并且告诉它了一条新路。