转发和重定向的一点小结
转发和重定向
转发(forward):
request.getRequestDispatcher("/跳转的地址").forward(request,response);
重定向(redeirect):
response.sendRedirect("要跳转的地址");
他们的特点:
转发:
1.地址栏不会发生变化
2.请求次数:1次
3.根目录:http://localhost:8080/项目地址/,包含了项目的访问地址
4.请求域中的数据不会丢失
重定向:
1.地址栏:显示新的地址
2.请求次数:2次
3.根目录:http://localost:8080/ 没有项目地址
4.请求域中的数据会丢失,因为是两次请求
他们的过程比较:
1.转发:
1. 浏览器向Servlet1发出访问请求;
2. Servlet1调用forward()方法,在服务器端将请求转发给Servlet2;
3. 最终由Servlet2做出响应。
2.重定向
1. 浏览器向Servlet1发出访问请求;
2. Servlet1调用sendRedirect()方法,将浏览器重定向到Servlet2;
3. 浏览器向servlet2发出请求;
4. 最终由Servlet2做出响应。
什么时候用转发,什么时候用重定向?
要
保留请求域中的数据
,使用转发
访问数据库,
增删改用重定向(redirect)
,查询用转发(forward)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/111693.html