forward方法与Include方法非常相似,但有5点不同

1,在调用forward方法之前,输出缓冲区的数据会被清空,也就是说,在使用forward方法进行请求转发时,只可能输出别转发的web资源中的消息。

2,如果在调用forward方法之前已经将缓冲区的数据发送到客户端,在调用forward方法时会抛出IllegalStateException异常

3,在调用者和被调用者中设置响应消息头都不会被忽略,而在调用Include方法中,只有调用者中设置响应消息头才会生效。

4,Servlet引擎会根据RequestDispatcher对象所包含的资源对HttpServletRequest对象中的请求路径和参数信息进行调整,而使用Include方法时,Servlet引擎不会调整这些消息。

5,forward方法只能使用一次,否则抛出异常。

ForwardServlet类演示了如何使用Forward方法请求转发web资源。

代码如下:

 protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
RequestDispatcher pd=this.getServletContext().getRequestDispatcher("/IncludingServlet");
pd.forward(request, response);
}

结果如图:

由输出结果可知,在转入的 web资源中改变了httpServRequest中的请求路径,因此输出的死/IncludingServlet,而不是ForwardServlet的请求路径。

Servlet-RequestDispatcher.forward方法的更多相关文章

  1. RequestDispatcher.forward() 方法和HttpServletResponse.sendRedirect()方法的区别

    RequestDispatcher.forward() 方法和HttpServletResponse.sendRedirect()方法的区别 先贴一段代码 public void logon(Http ...

  2. java 中sendredirect()和forward()方法的区别

     一.文章1 HttpServletResponse.sendRedirect与RequestDispatcher.forward方法都可以实现获取相应URL资源. sendRedirect实现请求重 ...

  3. Servlet体系及方法

    时间:2016-11-11 15:07 --Servlet体系Servlet(interface):    实现类:GenericServlet.HttpServletServletConfig(in ...

  4. RequestDispatcher.forward转发与HttpServletResponse.sendRedirect重定向

    下面是HttpServletResponse.sendRedirect 方法实现的请求重定向与RequestDispatcher.forward 方法实现的请求转发的总结比较:(1)RequestDi ...

  5. RequestDispatcher.forward和HttpServletResponse.sendRedirect

    (1)RequestDispatcher.forward方法只能将请求转发给同一个WEB应用中的组件:而HttpServletResponse.sendRedirect 方法不仅可以重定向到当前应用程 ...

  6. esponse.sendRedirect方式的转向与RequestDispatcher的forward方法的比较

    esponse.sendRedirect方式的转向与RequestDispatcher的forward方法的比较 JavaWeb开发中,采用MVC模式的时候,在控制器完成模型的调用之后会选择界面对用户 ...

  7. (转发)RequestDispatcher的include()方法和forward()方法的区别

    forward(): 该方法用于将请求从一个Servlet传递给服务器上的另外的Servlet.JSP页面或者是HTML文件. 在Servlet中,可以对请求做一个初步的处理,然后调用这个方法,将请求 ...

  8. Servlet生命周期方法,request.getRequestDispatcher

    1,request.getRequestDispatcher 方法全称javax.servlet.ServletRequest.getRequestDispatcher(String) 2,在web. ...

  9. Servlet中forward和redirect的区别(转)

    forward方式:request.getRequestDispatcher("/somePage.jsp").forwardrequest, response);     red ...

随机推荐

  1. UITableViewCell

    #import "ContactListTableViewController.h" #import "Contact.h" #import "Con ...

  2. SharePoint Calculated Columns 分类: Sharepoint 2015-07-09 01:49 8人阅读 评论(0) 收藏

    SharePoint Calculated Columns are powerful tools when creating out-of-the-box solutions. With these ...

  3. html 学习(一)

    一.用CSS实现如下布局,使用三个div 代码实现如下: 说明: 1.margin-left:110px; _margin-left:107px; margin-left:110px; 所有浏览器都要 ...

  4. 修改加粗cmd和powershell命令行的中文字体

    powershell 传教士 原创文章 2016-06-20 允许转载,但必须保留名字和出处,否则追究法律责任 ---[前言]--- 1 环境: win10 10586 powershell 5.0 ...

  5. iframe 简单的一个用法 局部调用

    <iframe id="main_com" name="main_com" width="100%" height="750 ...

  6. 不是SELECTed表达式

    sql语句如下: select distinct(p.project_name) name,p.pkid pkid, p.report_year year, q.cor_name cor_name,g ...

  7. 在gridControl的单元格中的多行文本

    我们知道,gridcontrol里面的单元格默认是不能换行的,但是有时候我们需要显示要换行的文本,应该怎么处理呢?这里提供一个方案: 假设我有一个列”合同文本“(colContractText),我要 ...

  8. C#中DateTime.Now.ToString()

    项目开发中遇到一个问题:C#编写的SQL语句中有时间值,刚开始直接将DateTime.Now进行toString()处理,源代码调试程序运行正常. 然后我的电脑重装了系统,再次运行程序就报错“从字符串 ...

  9. 开源一个网络图片浏览器HooPhotoBrowser

    在公司开发项目中需要弹出展示从网络上下载的图片,并提供滑动展示功能.目前采用同事开发的图片浏览器,后期有时间想优化一下.所以重温了下以前开发的类似微博的项目中的图片浏览器代码,并抽取出来封装成了现在这 ...

  10. putty连接报NetWork error:connection refused

    首先通过物理终端进入到linux上,手工检查ssh发现没运行 /etc/init.d/sshd status 使用rpm -V 命令可检查到ssh的软件包正常 /rpm -V openssh-serv ...