forward与redirect的区别
来源:互联网 发布:深圳单片机开发 编辑:程序博客网 时间:2024/05/16 11:06
刚开始学习那会儿一直不明白forward与redirect之间有什么不同的,后来代码敲的多了,对这些东西的理解也更加透彻了,下面我就来说一下我对forward和redirect在页面中跳转时候的理解。
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。还有,转发是在web应用程序之内进行的,可以访问web应用程序所设定的内部目录,像是WEB-INF目录,只能在Web应用程序中进行,不能指定至其它的Web应用程序的地址。
redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。web应用程序会要求客户端浏览器重新发出请求地址,客户端会重新连接至所指定的地址,因此浏览器的地址会出现重新导向的信息,重新导向后的请求由浏览器发出,所以不能访问Web应用程序中的隐藏目录,像是WEB-INF,重新是由浏览器重新要求一个网页,可以指定至其他的Web应用程序地址。
RequestDispatcher.forward()方法和HttpServletResponse.sendRedirect()方法的区别是:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址,他是不会改变Request的值,如果你需要在下一个页面中能从中获取新的信息的话,你可以response.setAttribute()来放置一些标志,这样从下一个页面中获取;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用RequestDispatcher.forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用 HttpServletResponse.sendRequest()方法。
- forward与redirect的区别
- forward与redirect的区别!
- forward与redirect的区别
- forward与redirect的区别
- forward 与redirect的区别
- forward() 与redirect()的区别
- redirect与forward的区别:
- Forward与Redirect的区别
- forward与redirect的区别
- forward 与redirect 的区别
- forward与redirect的区别
- forward与redirect的区别
- forward与redirect的区别
- forward与redirect的区别
- forward与redirect的区别
- redirect 与 forward 的区别
- Forward与Redirect的区别
- forward与redirect的区别
- 产品编辑页面 使联动的DropDownList1 DropDownList2显示原来显示的值
- ubuntu开启3D效果,修复VirtualBox
- jdk与jre的区别
- Win32汇编学习[7]: 定义符号常量(=、EQU、TEXTEQU)
- [Redis] redis-cli 命令总结
- forward与redirect的区别
- Android开发中 获取当前Android的年月日时分秒的时间
- 如何配置在MyEclipse中查看JDK类库的源码
- java如何标识一个资源
- pro bash programming学习笔记——第二章
- Eclipse代码自动提示
- Android学习之Service
- PHP三层结构(上)——简单三层结构
- 如何学好C语言