码迷,mamicode.com
首页 > 其他好文 > 详细

forward 与 redirect 的区别

时间:2020-04-09 21:31:15      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:请求重定向   redirect   getattr   不可   oca   区别   nbsp   开发   共享数据   

一.请求转发(forward)

又叫做 直接转发方式,客户端和浏览器都 只发出一次请求、Servlet、HTML、JSP或其他信息资源,由 第二个信息资源响应该请求,在请求对象request,保存的对象对于每个信息资源是共享的。

语法:

request.getRequestDispatcher(path).forward(request, response);

特点:

  1.地址栏中的地址【不会】改变,通常看作是服务端的跳转

  2.只有一个请求

  3.资源是共享的

//也就是说两个Servlet中可以共享请求的资源,可以通过这段代码设置共享数据资源
request.setAttribute(String var1, Object var2);
//并通过这段代码获取传递的资源
request.getAttribute(String var1);

  4.【可以】访问WEB-INF中的资源

  WEB-INF文件夹是Java Web 应用的  默认安全目录, 即客户端无法直接访问,只有服务端可以访问的目录。如果想在页面中 直接访问  其中的文件,必须通过web.xml对访问的文件进行相应映射才能访问。

注:在实际的开发中,可以把不希望用户直接访问到的网页放在文件夹中通过  相应的映射进行访问

  5.请求转发【不能】跨域访问

二.URL重定向(redirect)

  又叫间接转发方式 ,实际是两次HTTP请求,服务器端在响应第一次请求的时候,让浏览器在向另外一个URL发出请求,从而达到转发的目的。

 语法:

response.sendRedirect(String location);

特点:

  1.地址栏中的地址【会】发生改变,通常看作是客户端跳转

  2.有两个请求

  3.在两个Servlet中不可以共享请求中的数据

  4.最终的响应都重定向后的 Servlet 决定,与之前的Servlet没有关系

  5.【不可以】访问WEB-INF中的资源

  6.请求重定向【能】跨域访问

总结:URL 重定向相当于是将重定向的资源路径,重新复制到浏览器地址栏中按下回车一样, 重新发送一次新的请求。

forward 与 redirect 的区别

标签:请求重定向   redirect   getattr   不可   oca   区别   nbsp   开发   共享数据   

原文地址:https://www.cnblogs.com/caoxingchun/p/12669633.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!