请求重定向
1、请求重定向介绍流程
2、重定向特点
a)浏览器地址栏会发生变化
b)两次请求
c)不共享request数据
d)不能跳转到WEB-INF目录下
e)可以访问工程外部资源**(跟请求转发有区别 )
3、请求重定向实现过程
a)通过设置状态码和响应头
// 设置响应状态码302 重定向
resp.setStatus(302);
// 设置响应头,说明新的地址在哪里
resp.setHeader("Location","http://localhost:8080/Java_Web01_war_exploded/responsechongdingxinag02");
b)固定了状态码为302(推荐使用)
resp.sendRedirect("http://localhost:8080/Java_Web01_war_exploded/responsechongdingxinag02");
相关代码:
//Responsechongdingxinag01.java
package servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class Responsechongdingxinag01 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("到此一游,即将转向新网页!");
resp.setContentType("text/html;charset=UTF-8");
resp.getWriter().write("到此一游,即将转向新网页!");
// 设置响应状态码302 重定向
resp.setStatus(302);
// 设置响应头,说明新的地址在哪里
resp.setHeader("Location","http://localhost:8080/Java_Web01_war_exploded/responsechongdingxinag02");
// resp.sendRedirect("http://localhost:8080/Java_Web01_war_exploded/responsechongdingxinag02");
}
}
//Responsechongdingxinag02.java
package servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class Responsechongdingxinag02 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=UTF-8");
System.out.println("重定向网页成功!");
resp.getWriter().write("重定向网页成功!");
}
}