`
810364804
  • 浏览: 788098 次
文章分类
社区版块
存档分类
最新评论

request的重定向和转发

 
阅读更多
forward方式:request.getRequestDispatcher("/somePage.jsp").forward(request, response);    
redirect方式:response.sendRedirect("/somePage.jsp");
forward是服务器内部重定向,程序收到请求后重新定向到另一个程序,客户机并不知道;redirect则是服务器收到请求后发送一个状态头给客户,客户将再请求一次,这里多了两次网络通信的来往。当然forward也有缺点,就是forward的页面的路径如果是相对路径就会有些问题了。    forward 会将 request state , bean 等等信息带往下一个 jsp
redirect 是送到 client 端后再一次 request , 所以资料不被保留.
使用 forward 你就可以用 getAttribute() 来取的前一个 jsp 所放入的 bean 等等资料

在网上看到一些帖子,总结了一些区别,可以从以下几个方面来看:

1.从地址栏显示来说

forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.

redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.所以redirect等于客户端向服务器端发出两次request,同时也接受两次response。

2.从数据共享来说

forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.

redirect不仅可以重定向到当前应用程序的其他资源,还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源.

forward,方法只能在同一个Web应用程序内的资源之间转发请求.forward 是服务器内部的一种操作.
redirect 是服务器通知客户端,让客户端重新发起请求.

所以,你可以说 redirect 是一种间接的请求, 但是你不能说"一个请求是属于forward还是redirect "


3.从运用地方来说

forward:一般用于用户登陆的时候,根据角色转发到相应的模块.

redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.

4.从效率来说
forward:高.
redirect:低.
原文地址:http://zhidao.baidu.com/question/360515312.html&__bd_tkn__=7ff943203c3d863e5b23a365b8f72fa1891b9fad8078338d51fed8133ea5c69d362ad36bb4bcda3b39bb3949f6bbe47087ac3af56e60b1f4e7eb60157b5afd379c62aaf95c0f03de0125270fa43bc9063b039a770d2aca8bdb48337d755b402ab817783648c7a4aaeb0689accbdc8c0bcb3526f64daf
分享到:
评论

相关推荐

    转发和重定向的区别 forward和redirect的区别

    转发和重定向的区别 forward和redirect的区别 request.getRequestDispatcher()..forward(request,response);和 response.sendRedirect();的区别详解

    request的转发与response的重定向有什么区别

    request的转发与response的重定向有什么区别 1.从地址栏显示来说 2.从数据共享来说 3.从运用地方来说 4.从效率来说

    请求转发和重定向(request和response).emmx

    使用mindmaster打开

    JavaWeb中的 请求转发 和 重定向.docx

    请求转发:在最终的 servlet (TestServlet) 中,request和中转的那个servlet(ForwardServlet)中的request对象是同一个对象 重定向:在最终的 servlet (TestServlet) 中,request和中转的那个servlet(SendServlet...

    response_sendRedirect和request_getRequestDispatcher()_forward的区别.

    运用forward方法只能重定向到同一个Web应用程序中的一个资源。而sendRedirect方法可以让你重定向到任何URL。 表单form的action="/uu";sendRedirect("/uu");表示相对于服务器根路径。如http://localhost:8080/Test...

    网站技巧之转发与重定向的区别

    怎么选择是重定向还是转发呢?通常情况下转发更快,而且能保持request内的对象,所以他是第一选择。

    JSP和Servlet面试题

    7.Jsp的重定向和转发的流程有什么区别 重定向是客户端行为,转发是服务器端行为 重定向时服务器产生两次请求,转发产生一次请求,重定向时可以转发到项目以外的任何网址,转发只能在当前项目里转发 重定向会导致...

    jsp servlet

    //转发和重定向是都是一瞬间就跳转到了要转发的页面 中间的内容基本没有时间显示 解决这个问题的方法如下: 包含转发 request.getRequestDispatcher("login.html").include(request.response); //就是将该页面所包含...

    idea做一个带有验证码的登录界面,包函forword转发和sendRedirect重定向方法

    实现原理: 1.在网页上访问URL(HTTP:localhost:8080/Login),...3.如果登录验证成功,则sendRedirect重定向到(HTTP:localhost:8080/Main),服务器获取请求头Get,forword转发到(HTTP:localhost:8080/Main.jsp),在浏

    javaweb知识总结

    javaweb知识总结,servlet,request,response总结,重定向转发总结

    用户登录Demo(JSP+Servlet)

    <> 失败:保存错误信息到request域,转发到login.jsp(login.jsp显示request域中的错误信息) <> 成功:保存用户信息到session域中,重定向到main.jsp页面,显示session域中的用户信息 > main.jsp:从session域获取...

    SpringMVC面试专题.pdf

    16、SpringMVC 怎么样设定重定向和转发的? 17、SpringMvc 用什么对象从后台向前台传递数据的? 18、SpringMvc 中有个类把视图和数据都合并的一起的,叫什么? 19、怎么样把 ModelMap 里面的数据放入 Session 里面? ...

    getAttribute和getParameter区别.

    request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组件之间共享。即request.getAttribute()方法返回request范围内存在的对象,而request.getParameter()方法是获取...

    wiredog:径向式网关:对本地浏览器所有的Http(s)请求和响应进行拦截并重制;也可以插入轻量级BS版抓包软件;

    短期式网关简单说就是你可以对自己的浏览器的所有请求和响应进行拦截,并通过Java代码方式进行重制。基于编程式网关,你可以... rebuildRequest(request - > { // 如果命中Request,则将请求实际转发到localhost:8080

    JSP网上书店完整源代码

    用户在客户端请求jsp页面,jsp页面将结果提交到Servlet,由Servlet负责处理结果,访问数据库等操作,并将参数结果放在request,session,application等元素中,然后通过请求转发和重定向转发到其他jsp页面或者...

    java中dispcter和forward的区别

    dispcter和forward的区别 RequestDispatcher.forward()方法和HttpServletResponse.sendRedirect()...2、forward与include基本上都是转发到context内部的资源,而redirect可以重定向到外部的资源,如: req.sendRedriect

    Java基础练习-使用基础知识编写一个服务器

    构建一个实现简单功能的服务器知识基础实现功能实现思路项目结构图效果展示用默认端口、默认错误页面、...封装Request,实现转发和获取参数功能 封装Response实现简单的外网页重定向 自定义服务器端口、error页面、欢

    第二章 JSP数据交互(一)pptx

    request和response对象的作用和常用方法是什么? 针对GET和POST请求如何处理中文乱码? 转发与重定向的区别和应用场合是什么? session对象的作用和常用方法是什么?

    上机报告2-Web程序设计(2021版).docx

    7. 掌握重定向与服务器转发的使用。 8. 熟悉 MyEclipse 工程项目结构的设置。 1. 编写一个简单的网上商店,用application对象存放网上的商品清单 和库存量,用session对象存放用户的购买信息(用户名、商品名及购买...

    Charles替换文件.jar

    正常情况下,Chrome DevTool已经满足了日常web开发的需求,但是有的特性:编辑request的参数、重定向request请求的资源、编辑response的数据,ChromeDevTool就很蛋疼了,而且查看和调试移动端资源时候Chrome也并不...

Global site tag (gtag.js) - Google Analytics