forward,include,redirect是jsp中web页面(jsp或servelt)的三种不同的路由关系,三个貌似相同,其实还是有许多差别的,而了解这些细微的差别,在web开发中是很重要的。
说明:
一、forward、include由javax.servlet.RequestDispatcher来封装,由包容器container提供RequestDispatcher接口的实现,其中声明如下: void forward(ServletRequest req,ServletResponse res) void include(ServeltRequest req,ServletResponse res) 可以通过两种方式得到RequestDispatcher:
1、ServletContext.getRequestDispatcher(String path); 其中这里的path必须开始为"/",即这里的path必须相对于context的root.
2、ServeltRequest.getRequestDispatcher(String path) 这里的path可以为相对路径,如果path开始为"/",则也认为是从context的root开始的。
二、Redirect由HttpServletResponse.sendRedirect(String location)来支持差别:三个都可以对用户的request进行转发,但是还是有许多的不同,差别最主要集中在如下几个方面:
1、forward与include共亨Request范围内的对象,而redirect则不行,即:如果一个javabean被声明为request范围的话,则被forward到的资源也可以访问这个javabean,而redriect则不行。
2、forward与include基本上都是转发到context内部的资源,而redirect可以重定向到外部的资源,如: req.sendRedriect(http://www.mocuai.com).
分享到:
相关推荐
在Java Web中,主要有两种页面跳转方式:请求转发(Request Forward)和重定向(Redirect)。这两种方式有着不同的工作原理和适用场景。 **请求转发(Request Forward)** 请求转发是由服务器内部完成的,不会向...
- **请求转发(Request Forward)**:使用`RequestDispatcher`的`forward()`方法在同一应用内部进行跳转,请求只发送一次,浏览器地址栏不会改变。 - **重定向(Redirect)**:使用`response.sendRedirect()`方法...
JSP 中页面跳转有两种常用的方式:重定向(Redirect)和转发(Forward)。 重定向(Redirect) 重定向是将客户端重定向到另一个 URL,这个过程会产生第二次请求。使用 `response.sendRedirect(path)` 方法可以实现...
forward 和 redirect 是两种页面跳转方式,分别有以下特点: * forward():一次请求,在容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址。 * redirect():两次请求,完全的跳转,浏览器将会得到...
在 JavaWeb 中,forward 和 redirect 是两种不同的跳转方式。forward 是服务器请求资源,服务器直接访问目标地址的 URL,把那个 URL 的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的...
2.jsp有哪些动作 3.forward 和redirect的区别 4.JSP中动态INCLUDE与静态INCLUDE的区别 5.两种跳转方式分别是什么 6.J
forward 和 redirect 是两种不同的页面跳转机制: * forward:在服务器端跳转,客户端不知道跳转的过程 * redirect:在客户端跳转,客户端知道跳转的过程 6. JSP 内置对象 JSP 内置对象包括: * request:请求...
3. JAVA SERVLET API中的forward()与redirect()的区别: * forward():仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址 * redirect():完全的跳转,浏览器将会得到跳转的地址,并重新发送...
forward和redirect是两种不同的服务器端跳转方式。forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来...
- `forward()`:服务器内部跳转,客户端浏览器地址栏不变,效率较高,适合同服务器内的资源跳转。 - `redirect()`:客户端重定向,地址栏显示新URL,适合跨域或需要用户可见跳转的情况。 以上是华为面试中可能...
有两种跳转方式,分别为:<jsp:include page="included.jsp" flush="true"> 和 <jsp:forward page="nextpage.jsp" />。前者页面不会转向 include 所指的页面,只是显示该页的结果,主页面还是原来的页面。执行完后还...
**三、forward与redirect的区别** - **forward**:服务器内部重定向,不改变URL,浏览器地址栏保持不变,适合于同一次请求的多个操作。 - **redirect**:客户端重定向,浏览器发起新的请求,URL会发生改变,适合于...
本文档总结了 Java Web 面试题一的答案,涵盖了 Servlet 生命周期、Servlet 和 CGI 的区别、forward 和 redirect 的区别、JSP 中动态 include 和静态 include 的区别、JSP 的内置对象、JSP 的常用指令、JSP 的动作、...
**三、JSP动态INCLUDE与静态INCLUDE** 1. **动态INCLUDE**:使用`<jsp:include>`,每次请求都会检查被包含页面的更新,适用于动态内容,可以传递参数。 2. **静态INCLUDE**:使用`<%@ include file="">`,在编译时...
在JSP和Servlet编程中,`forward` 和 `redirect` 都是用来控制页面跳转的方法,但它们之间存在显著差异: 1. **`forward`**:服务器内部的跳转,客户端浏览器地址栏不会改变,且只能在Web应用内部进行跳转。使用 `...
2. **forward()与redirect()的区别**:`forward()`是服务器内部跳转,它不会改变浏览器的URL,适合用于在同一应用内的页面间传递。而`redirect()`是浏览器级别的重定向,浏览器会发起一个新的请求,URL会显示为重...
3. forward与redirect: - forward:服务器内部重定向,不会改变URL,适合处理同一服务器内的请求。 - redirect:客户端重定向,浏览器重新发起请求,URL会改变,可用于跨域跳转。 4. JSP动态INCLUDE与静态...
`forward()`仅在服务器端进行控制权的转移,不会改变客户端的URL,而`redirect()`则会完全重定向请求,客户端的URL会显示新的地址,通常在需要跨服务器跳转时使用`redirect()`。 ### Servlet的基本结构 Servlet的...
JSP指令主要有三种: 1. `<%@ page>`:设置JSP页面的属性,如语言、导入的包、错误处理页面等。 2. `<%@ include>`:静态包含其他文件。 3. `<%@ taglib>`:引入自定义标签库。 **forward和redirect的区别** - **...
1. **概念**: `Forward`是一种服务器端请求跳转的方式,通过`RequestDispatcher`接口中的`forward()`方法实现。 2. **作用**: `Forward`可以将当前请求转发到另一个资源(通常是Servlet或JSP页面),同时共享`...