一:servlet的控制分发主要由RequestDispatcher对象完成(由于整个servlet存在于web容器中,所以它不像spring那样要指定一个控制分发器,它已经内置在web容器里面)。获取RequestDispatcher主要有两种方式,他们都是在ServletContext定义的接口之下

1.public RequestDispatcher getRequestDispatcher(String path)

path是资源的绝对路径,应该以"/"开始

2.public RequestDispatcher getRequestDispatcher(String name)

name是在web.xml中注册的servlet所对应的名字

二:完成请求分发主要有两个方法

1.public void include(request,response);

改方法的可以使其他资源生成的任务动静态的内容包含在它生成的响应中

eg:ServletContext context = getServletContext();

  RequestDispatcher rd = context.getRequestDispatcher("HeaderServlet");//HeaderServlet包含了头部的输出流

  rd.include(res,rps);

  rps.getWriter.println("<FONT SIZE=*******");

  rd = context.getRequestDispatcher("/foot.html");

  rd.include(res.rps);

  这样就完成了一次各个组件的共同输出流到客户端

2.public void forward(request,response);

改方法使Servlet将请求转发给另一个Servlet或者任何其他的Web组件,然后该Servlet或者其他组件将负责进一步处理该请求并生成响应

eg:  RequestDispatcher rd = null;

    if(valid){

      rd = context.getRequestDispatcher("InboxServlet");

    }else{

      rd = context.getRequestDispatcher("error.jsp");

    }

    rd.forward(res,rps);

下面看看两个方法的对比:

forward方法 include方法
在控制必须转移到其他web组件时使用

在必须由另一个web组件执行部分处理时使用。一旦

处理完成,当前的web组件就收回控制权

在转发请求之前,转发请求的web组件不应

使用用于与客户通信的输出流

所有web组件共享该输出流来与客户端进行通信

转载于:https://www.cnblogs.com/xiezichang/p/3730376.html

servlet之控制分发相关推荐

  1. Servlet 流程控制

    在之前的登陆例子里面所有的代码都是放到了jsp的页面中,但是JSP是负责显示的,现在用于了流程控制,这样十分不妥,所以我们把代码提取到了servlet里面 代码实现 Login.jsp <h3& ...

  2. java特定用户登录_求教!!!用 jsp+servlet 怎样控制指定用户名登录页面啊!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package cn.zmx; import java.io.IOException; import java.io.PrintWriter; impor ...

  3. Java Web应用实践

    <JAVA WEB应用实践> 第一章 .JSP的认识 1.Tomcat7 的目录结构: 目录 说明 /bin 存放用于启动和停止Tomcat的脚本文件 /conf 存放Tomcat服务器的 ...

  4. Express实现路由分发控制、RESTful API

    Express实现路由分发控制.RESTful API 标签(空格分隔): Node.js 最近在用Express作为自己的WEB应用框架,其中最为迷惑的就是Express的路由控制和分发,在网上搜了 ...

  5. servlet里面为什么有时候覆_为什么新来的经理强烈推荐?前后端分离知识,学到了...

    引言 前后端分离这个词相信大家都听过,不知道大家是怎么理解的呢.前阵子看项目的时候,有一段实现硬是没看懂,下面来给大家说一下一段愚蠢的经历哈. (我没正正式式写过前端,所以如果文章有错的地方希望可以在 ...

  6. java和jsp交互 structs_Struts与jsp+javabean+servlet区别

    采用Struts框架技术和直接使用jsp+javabean技术开发各有什么优势?各自的缺点又是什么? 在Javaweb开发领域存在2种开发模式, 模式一,jsp+javabean 模式二,jsp+ja ...

  7. servlet容器,web容器,spring容器,springmvc容器的区别

    这个理解我可以通过一个http的页面请求来说明. web容器中有servlet容器,spring项目部署后存在spring容器.其中spring控制service层和dao层的bean对象以及cont ...

  8. Servlet 3.0 新特性概述

    Servlet 3.0 新特性概述 Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布.该版本在前一版本(Servlet 2.5)的基础上提供了若 ...

  9. java与servlet JSP_java面试精品全集[jsp与servlet部分]

    一.Jsp方面 1.forward 和redirect的区别 答:forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本 ...

最新文章

  1. 【直播】王茂霖:二手车交易价格预测 Baseline 提高(河北高校数据挖掘邀请赛)
  2. 光伏产品发展之路:从反倾销到欧盟加收税款
  3. Android-去除Button默认边框
  4. [NOIP2001]Car的旅行路线
  5. 恭喜我自己装上了Windows Server 2008 R2 和使用Windows Live Writer 写日志
  6. SequoiaDB 巨杉数据库
  7. 路由表,路由,路由规则_路由和路由表简介
  8. c语言中文件是如何存储的,急求如何将下列C语言程序数据存储到文件中?
  9. 双“11”搞促销?用贪心算法来盘他!
  10. python 列表中dict中key排序
  11. 本地随机图床api源码
  12. 5.Ray-Handler之ToReadHandler编写
  13. 关于连接参数-Ttext
  14. 腾讯上海安全团队招聘实习生
  15. Echarts经纬度坐标实现地图定位
  16. jdk命令行工具:jstat与jmap
  17. 网络编程笔记之TCP例子(帅帅老师讲堂)
  18. 修马达的php源码,无刷电机控制基本原理(示例代码)
  19. 如何一键重装Win10系统图文教程
  20. 第十四章 结构和其他数据形式

热门文章

  1. 配置Windows server 2008 R2脱机加入域功能
  2. 软件随想: 软件 = 程序 + 软件工程
  3. CommandBehavior.CloseConnection有何作用
  4. PC Lint 初学
  5. 【tf.keras】tf.keras使用tensorflow中定义的optimizer
  6. 洛谷 P4475 巧克力王国 解题报告
  7. 2018.09.14 codechef Milestone(随机化算法)
  8. 【hdu 6342】Expression in Memories
  9. 【阿里巴巴】CBU技术部招聘
  10. server.mapPath(.mdb)