Servlet--SingleThreadModel接口,RequestDispatcher接口
- SingleThreadModel接口
定义
public interface SingleThreadModel;
这是一个空接口,它指定了系统如何处理对同一个 Servlet 的调用。如果一个 Servlet 被这个接口指定,那么在这个 Servlet 中的 service 方法中将不会有两个线程被同时执行。Servlet 可以通过维持一个各自独立的 Servlet 实例池,或者通过只让 Servlet 的 service中只有一个线程的方法来实现这个保证。
- RequestDispatcher接口
定义:
public interface RequestDispatcher;
定义一个对象, 从客户端接收请求, 然后将它发给服务器的可用资源 (例如 Servlet 、 CGI 、HTML 文件、 JSP 文 件 ) 。Servlet引擎创建request dispatcher对象, 用于封装由一个特定的URL定义的服务器资源。这个接口是专用于封装 Servlet 的,但是一个 Servlet 引擎可以创建 request dispatcher 对象用于封装任何类型的资源。request dispatcher
对象是由 Servlet 引擎建立的,而不是由 Servlet 开发者建立的。
方法
1、forward
public void forward(ServletRequest request, ServletReponse response)throws ServletException, IOException;
被用来从这个 Servlet 向其它服务器资源传递请求。当一个 Servlet 对响应作了初步的处理,并要求其它的对象对此作出响应时,可以使用这个方法。当 request 对象被传递到目标对象时, 请求的 URL 路径和其他路径参数会被调整为反映目标对象的目标 URL 路径。如果已经通过响应返回了一个 ServletOutputStream 对象或 PrintWriter 对象, 这个方法 将不能使用,否则,这个方法会抛出一个 IllegalStateException。
2、include
public void include(ServletRequest request, ServletResponse response)throws ServletException, IOException
用来包括发送给其他服务器资源的响应的内容。 本质上来说, 这个方法反映了服务器端的内容。请求对象传到目标对象后会反映调用请求的请求 URL 路径和路径信息。这个响应对象只能调用这个 Servlet 的 ServletOutputStream 对象和 PrintWriter 对象。
一个调用 include 的 Servlet 不能设置头域,如果这个 Servlet 调用了必须设置头域的方法(例如 cookie) ,这个方法将不能保证正常使 用。作为一个 Servlet 开发者,你必须妥善地解决那些可能直接存储头域的方法。例如,即使你使用会话跟踪,为了保证 session 的正常工作,你必须 在一个调用 include 的 Servlet 之外开始你的 session。
package javax.servlet; import java.io.IOException; public abstract interface RequestDispatcher
{
public abstract void forward(ServletRequest paramServletRequest, ServletResponse paramServletResponse)
throws ServletException, IOException; public abstract void include(ServletRequest paramServletRequest, ServletResponse paramServletResponse)
throws ServletException, IOException;
}
Servlet--SingleThreadModel接口,RequestDispatcher接口的更多相关文章
- Servlet请求转发RequestDispatcher接口
在Servlet中,利用RequestDispatcher对象,可以将请求转发给另外一个Servlet或JSP页面,甚至是HTML页面,来处理对请求的响应. 一,RequestDispatcher接口 ...
- Servlet请求转发 RequestDispatcher接口.RP
在Servlet中,利用RequestDispatcher对象,可以将请求转发给另外一个Servlet或JSP页面,甚至是HTML页面,来处理对请求的响应. 一,RequestDispatcher接口 ...
- Java EE javax.servlet中的RequestDispatcher接口
RequestDispatcher接口 public interface RequestDispatcher 一.介绍 定义一个对象,从客户端接收请求并将其发送到服务器上的任何资源(例如servlet ...
- Servlet中的请求转发RequestDispatcher接口的forword与Include的区别
RequestDispatcher接口中具有两个方法: forward() 与 include() 均 可完成请求 的转发.区别如下: forword(): 使用该方法,则当前 的 Servlet 中 ...
- jsp中 RequestDispatcher接口的两种跳转:forward()和include()
在web程序中,经常是由多个Servlet来完成请求.RequestDispatcher接口就是为了多个Servlet之间的调整而实现的.该接口可以用httpSerbletRequest的getReq ...
- JavaWeb知识回顾-Servlet常用类、接口及其方法
今天主要把servlet的一些常用的类.接口和方法简单回顾一下. javax.servlet包 1.javax.servlet.Servlet接口 接口用于开发servlet,所有的servlet都要 ...
- Servlet基本用法二接口和类
转自:http://www.cnblogs.com/xujian2014/p/4536168.html 一.摘要 本文主要简单介绍开发Servlet需要用到的接口和类. 二.ServletReques ...
- servlet的基本类和接口
javax.servlet.Servlet接口 javax.servlet.GenericServlet类(协议无关版本) javax.servlet.http.HttpServlet类(HTTP版本 ...
- SpringBoot接口 - API接口有哪些不安全的因素?如何对接口进行签名?
在以SpringBoot开发后台API接口时,会存在哪些接口不安全的因素呢?通常如何去解决的呢?本文主要介绍API接口有不安全的因素以及常见的保证接口安全的方式,重点实践如何对接口进行签名.@pdai ...
随机推荐
- 内核知识第八讲,PDE,PTE,页目录表,页表的内存管理
内核知识第八讲,PDE,PTE,页目录表,页表的内存管理 一丶查看GDT表. 我们通过WinDbg + 虚拟机可以进行双机调试.调试一下看下GDT表 我们知道,GDT表中.存储的是存储段信息. 保存了 ...
- JSP执行过程分析
概述 在java领域,表现层技术主要有三种:jsp.freemarker.velocity.jsp是由sun公司倡导的官方标准,freemarker和velocity是第三方的模板. jsp是大家最熟 ...
- 一个vue项目的简单分享
回首用vue已经2个多月了,今年7月底根据vue社区提供的api写了一个小移动端的小dom 通过这个项目也让我更深入的了解了vue(组件之间的通讯,计算属性,数据绑定.数据驱动....),用数据驱动型 ...
- SSH Secure Shell Client最新版,解决Win10不兼容问题
SSH的工具很多,像XShell,SecureCRT等等. 不过我一直用的是:SSH Secure Shell Client 主要的原因就是: 软件本身带文件浏览的功能,可以通过拖拽去实现文件上传和下 ...
- metasploit联动beef启动
(温馨提示:请按照步骤来,否则beef到后面会启动不了) 我们首先进入vim /usr/share/beef-xss/config.yaml 找到metasploit把它改为启动 把false改为tr ...
- 2039: [2009国家集训队]employ人员雇佣
任意门 Description 作为一个富有经营头脑的富翁,小L决定从本国最优秀的经理中雇佣一些来经营自己的公司.这些经理相互之间合作有一个贡献指数,(我们用Ei,j表示i经理对j经理的了解程度),即 ...
- BZOJ 1316: 树上的询问 (点分治+set)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1316 因为只要求存在某条路径长度为K,所以点分,然后用set判断差值是否在set中就可以了. ...
- UnityShader 表面着色器简单例程集合
0.前言 这些简单的shader程序都是写于2015年的暑假.当时实验室空调坏了,30多个人在实验室中挥汗如雨,闷热中学习shader的日子还历历在目.这些文章闲置在我个人博客中,一年将过,师弟也到了 ...
- 改进ban冒泡排序
设置一标志性变量pos,用于记录每趟排序中最后一次进行交换的位置.由于pos位置之后的记录均已交换到位,故在进行下一趟排序时只要扫描到pos位置即可. //改进后算法如下: function bubb ...
- 用AngularJS实现对表格的增删改查(仅限前端)
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...