为了实现代码重用,需要将某些代码和数据放在一个或多个Servlet中,以供其他Servlet使用,提供了RequestDispatcher.include方法,首先通过getServletContext方法获取ServletContext对象,然后通过ServletContext.getRequestDispatcher方法获取RequestDispatcher对象。

以下代码中,IncludingServlet类演示了如何使用Include方法包含web资源。

//包含了一个Servlet:IncludedServlet,和一个HTML页面

protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
// 设置Context-type字段值,类型为text/html,编码格式为utf-8
// response.setHeader("Content-type", "text/html;charset:utf-8");
response.setContentType("text/html;charset=utf-8");
// 获取PrintWriter对象
PrintWriter out = response.getWriter();
// response.setCharacterEncoding("UTF-8");
// 向客户端输出信息
out.println("hello world<br/>");
// 向客户端输出请求URI
out.println("Including URI:" + request.getRequestURI() + "<p/>");
// 封装名为IncludedServlet的Servlet
RequestDispatcher rd = this.getServletContext().getRequestDispatcher("/IncludedServlet");
rd.include(request, response);
// 封装名为IncludedHTML.html页面
rd = getServletContext().getRequestDispatcher("/IncludedHTML.html");
rd.include(request, response);
}

1.里面包含两个web资源,映射路径为“/IncludedServlet”的Servlet类和一个名为IncludedHTML.html的静态页面

2.getRequestDispatcher方法的参数值必须以“/”开头。

IncludedServlet类的代码

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//设置Context-type字段值,类型为text/html,编码格式为UTF-8
response.setContentType("text/html;charset=UTF-8");
//获取PrintWriter对象
PrintWriter out=response.getWriter();
//向客户端输出带HTML代码的信息
out.println("<b>crazy</b><br/>");
//向客户端输出请求URI
out.println("IncludedServlet URI:"+request.getRequestURI()+"<p/>");


}

IncludedHTML.html的代码

<!-- 利用表格显示相关信息 -->
<table border="1">
<tr>
<td>name</td>
<td>sex</td>
</tr>
<tr>
<td>zhang</td>
<td>male</td>
</tr>
<tr>
<td>zheng</td>
<td>female</td>
</tr>
</table>

运行结果如图

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

  1. 关于“javax.servlet.include.request_uri”属性值 include 请求 RequestDispatcher.include

    在springMVC的DispatcherServlet类的doService方法中有如下代码: 1 2 3 4 5 6 7 8 9 10 if (WebUtils.isIncludeRequest( ...

  2. SpringMVC——使用RequestDispatcher.include()和HttpServletResponseWrapper动态获取jsp输出内容

    介绍本篇内容前,先抛出我遇到的问题或者说是需求!(精读阅读本篇可能花费您15分钟,略读需5分钟左右) 一:需求说明 有一个Controller有两个方法 第一个方法通过指定的路径和参数去渲染jsp内容 ...

  3. JAVA记录-Servlet RequestDispatcher请求转发

    RequestDispatcher接口提供将请求转发送到另一个资源的功能,它可能是html,servlet或jsp等. 此接口也可用于包括另一资源的内容.它是servlet协作的一种方式. 在Requ ...

  4. Servlet RequestDispatcher需要注意的情况

    Servlet RequestDispatcher需要注意的情况: 如果使用getServletContext().getRequestDispatcher("/a.do")得到R ...

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

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

  6. Servlet体系及方法

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

  7. 《Entity Framework 6 Recipes》中文翻译系列 (26) ------ 第五章 加载实体和导航属性之延缓加载关联实体和在别的LINQ查询操作中使用Include()方法

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 5-7  在别的LINQ查询操作中使用Include()方法 问题 你有一个LINQ ...

  8. WEB启动时就加载servlet的dopost方法

    web启动的时候可以加载servlet的init方法,无法加载dopost方法,如果你需要什么内容在启动的时候执行,可以将内容放到init方法里面,dopost方法,是在客户端使用post请求的时候才 ...

  9. Servlet的init()方法如何才会在服务器启动时执行

    如果要想让 servlet 的 init () 方法在服务器启动 时就被执行,则需要在 web.xml 中相应的 servlet 下配置 <servlet > <servlet -n ...

随机推荐

  1. win8.1安装Matlab7.0的兼容问题

     Matlab7.0安装完成后打开就立即关闭,此时右键点击MATLAB7.0快捷方式-"用图形处理器运行"-"更改默认图形处理器",将"集成图形&qu ...

  2. 一个Java复制目录的方法(递归)

    /** * 将目标目录复制为指定目录(也可以用于复制文件) * @param src 源路径 * @param dest 目标路径 * @throws IOException */ public st ...

  3. Java泛型学习笔记 - (四)有界类型参数

    1. 当我们希望对泛型的类型参数的类型进行限制的时候(好拗口), 我们就应该使用有界类型参数(Bounded Type Parameters). 有界类型参数使用extends关键字后面接上边界类型来 ...

  4. 【转】silverlight telerik RadGridView 列头显示其他控件

    <telerik:GridViewDataColumn DataMemberBinding="{Binding target_id}" IsFilterable=" ...

  5. hibernate中validate的使用(转)

    原文链接:http://blog.csdn.net/xing_sky/article/details/8484551 首先是要加入下面两个包 hibernate-validator-4.1.0.Fin ...

  6. css 中content内容特殊形状

    用到的一些特殊字符和图标html代码<div class="cross"></div>css代码.cross{    width: 20px;    hei ...

  7. linux msql

    安装mysql 1.使用rpm 安装mysql 或者使用yum安装 使用rpm 安装 下载 Centos 7 所需要的mysql包 tar -xf 解压整合包 根据依赖 安装 common>li ...

  8. VS.net中快捷键收缩和展开代码段 (转)

    i. Ctrl-M-O   折叠所有方法 ii. Ctrl-M-P   展开所有方法并停止大纲显示(不可以再折叠了) iii. Ctrl-M-M   折叠或展开当前方法 iv. Ctrl-M-L展开所 ...

  9. 结构及其使用 struct (C#)

    首先结构是值类型. 结构是使用 struct 关键字定义的,结构如下: struct 结构名{} 结构概述 结构具有以下特点: 结构是值类型,而类是引用类型. (结构不能包含显式的无参数构造函数) 与 ...

  10. Django数据操作F和Q、model多对多操作、Django中间件、信号、读数据库里的数据实现分页

    models.tb.objects.all().using('default'),根据using来指定在哪个库里查询,default是settings中配置的数据库的连接名称. 外话:django中引 ...