[HTTP]转发和重定向的区别
来源:互联网 发布:九泰基金 知乎 编辑:程序博客网 时间:2024/05/16 18:39
一、调用方式
众所周知,在servlet中调用转发、重定向的语句如下:
request.getRequestDispatcher("new.jsp").forward(request,response);//转发到new.jspresponse.sendRedirect("new.jsp");//重定向到new.jsp
而在Jsp页面中实现转发和重定向的方式如下:<jsp:forward page = "new.jsp"> //转发的new.jsp<%response.sendRedirect("new.jsp");%> //重定向到new.jsp
1、转发过程:
转发不会改变浏览器的地址;共享同一个request;只能在同一个web应用中使用。客户感觉不到服务器做了转发,转发行为是浏览器只做了一次访问请求(request)。转发是不会改变地址的,只是服务器内部的类方法调用而已。
举个栗子:
来个小故事,你看上了一个非常漂亮的妹子,每天打电话嘘寒问暖,可你不知妹子已有男友。终于有一天,妹子把自己的电话设置了呼叫转移。转移到了自己男友的手机号上。当你在打电话“骚扰”时,被她男友痛骂了一段。
这里的“呼叫转移”就和转发特别像。首先你拨打的是妹子的电话,但你感觉不到你所拨打的电话已转移到了她男友手机号上。用计算机术语叫。你向妹子的手机号发送了一个请求,妹子将这个请求转发到自己男友手机号上。你只做了一次访问请求。所拨打的电话号码并没有改变。
2、重定向:
重定向会改变浏览器的地址栏;它不共享request;可以重定向到任意的URL。客户可以观察到地址栏的变化。相当于,客户端向服务器端发出多次请求。因此,重定向行为浏览器至少做了两次访问请求(request)。
一句话,转发是在服务器端发生的,重定向是在客户端发生的。
转发和重定向比较:
三、应用场景:
forward:访问Servlet处理业务逻辑,然后转发到Jsp显示处理结果,浏览器的URL不变。
redirect:提交表单,处理成功后redirect到另一个jsp,防止表单重复提交。浏览器里的URL改变。(一般来说对于登陆、注册,现在网站都是用ajax提交。)
- [HTTP]转发和重定向的区别
- HTTP转发和重定向的区别:
- HTTP中的重定向和请求转发的区别
- 从HTTP协议分析转发和重定向的区别
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- 托福写作2-large or small company employee
- Unity5.x Standard Shader在手机上的实现(二)
- JQuery入门
- uva 10935Throwing cards away I
- 算法训练 5-1最小公倍数
- [HTTP]转发和重定向的区别
- JAVA的修饰词(3)----abstract 抽象类
- 用Java代码连接ftp并传输文件
- 算法提高 P1001
- c++基于对象的编程风格2
- 系统分析与$.ajax()对象
- 关于解决Windows系统许可证即将过期的问题
- hdu 1018 Big Number(公式求阶乘位数)
- 将Java程序打包成可执行文件jar包,然后执行jar包,不引用外部包的情况