图解sendRedirect,include,forward的区别

原创 2008年09月30日 14:35:00
最近遇到几个人出现了和这三个有关的问题,特别是sendRedirect使用request.getAttribute的问题。我这里给出三个的主要区别并提供一个图形参考。
原文:http://www.java2000.net/p10576


一、sendRedirect


使用方式:

servlet和jsp里面一样
  1. response.sendRedirect(); 
说明:
服务器根据逻辑,发送一个状态码,告诉浏览器重新去请求指定的地址,一般来说,你会把需要的参数放在转发的地址里面。
注意:使用request.setAttribute的内容,不能读取了,你可以用session代替,或者用include,forward代替。

流程图

二、include

使用方式
servlet里面
  1. request.getRequestDispatcher("jsp2.jsp").include(request,   response);  
jsp里面
  1.   <jsp:include page="include.jsp"/>  
说明
页面会同时包含页面1和页面2的内容,地址栏不变。
使用request.setAttribute的内容,可以正常使用

流程图




三、forward

使用方式
servlet里面
  1. request.getRequestDispatcher("jsp2.jsp").forward(request,   response);  
jsp里面
  1. <jsp:forward page="include.jsp"/>  
说明
页面会是页面2的内容,地址栏不变
使用request.setAttribute的内容,可以正常使用

流程图





特殊提示
include 和 sendRediect 之后,后面的语句会继续执行,所以应该在合适的位置写上return;forward的不会

版权声明:本文为博主原创文章,未经博主允许不得转载。

Servlet中forword与include的区别

include方法: 1)RequestDispatcher.include方法用于将RequestDispatcher对象封装的资源内容作为当前响应内容的一部分包含进来,从而实现可编程的服务器...
  • kiss_vicente
  • kiss_vicente
  • 2012年05月25日 18:07
  • 6018

Forward与include的区别

Forward与include的区别 标签用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,这种在JSP页面执行时的引入方式称之为动态引入。 从一个JSP文件传递request信息到...
  • yu655716
  • yu655716
  • 2011年10月30日 19:15
  • 4616

<jsp:include>与<jsp:forward>

对于标签之前的内容,之前的内容执行但不显示,而之前的内容执行也显示。 对于标签之后的内容,不执行了,执行并显示。 include是在当前页面的当前位置导入一个jsp页面,forward是整个...
  • u013775952
  • u013775952
  • 2016年07月04日 10:57
  • 872

Jsp中include与forward的区别

Jsp: : : request: request.getDispatcher().forward(): request.getDispactcher.include(): response: re...
  • c75836145
  • c75836145
  • 2016年03月28日 17:25
  • 2615

web 开发中forward动作指令和include动作指令的区别

forward指令和include指令很相似。它们都采用方法来导入目标页面,查看jsp生成的servlet代码知道:forward指令使用_jspx_page_context 的forward()方法...
  • ZHANGTAOZAQaq
  • ZHANGTAOZAQaq
  • 2014年02月27日 10:15
  • 1413

forward和include区别

在这里对forward和include做一个直观的比较,举个例子,看看在页面上是如何表现的。 现在我们有三个页面——index.jsp,welcome.jsp和LoginServlet 这几个页面...
  • jasper_success
  • jasper_success
  • 2011年08月15日 00:08
  • 929

forward和include方法的区别

request.getRequestDispatcher( "jsp2.jsp ").forward(request,   response); request.getRequestDispatch...
  • lihongjian944043440
  • lihongjian944043440
  • 2011年10月30日 23:27
  • 733

转发和重定向 forward and rediect 这个很直白的哟

forward是服务器内部重定向,程序收到请求后重新定向到另一个程序,客户机并不知道;redirect则是服务器收到请求后发送一个状态头给客户,客户将再请求一次,这里多了两次网络通信的来往。当然for...
  • guo_love_peng
  • guo_love_peng
  • 2011年08月19日 19:35
  • 1027

RequestDispathcher中forward()和include()的区别

一,RequestDispatcher接口方法简介         1,RequestDispatcher对象由Servlet容器来创建,封装一个由路径所标识的服务器资源。           2...
  • huo2007201019
  • huo2007201019
  • 2012年05月20日 09:20
  • 4364

请求转发的forward , include 的区别

n         RequestDispatcher.forward()方法RequestDispatcher接口所定义的forward()方法可以将HTTP请求转送给其他Web资源(例如Servl...
  • yukunzgp
  • yukunzgp
  • 2008年03月20日 17:48
  • 963
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:图解sendRedirect,include,forward的区别
举报原因:
原因补充:

(最多只允许输入30个字)