javaWeb中重定向和转发的区别和特点
一、 转发特点
-
浏览器地址栏不会发生变化
-
只能访问本地服务器内部资源
-
可以共享域对象
-
浏览器只会发出一次请求
代码演示public class Demo3 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("Demo33333333请求被访问....."); /*数据转发之前进行数据共享*/ request.setAttribute("gxsj","hello"); /*数据转发*/ request.getRequestDispatcher("/demo5").forward(request,response); } }
二、重定向特点
-
浏览器地址栏发生变化
-
既可以访问本地服务器的资源又可以访问外网资源
-
不能共享域对象
-
浏览器会发出两次请求
代码演示public class Demo4 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("test4....");//重定向 //方法一 response.setStatus(302); response.setHeader("location","/demo5"); //方法二 response.sendRedirect("/demo5"); } }