`

Servlet Inteface and Method

阅读更多
Servlet API 主要由 javax.servlet 和 javax.servlet.http 两个包组成。

在javax.servlet包中定义了Servlet接口及相关的通用和类

在javax.servlet.http包中主要定义了与HTTP协议相关的 HttpServlet类、HttpServletRequest接口和HttpServletResponse接口

Servlet API的核心是java.servlet.Servlet接口,所有的Servlet类都必须 实现 这一接口。
Servlet接口中定义了5个方法,其中有3个方法都由Servlet容器来调用
	这3个方法是:
	init(ServletConfig config):容器创建Servlet对象后会调用init方法初始化Servlet对象
	service(ServletRequest arg1,ServletResponse arg2):当容器收到客户端请求,访问特定的Servlet对象时,调用该Servlet对象的service()方法
	destroy():当Servlet对象结束生命周期时调用destroy()释放Servlet对象占用的资源
	还有两个方法:
	getServletConfig()返回一个ServletConfig对象,包含Servlet初始化信息
	getServletInfo()返回一个字符串,包含了Servlet的创建者、版本和版权的信息

javax.servlet.GenericServlet抽象类 实现 了Servlet接口,还实现了ServletConfig接口和Serializable接口。
javax.servlet.GenericServlet抽象类没有实现Servlet接口的service()方法,service()方法是GenericServlet抽象类中唯一的抽象方法,所以GenericServlet抽象类的子类必须实现service()方法
由于GenericServlet抽象类实现了ServletConfig接口,因此,GenericServlet抽象类的子类可以直接调用在ServletConfig接口中定义的getServletContext()、getInitParameter()、getInitParameterNames()等方法

javax.servlet.http.HttpServlet抽象类是 GenericServlet抽象类的 子类 


所以开发自己的Servlet类时,可以选择扩展GenericServlet类或者HttpServlet类


ServletRequest接口提供了一系列用于读取客户端请求数据的方法:
	getContentLength()返回请求正文的长度。如果请求正文的长度未知,则返回-1
	getContentType()获得请求正文的MIME类型。如果请求正文的类型未知,返回null
	getInputStream()返回用于读取请求正文的输入流
	getLocalAddr()返回服务器端IP
	getLocalName()返回服务器端主机名
	getLocalPort()返回服务器端端口号
	getParameter(String name)返回客户端请求中的匹配的请求参数值
	getProtocol()返回客户端与服务器端通信所用的协议的名称和版本号
	getReader()返回用于读取字符串形式的请求正文的BufferedReader对象
	getRemoteAddr()返回客户端IP
	getRemoteHost()返回客户端主机名
	getRemotePort()返回客户端端口号
	此外,ServletRequest接口还定义了一组用于 在 请求范围内 存取 共享 数据的方法
	*setAttribute(String name,Object object)在请求范围内保存一个属性 name是属性名 object是属性值
	*getAttribute(String name)在请求范围内获取一个属性的匹配属性值
	*removeAttribute(String name)从请求范围内删除一个属性
ServletResponse接口中定义了一系列与生成响应结果相关的方法
	setCharacterEncoding(String charset)设置响应正文的字符编码,默认为ISO-8859-1
	setContentLenght(int Len)设置响应正文的长度
	setContentType(String type)设置响应正文的MIME类型
	getCharacterEncondig()返回响应正文的字符编码
	getContentType()返回响应正文的MIME类型
	setBufferSize(int size)设置用于存放响应正文数据的缓冲区大小
	getBufferSize()返回用于存放响应正文数据的缓冲区大小
	reset()清空缓冲区内的正文数据,并且清空响应状态代码及响应头
	resetBuffer()仅仅清空缓冲区内的正文数据
	flushBuffer()强制性的把缓冲区内的响应正文数据发送到客户端
	isComitted()缓冲区内的数据是否已经提交给客户端,如果是 返回 true
	getOutputStream()返回一个ServletOutputStream对象,Servlet用它来输出二进制的正文数据
	getWriter()返回一个PrintWriter对象,Servlet用它来输出字符串形式的正文数据

HttpServletRequest接口是ServletRequest的子接口(子类),提供了用于读取HTTP请求中的相关信息的方法
	getContextPath()返回客户端请求访问的web应用的URL入口
	getCookies()返回HTTP请求中的所有Cookie
	getHeader(String name)返回HTTP请求的头部的特定项
	getHeaderNames()返回一个Enumeration对象,它包含了HTTP请求头部的所有项目名
	getMethod()返回HTTP请求方式
	getRequestURI()返回HTTP请求的头部的第1行中的URI
	getQueryString()返回HTTP请求中的查询字符串,即URL中的“?”后面的内容
HttpServletResponse接口是ServletResponse接口的子接口(子类),提供了与HTTP协议相关的一些方法,来设置HTTP响应头或向客户端写Cookie
	addHeader(String name,String value)向HTTP响应头中加入一项内容
	sendError(int sc)向客户端发送一个代表特定错误的HTTP响应状态代码
	sendError(int sc,String msg)向客户端发送一个代表特定错误的HTTP应状态代码,并且发送具体的错误消息
	setHeader(String name,String value)设置HTTP响应头中的一项内容。如果响应头中已经存在这项内容,就将其覆盖
	setStatus(int sc)设置HTTP响应的状态代码
	addCookie(Cookie cookie)向HTTP响应中加入一个Cookie
	
ServletConfig接口
	getInitParameter(String name)根据给定的初始化参数名,返回匹配的初始化参数值
	getInitParameterNames()返回一个Enumeration对象,里面包含了所有的初始化参数名
	getServletContext()返回一个ServletContext对象
	getServletName()返回Servlet的名字,即web.xml中<servlet-name>子元素的值

ServletContext接口,是Servlet与Servlet容器之间直接通信的接口。Servlet容器在启动一个Web应用时,会为它创建一个ServletContext对象,每个web应用都有唯一的ServletContext对象。
ServletContext接口提供的方法分为以下几种类型
(1)在web应用范围内存取共享数据的方法
	setAttribute(String name,Object object)把一个对象与一个属性名绑定,并存放到ServletContext中
	getAttribute(String name)根据属性名返回匹配的属性值
	getAttributeNames()返回一个Enumeration对象,该对象包含了所有存放在ServletContext对象中的属性名
	removeAttribute(String name)根据属性名,从ServletContext中删除匹配的属性
(2)访问当前web应用的资源
	getContextPath()返回当前应用的URL入口
	getInitParameter(String name)根据给定的参数名,返回web应用范围内的匹配的初始化参数值
	getInitParameterNames()返回一个Enumeration对象,它包含了web应用范围内的所有初始化参数名
	getServletContextName()返回web应用的名字,即web.xml中<display-name>元素的值 
	getRequestDispatcher(String path)返回一个用于向其它web组件转发请求的RequestDispatcher对象
(3)访问Servlet容器中的其它web应用
	getContext(String uripath)根据参数指定的RUI返回当前Servlet容器中其它web应用的ServletContext对象
(4)访问Servlet容器的相关信息
	getMajorVersion()返回Servlet容器支持的JAVA Sservlet API主版本号
	getMinorVersion()返回Servlet容器支持的JAVA Sservlet API主版次号
	getServerInfo()返回Servlet容器的名字和版本
(5)访问服务器端的文件系统资源
	getRealPath(String path)根据参数指定的虚拟路径,返回文件系统中的一个真实的路径
	getResource(String path)返回一个映射到参数指定路径的RUL
	getResourceAsStream(String path)返回一个用于读取参数指定的文件输入流
	getMimeType(String file)返回参数指定的文件的MIME类型
(6)输出日志
	log(String msg)向Servlet的日志中写日志
	

 

0
2
分享到:
评论

相关推荐

    PIPE4: PHY inteface for Pcie

    标题“PIPE4: PHY inteface for Pcie”和描述“Intel PHY Inteface spec 4.4, 适用于与PCIe,SATA,USB芯片开发”表明,本文将集中讨论Intel公司发布的第4.4版本的PHY(物理层)接口规范,该规范专门用于PCI Express...

    IOU WEB INTERFACE ON CENTOS安装指南

    相信有很多朋友试过在自己的Linux系统上安装iou-web,但是会发现在自己的系统上安装时会遇到很多问题,比如设备启动不了、Web界面登陆不了、设备互相ping不通等等。经过自己的亲身实践加上iou-web作者的细心答疑,现...

    JNI(Java Native Interface)中文手册

    ### JNI(Java Native Interface)中文手册关键知识点解析 #### 一、前言及背景 JNI(Java Native Interface)是Sun Microsystems公司定义的一套标准接口,用于实现Java代码与本地代码(通常是C或C++)之间的交互。...

    dialogs-1.22.jar

    dispatching submit event to a method, generating and storing error messages and rendering a view. DialogAction allows to create robust user inteface, which can withstand Refresh, Back and Forward ...

    JNI(java native interface) 简体中文+英文版

    JNI(java native interface) 简体中文:do.chuan@gmail.com 翻译版 英文版:Addison.Wesley.Java.Native Interface 希望对大家有帮助...

    Audio Serial Interface Configurations for Audio Codecs.pdf

    and/or audio converters. These data are typically encoded in PCM twos complement format, although other format variations may be possible to achieve companding for lower data rate transfers. Audio ...

    10-card--Speed-reading-With-count-display-june-2._Speed Reading_

    adc inteface through c8051 contoller

    ADB Interface

    驱动信息:Android手机驱动 驱动类别:androidusbdeviceclass 发布厂商:Invisibility Ltd 发布日期:2012-08-27 版本:7.0.0000.00005 驱动说明: Android手机驱动7.0.0000.00005版

    inject.cpp.x64_86.so:在x64_86平台上挂钩共享库和虚拟对象的调用

    这是用于x64_86共享库和主代码之间的外观和更改调用的库。 您还可以将对象与虚拟对象(vtable)挂钩 ...lib.h - define inteface of test library lib.cpp - realisation of test library main.cpp - usage test li

    ROMaster ADB Interface.zip

    ROMaster ADB Interface.zip 是一个专门针对安卓设备的ADB(Android Debug Bridge)调试USB驱动程序的压缩包。这个工具主要用于帮助用户在电脑上通过USB连接安卓设备进行调试、日志抓取、安装应用等操作。...

    详解如何使用Android Studio 进行NDK开发和调试

    JNI 是Java Native Inteface的缩写,是Java中定义的一种用于连接Java和C/C++接口的一种实现方式。 NDK NDK 是 Native Developmentit的缩写,是Google在Android开发中提供的一套用于快速创建native工程的一个工具。 ...

    svn-server-web-interface:Linux 中的 svn-server-web-interface

    svn 服务器网页界面 描述 svn 服务器 Web 界面是一个简单的 Web 应用程序,使用 AngularJS、Bootstrap、Node.js、Restfull Api 和 shell 命令构建 安装并运行 $ npm install -g svn-server-web-interface ...

    fanuc robot interfaceV3.0.rar

    《Fanuc机器人接口V3.0详解》 在自动化领域,Fanuc机器人以其高效、精准和可靠的特性,广泛应用于各种工业生产中。其中,Robot Interface(简称RI)是连接Fanuc机器人与上位机系统的关键组件,使得机器人能与外部...

    常见视频接口(HDMIVGASDICmaeraLink)介绍

    常见视频接口(HDMI/VGA/SDI/CmaeraLink)介绍 ...一为DVI-I(Inteface,通用接口可通过转接头兼容VGA信号)接口,可同时兼容模拟(其可以通过一个DVI-I转VGA转接头实现模拟信号的输出)和数字信号。

    vim-merginal, 用于管理和合并Git分支的逃犯扩展.zip

    vim-merginal, 用于管理和合并Git分支的逃犯扩展 简介Merginal为处理Git分支提供了一个不错的inteface 。 它提供交互式的TUI用于:查看分支列表从该列表签出分支创建新分支删除分支合并分支分支分支解决合并冲突遥控...

    autoware_ros:autoware原始代码注释解析,会进行一些顺手的代码修改

    【标题】: "Autoware ROS: 深入理解Autoware原始代码注释与修改指南" 在本文中,我们将深入探讨Autoware ROS,一个开放源代码的自动驾驶软件平台,专注于其代码结构、核心功能以及如何进行代码注释解析和修改。...

    JNI编程指南(文字清晰版)

    4. **调用Java方法**:通过`JNIEnv`提供的`Call*Method`系列函数,本地代码可以调用Java对象的方法,包括实例方法、静态方法和接口方法。 5. **访问Java对象和数组**:JNI提供了丰富的API,允许本地代码访问Java...

    Go语言使用sort包对任意类型元素的集合进行排序的方法

    使用sort包的函数进行排序时,集合需要实现sort.Inteface接口,该接口中有三个方法: 代码如下:// Len is the number of elements in the collection.  Len() int  // Less reports whether the element with  /...

    DP-SW:使用SWD接口对stm32系列编程

    DP-SW使用SWD接口对stm32系列编程swd.c 包括了SWD硬件IO口的初始化SWD时序模拟(时钟,写1字节,读一字节)等swd.h 包括了...实现所有寄存器的读写以及内存擦写参考 SWD_Debug 函数详细协议参考ARM Debug Inteface文档

Global site tag (gtag.js) - Google Analytics