转发和重定向
转发:
request.getRequestDispatcher("/地址").forward(request, response);
转发的特点:
- 地址栏不发生变化,显示的是上一个页面的地址
- 请求次数:只有1次请求
- 根目录:http://localhost:8080/项目地址/,包含了项目的访问地址
- 请求域中数据不会丢失
servlet转发到jsp页面,可以直接用${}来用servlet里面setAttribute的内容
重定向:
重定向的特点:
- 地址栏:显示新的地址
- 请求次数:2次
- 根目录:http://localhost:8080/ 没有项目的名字
- 请求域中的数据会丢失,因为是2次请求
疑问
-
问:什么时候使用转发,什么时候使用重定向?
答:如果要保留请求域中的数据,使用转发,否则使用重定向。以后访问数据库,增删改使用重定向,查询使用转发。 -
问:转发或重定向后续的代码是否还会运行?
答:无论转发或重定向后续的代码都会执行