forward 顾名思义:转发,从服务器转发。因此在客户端的浏览器地址里看不出url的变化
redirect 顾名思义:重定向,在客户端重新定向了一次,因此在客户端能看懂啊url的变化。
这两者的区别可以用下面的图来表示(转载)
forward
<%@ page contentType="text/html; charset=gb2312"
%>
<%
String color = request.getParameter("color"
);
if("red".equals(color)) {
request.getRequestDispatcher("red.jsp").forward(request, response);
} else if("green".equals(color)) {
request.getRequestDispatcher("green.jsp").forward(request, response);
}
%>
无论转发至red.jsp还是green.jsp,地址栏上显示的都是test.jsp。
这是为什么呢?通过下面的流程图会让我们容易理解:
-
浏览器向test.jsp发送请求。
-
test.jsp计算客户选择的颜色,将请求转发至red.jsp。
-
red.jsp返回响应给浏览器。
这
下知道为什么浏览器的地址没有变化了吧?因为浏览器只是执行了对test.jsp的请求,test.jsp到red.jsp的部分是在服务器内执行的,浏
览器并不知道服务器里到底发生了什么,它只知道自己获得的响应是test.jsp发回来的,甚至不知道服务器还有个red.jsp。
redirect
test.jsp中需要这样写:
<%@ page contentType="text/html; charset=gb2312"%>
<%
String color = request.getParameter("color"
);
if("red".equals(color)) {
response.sendRedirect("red.jsp");
} else if("green".equals(color)) {
response.sendRedirect("green.jsp");
}
%>
-
浏览器向test.jsp发送请求。
-
test.jsp计算客户选择的颜色,向浏览器发送一个页面重定向(redirect)的响应,响应中包含red.jsp的url地址。
-
浏览器根据页面重定向(redirect)响应中的red.jsp地址,再次向服务器发送请求,这次请求的就是red.jsp了。
-
red.jsp执行,返回响应。
分享到:
相关推荐
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。还有,转发...
forward转发与redirect重定向的区别
转发和重定向的区别 forward和redirect的区别 request.getRequestDispatcher()..forward(request,response);和 response.sendRedirect();的区别详解
forward与redirect!转发和重定向 解析
主要给大家介绍了在JAVA面试中可能遇到会遇到的一道题,就是java中Forward与Redirect两者之前的区别,文中介绍的非常详细,对大家具有一定参考学习价值,需要的朋友们下面来一起看看吧。
19.Servlet中forward和redirect的区别.avi
NULL 博文链接:https://dreamzhong.iteye.com/blog/1128006
Java面试题19.forward和redirect的区别.mp4
1、forward与include共亨Request范围内的对象,而redirect则不行,即:如果一个javabean被声明为request范围的话,则被forward到的资源也可以访问这个javabean,而redriect则不行。2、forward与include基本上都是转发...
ActionForward的使用 1、理解全局和局部ActionForward的概念 2、redirect的使用 3、struts-config.xml文件不允许动态修改 4、理解动态ActionForward,动态的ActionForward是可以运行期修改的
springMVC3学习 九 redirect和forward跳转 源码 文章地址http: blog csdn net itmyhome1990 article details 26286669
用户向服务器发送了一次HTTP请求,该请求肯能会...根据转发方式的不同,可以区分为直接请求转发(Forward)和间接请求转发(Redirect)两种有何区别呢?本篇在回答该问题的同时全面的讲解两种请求转发方式的原理和区别。
forward与redirect区别 页面请求的工作流程 HTTP中的GET和POST方法有什么区别 什么是Servlet servlet是线程安全的吗 Servlet的生命周期 JSP和Servlet的区别和联系 什么是MVC模型 TCP的连接和释放过程 什么是长连接...
详解Struts2的国际化!ActionForward的使用 ActionForward的默认行为是转发,如果想重定向,需要在标签中配置 redirect="true" 比如: <forward name="login" path="/login.jsp" redirect="true"/>
redirect_uri(请参阅auth-host ) 允许身份验证在多个域中持续存在(请参阅) 支持Google令牌生存期以外的扩展身份验证(请参阅:lifetime )内容发布我们建议在thomseddon/traefik-forward-auth:2 hub上使用2标签...
19、forward 和redirect的区别 forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏...
10、Servlet中的forward和redirect有什么区别: Forward是服务器内部的重定向,服务器直接访问目标地址的url,地址不变。 Redirect:客户端的重定向,完全跳转,地址改变。 11、JSP的内置对象: 1)require(请求对象...
、bat面试题之线程的实现方式 怎么启动线程怎么区分线程、bat面试题之forward和redirect的区别、bat面试题之内置对象和四大作用域和页面传值、bat面试题之设计模式和常用的设计模式、bat面试题之实现一个拷贝文件的...
本文实例讲述了ThinkPHP框架使用redirect实现页面重定向的方法。分享给大家供大家参考,具体如下: ThinkPHP redirect 方法 ThinkPHP redirect 方法可以实现页面的重定向(跳转)功能。redirect 方法语法如下: $...
本资源摘要信息对应的文件是“联合永道java面试题.pdf”,该文件主要涵盖了JavaWeb开发中的一些重要知识点,包括HTTPClient的超时设置、Servlet的生命周期、Forward和Redirect的概念、JSP和Servlet的区别、JSP的编译...