转发和重定向的区别

一、转发

在Servlet中实现页面的跳转有两种方式:转发和重定向。

1.转发的概念:

由服务器端进行的页面跳转。

2.原理

3.转发的特点:

  1. 地址栏不发生变化,显示的是上一个页面的地址
  2. 请求次数:只有1次请求
  3. 根目录:http://localhost:8080/项目地址/,包含了项目的访问地址
  4. 请求域中数据不会丢失

4.如何调用

request.getRequestDispatcher("/地址").forward(request, response);

5.案例

需求

​ 实现从OneServlet中转发到TwoServlet

步骤

  1. OneServlet向请求域中添加了一个键和值,转发给TwoServlet
  2. TwoServlet就从请求域中取出键和值,打印到浏览器上。

效果

在这里插入图片描述

二、重定向

1.概念

由浏览器端进行的页面跳转

2.原理

 3.重定向特点

  1. 地址栏:显示新的地址
  2. 请求次数:2次
  3. 根目录:http://localhost:8080/ 没有项目的名字
  4. 请求域中的数据会丢失,因为是2次请求

4.调用

response.sendRedirect("要跳转的地址")

5.重定向效果:

三、疑问

1.什么时候使用转发,什么时候使用重定向?

如果要保留请求域中的数据,使用转发,否则使用重定向。以后访问数据库,增删改使用重定向,查询使用转发。

2.两者区别:

原文地址:https://www.cnblogs.com/jingpeng77/p/13237775.html