重定向和转发
重定向
概念
重定向
servlet中重定向的意思也就是访问一个url后返回再访问另一个url地址
也就是说页面跳转是在浏览器中进行的
实现步骤
方法一
1.使用请求的setstatus方法设置好状态
2.使用请求的sethead设置location为重定向地址
方法二
1.直接使用sendRedirect传入重定向地址即可重定向
特点
-
地址栏:显示新的地址
-
请求次数:2次
-
根目录:http://localhost:8080/ 没有项目的名字
-
请求域中的数据会丢失,因为是2次请求
转发
概念
转移发放,servlet中指的是从一个servlet中转到另一个servlet,
也就是说是再服务器中进行的页面跳转
实现步骤
1.设置转发路径
2.使用请求来创建一个RequestDispatcher对象
3.使用RequestDispatcher对象调用forward方法进行转发
特点
-
地址栏不发生变化,显示的是上一个页面的地址
-
请求次数:只有1次请求
-
根目录:http://localhost:8080/项目地址/,包含了项目的访问地址
-
请求域中数据不会丢失
重定向与转发的区别
区别 | 转发forward() | 重定向sendRedirect() |
---|---|---|
根目录 | 包含项目访问地址 | 没有项目访问地址 |
地址栏 | 不会发生变化 | 会发生变化 |
哪里跳转 | 服务器端进行的跳转 | 浏览器端进行的跳转 |
请求域中数据 | 不会丢失 | 会丢失 |
包含
概念
请求包含是指多个Servlet共同处理一个请求。