一、getRequestDispatcher()
getRequestDispatcher()包含两个重要方法,分别是请求转发和请求包含。一个请求跨多个Servlet时,需要使用请求转发和请求包含。

首先需要获得一个RequestDispatcher 对象:RequestDispatcher rd = request.getRequestDispatcher("/MyServlet");

请求转发: rd.forward( request , response );
请求包含: rd.include( request , response);
需注意的是,无论是请求转发还是请求包含,都在一个请求范围内!使用同一个request和response!

二、请求转发和请求包含的区别
请求转发:由下一个Servlet完成响应体,当前Servlet可以设置响应头(留头不留体)。举个例子,AServlet请求转发到BServlet,那么AServlet不能够使用response.getWriter() 和response.getOutputStream()向客户端输出响应体,但可以使用response.setContentType(“text/html;charset=utf-8”) 设置响应头。而在BServlet中可以输出响应体。
请求包含:由两个Servlet共同完成响应体(留头又留体)。同样用上面的例子,AServlet请求包含到BServlet,那么AServlet既可以设置响应头,也可以完成响应体。

关于request.getRequestDispatcher()的两个方法相关推荐

  1. request.getRequestDispatcher()的两个方法forward()/include()!!!

    RequestDispatcher rd = request.getRequestDispatcher("/MyServlet"); 请求转发: rd.forward( reque ...

  2. 让你明白response.sendRedirect()与request.getRequestDispatcher().forward()区别

    JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳转,但是 ...

  3. JSP中页面跳转response.sendRedirect()和request.getRequestDispatcher()的区别

    Java Web开发中,采用MVC模式的时候,在控制器完成模型的调用之后会选择界面对用户响应,用常有2种方式 1,通过response对象的sendRedirect方法重定向: response.se ...

  4. request.getRequestDispatcher().forward(request,response)和response.sendRedirect()的区别

    在进行web开发时,跳转是最常见的,今天在这里来学习下2种跳转: 第一种是request.getRequestDispatcher().forward(request,response): 1.属于转 ...

  5. JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,respon 区别

    JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳转,但是 ...

  6. java web ip_详解Java Web如何限制访问的IP的两种方法

    前一阵子因为在做项目时碰到了这个功能,现在好好总结一下,至于为什么要限制IP访问,我就不多说了.然后百度了一下,现在主要有两种方式去限制IP访问,第一种是最简单的方便的,第二种是通过过滤器来限制访问. ...

  7. request的setAttribute()用法及request.sendRedirect 与 request.getRequestDispatcher.forward 的区别

    request.setAttribute()怎么用的? JSP1代码 String [] test=new String[2]; test[0]="1"; test[1]=&quo ...

  8. 【jsp】页面跳转的两种方法

    注:由index.jxp跳转到Failure.jsp request.getSession().setAttribute("msg", "45654"); 方法 ...

  9. python提交表单无效_使用Django Form解决表单数据无法动态刷新的两种方法

    一.无法动态更新数据的实例 1. 如下,数据库中创建了班级表和教师表,两张表的对应关系为"多对多" from django.db import models class Class ...

最新文章

  1. MySQL性能与磁盘读写的关系及优化策略
  2. 直播实录QA | 王赟Maigo分享“知识连成一片”是怎样一种体验
  3. Simulink仿真 第八节 积分模块
  4. Kerberos策略的配置
  5. HTML入门小站,Phaser
  6. 【Linux】使用du、df 和 sort 命令快速找出Linux系统中的大文件
  7. 【转】WCF、Net remoting、Web service概念及区别
  8. 【排序算法】快速排序-迭代方法
  9. 斐波那契数列(java)
  10. 华为AC6605二层组网,配置无线漫游
  11. 七上八下猜数字_《脑筋急转弯》
  12. Python 爬虫从入门到进阶之路(八)
  13. Python爬虫英语四六级网站查询准考证号
  14. 9本4月程序员新书,Python书就占了6本
  15. 什么是大数据? 大数据项目的流程
  16. STM32F407配置PLLI2SCLK实现特定50MHz时钟驱动83848
  17. 如何取消RAR压缩包的自动加密?
  18. 基于MIission planner的VTOL垂直起降固定翼航线设计方法
  19. 院士大牛们一年N篇7点以上SCI的诀窍
  20. S7-1200数据类型

热门文章

  1. [转载] Python中的解析式和生成器表达式
  2. java treemap_Java TreeMap lastEntry()方法与示例
  3. c语言for循环++_C ++程序使用循环查找数字的幂
  4. 检查字符串是否包含数字的Python程序
  5. java 大小写转换函数_不使用Java中的任何库函数将大写转换为小写
  6. 热冗余冷冗余_冗余支架
  7. 二层交换网络_网络中的第2层交换
  8. Java类class isAnnotation()方法及示例
  9. Java ObjectOutputStream writeDouble()方法与示例
  10. IIS负载均衡(转)