-
请求转发和重定向是做什么用的
是我们在后台Servlet中,由一个Servlet跳转到另一个Servlet/jsp所使用的技术 -
前端发送请求到后台
(1)浏览器地址栏输入链接
(2)a标签 跳转
(3)form表单
<form action="url地址" method="get/post">
<input type="submit" value="跳转">
</from>
get和post区别
get请求的URL是直接在地址栏中显示,安全性低,传送数据量小
post请求的URL是封装在HTML header内,不被用户看到,安全性高,传送数据量大。
url:统一资源定位符(网址)
协议://ip地址:端口号/工程名/资源路径
- 如何使用
请求转发
req.getRequestDispatcher(servlet或者jsp的请求路径).forward(req,resp);
URL重定位
resp.sendRedirect("/day02_01/views/student.jsp");
发现一个问题: 我们的代码 使用请求转发 跳转到jsp之后 是有数据的 但是重定向之后 没有数据
- 请求转发和URL重定位区别
(1)请求转发是一次请求 重定向是两次请求
(2)请求转发地址栏不会发生改变 重定向会发生改变
(3)请求转发可以共享请求参数 重定向不能获取共享参数
(4)请求转发不能跨域(不能访问其他服务器链接)
req.getRequestDispatcher("http://www.baidu.com").forward(req,resp);是不行的
重定向可以跨域
resp.sendRedirect("http://www.baidu.com"); 这是可以的
- 什么时候用请求转发,什么时候用URL重定向
如果需要共享参数 :请求转发
如果需要地址栏改变:重定向
如果需要跳转WEB-INF:请求转发
如果跳转外部链接:重定向
请求转发URL重定向