在Servlet中,forward和redirect是两个容易让人混淆的概念,应该如何区分这两个概念以及在实际运用中使用好它们呢。特创建了一个实际JavaWeb项目来验证和理解这两个概念。
具体代码请参见我上传的附件。下图是我使用的环境。
使用的服务器为apache-tomcat-6.0.18
经验证,得出如下结论:
1。forward仅限用于站内转向,而redirect即可用于站内转向,也可用于本站点以外的其他站点的转向,如写上http://www.iteye.com,那么可转向到此网站,http协议名需要加上,否则只写了www.iteye.com,假定我们的站点为http://localhost:8080/study,那么转向地址会成为http://localhost:8080/study/www.iteye.com,此时就会出现问题,相信看看url地址就一目了然了。
2。forward转向是在服务器内完成的,不需要再经过客户端请求。而redirect则需要往返一次客户端才能完成转向。这也就说明了为什么我们不能在redirect代码中直接书写转向的位于WEB-INF下的jsp页面位置的代码,而在forward形式下却可以。因为WEB-INF,META-INF都是受保护文件夹,无法从外部直接访问,除非我们以如下的形式书写,将这个jsp页面暴露出来。
<servlet>
<servlet-name>redirectPage</servlet-name>
<jsp-file>/WEB-INF/redirect.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>redirectPage</servlet-name>
<url-pattern>/gotoredirect</url-pattern>
</servlet-mapping>
3。forwad可以用来转向至一个jsp页面或者一个servlet,而redirect则不能用于转向一个位于WEB-INF下的jsp页面,可用于请求一个servlet。
见解拙劣,敬请谅解。
- 大小: 10 KB
分享到:
相关推荐
在开发Web应用时,我们经常会遇到“forward”和“redirect”的概念,它们是两种不同的页面跳转方式。理解和掌握它们的区别对于优化用户交互和处理请求流至关重要。 **forward(转发)**: - 转发是由服务器端完成的...
### Forward与Redirect解析 在Web开发中,Forward(转发)与Redirect(重定向)是两种常见的页面跳转方式。它们虽然都可以实现从一个页面跳转到另一个页面的功能,但在实现机制、应用场景以及对用户浏览器地址栏的...
在Web开发中,"转发"(Forward)和"重定向"(Redirect)是两种常见的请求处理方式,它们在实现客户端和服务器之间的交互时起到至关重要的作用。了解它们的区别对于优化用户体验和提高应用性能至关重要。 首先,让...
"JAVA面试题之Forward与Redirect的区别详解" 本文主要讲解了在JAVA面试中可能遇到的问题,即JAVA中Forward与Redirect两者之间的区别。文中详细介绍了两种请求转发方式的原理和区别,包括请求转发的含义、Forward...
`<jsp:forward/>`标签在JavaServer Pages (JSP)中用于将一个请求转发到另一个资源,比如从一个JSP页面跳转到另一个JSP页面或者一个Action。在Struts2框架下使用`<jsp:forward/>`进行页面跳转时,可能会遇到“404 Not...
- 示例代码:`request.getRequestDispatcher("/a/a.jsp").forward(request, response);` 2. 重定向(Redirect): - 使用`Response.sendRedirect()`方法实现。 - 重定向会导致浏览器发起一个新的HTTP请求,所以...
`进行重定向时,同样因为`redirect.jsp`位于`/03-03/relative/`目录下,执行重定向时会将当前路径`/03-03/relative/`与`result/result.jsp`拼接,形成完整的重定向地址`/03-03/relative/result/result.jsp`,并发...
过滤器的作用是可以在多个Servlet/JSP之间共享数据转换或页面处理,可以写一个过滤器类,然后在部署描述文件(web.xml)中把该过滤器与对应的Servlet/JSP联系起来。 4.forward和redirect的区别 forward是把另一个...
jsp动作是指jsp页面中的动作,例如form动作、forward动作、redirect动作等。 总结 设计和实现个人博客网站需要考虑到多个方面,包括系统设计、系统性能需求、系统功能需求、jsp编程等几个方面。在本文中,我们对...
- 在Java Web应用中,页面跳转通常有两种方式:重定向(Redirect)和转发(Forward)。 - **重定向**:客户端(浏览器)会收到一个新的HTTP响应,并被指示去访问新的URL。这意味着客户端会发送一个新的请求到...
JSP页面跳转有两种方式:使用`<jsp:forward>`标签和`<c:redirect>`标签。这两种方式都可以实现页面间的跳转,但具体实现机制有所不同。 - **使用<jsp:forward>标签**: ```jsp <jsp:forward page="/newPage.jsp" ...
6、jsp:forward 7、简单计数器 8、设置页面属性 9、使用GB2312编码 10、使用Big5编码 11、c:catch的用法 12、<c:forEach> begin、end和step的用法 13 、 <c:forEach> 循环 14、<c:forEach> varStatus 的四种属性 15...
- **JSP与Servlet的关系**:比较JSP和Servlet的不同之处及它们如何协同工作。 - **使用Servlet改写联系簿**:通过具体的示例代码展示如何使用Servlet重构原有的JSP应用。 #### 第7章 使用Filter过滤请求 - **批量...
* 如果你有几个 Servlet/JSP 需要执行同样的数据转换或页面处理的话,你就可以写一个过滤器类,然后在部署描述文件(web.xml)中把该过滤器与对应的 Servlet/JSP 联系起来。 * 一个过滤器可以作用于一个或一组 ...
而`forward()`方法是`RequestDispatcher`的一个关键方法,它用于在服务器端将请求转发到另一个资源,如JSP或Servlet。`forward()`操作发生在服务器端,对客户端浏览器而言是透明的,即浏览器的URL不会改变,而且请求...
`<jsp:forward>` 标签本质上是调用 `RequestDispatcher.forward()` 来完成页面跳转的。该标签会将当前请求转发到指定的JSP页面,保持请求数据的完整性。 **应用场景:** - 当需要简化代码实现,提高可读性时。 - ...
#### 一、ActionForward的作用与功能 在Struts框架中,ActionForward扮演着至关重要的角色。它不仅负责处理请求之后的流程控制,还能够指导Struts框架下一步应该转向何处。具体而言,ActionForward用于指示Action...
3.4. forward和redirect的问题 3.4.1. 绝对路径与相对路径 3.4.1.1. 相对路径 3.4.1.2. 绝对路径 3.4.2. forward导致找不到图片 4. 四个作用域 4.1. 何为作用域 4.2. 例子:在线列表 5. 结合javabean实现CRUD ...