1. 重定向:浏览器向服务器发送请求,服务器给它响应302状态码,并返回Location值,浏览器得到location值后,向ocation值重新发送请求。
2. 服务器端要做两件事:
1)状态码 要是 302
2)响应头 location 要指定。响应头name是不区分大小写,value获取的值。一个name可以对应多个value。
package com.it.servlet.response;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Demo1Servlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置状态码为302
response.setStatus(302);
//设置响应头location的值
//response.setHeader("location", "http://www.baidu.com");
//response.setHeader("location", "index.jsp");
response.setHeader("location", "/day8_1/index.jsp");
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
重定向时,既可以访问站内资源,也可以访问站外资源。
在真实开发中完成重定向只要response.sendRedirect(String location)方法。
package com.it.servlet.response;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Demo1Servlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//在真实开发中要想完成重定向只需要sendRedirect
response.sendRedirect("/day8_1/index.jsp");
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}