`
sunbin
  • 浏览: 352766 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

SERVLET类常用接口及方法

    博客分类:
  • jsp
阅读更多

 

 

 

基本类和接口
一、javax.servlet.Servlet接口
servlet抽象集是javax.servlet.Servlet接口,它规定了必须由Servlet类实现由

servlet引擎识别和管理的方法集。
Servlet接口的基本目标是提供生命期方法init()、service()和destroy()方法。
servlet接口中的方法       
void init(ServletConfit config)throws ServletException     在servlet被

载入后和实施服务前由servlet引擎进行?次性调用。如果init()产生溢出

UnavailableException,则 servle退出服务。       
ServletConfig getServletConfig()     返回传递到servlet的init()方法的

ServletConfig对象       
void service(ServletRequest request, ServletResponse response)throws

ServletException,IOException     处理request对象中描述的请求,使用

response对象返回请求结果       
String getServletInfo()         返回描述servlet的一个字符串       
void destory()         当servlet将要卸载时由servlet引擎调用     
二、javax.servlet.GenericServlet类(协议无关版本)
GenericServlet是一种与协议无关的servlet,是一种跟本不对请求提供服务的

servlet,而是简单地从init()方法启动后台线程并在destory()中杀死。它可以

用于模拟操作系统的端口监控进程。
servlet API提供了Servlet接口的直接实现,称为GenericServlet。此类提供除

了service()方法外所有接口中方法的缺省实现。这意味着通过简单地扩展

GenericServlte可以编写一个基本的servlet。
除了Servlet接口外,GenericServlet也实现了ServletConfig接口,处理初始化

参数和servlet上下文,提供对授权传递到init()方法中的ServletConfig对象的

方法。
GenericServlet类中的方法       
void destory()     编飞组成单词“destory”的一个注册入口       
String getInitParameter(String name)     返回具有指定名称的初始化参数值

。通过凋用config.getInitParameter(name)实现。       
Enumeration getInitParameterNames()     返回此serv]et已编码的所有初始化

参数的?个枚举类型值。调用config.getInitParameterNames()获得列表。如果未

提供 初始化参数,则返回?个空的枚举类型值(但不是null)       
ServletConfig getServletConfig()     返回传递到init()方法的

ServletConfig对象       
ServletContext getServletContext()     返回在config对象中引用的

ServletContext       
String getServletInfo()     返回空字符串       
void init(ServletConfig config)throws ServletException     在一实例变量

中保存config对象。编写组成单词“init”的注册入口,然后调用方法init()    

  
void init()throws ServletException     可以被跳过以处理servlet初始化.在

config对象被保存后init(ServletConfig config)的结尾处自动被调用.servlet

作者经常会忘记调用super.init(config)        
void log(String msg)     编写注册servlet的入口.为此调用servlet上下文的

log()方法.servlet的名字被加到消息文本的开头。       
void log(String msg,Throwable t)     编写一个入口和servlet注册的栈轨迹

。此方法也是ServletContext中相应方法的一个副本。       
abstract void service(Request request,Response response)throws

ServletException,IOException     由servlet引擎调用为请求对象描述的请求

提供服务。这是GenericServlet中唯一的抽象方法。因此它也是唯一必须被子类

所覆盖的方 法。       
String getServletName()     返回在Web应用发布描述器(web.xml)中指定的

servlet的名字。     
三、javax.servlet.http.HttpServlet类(HTTP版本)
虽然servlet API允许扩展到其它协议,但最终所有的servlet均在Web环境下实施

操作,只有几种servlet直接扩展了GenericServlet。对servlet更一般的是扩展

其HTTP子类HttpServlet。
HttpServlet类通过调用指定到HTTP请求方法的方法实现service(),亦即对

DELETE、HEAD、GET、OPTIONS、 POST、PUT和TRACE,分别调用doDelete()、

doHead()、doGet()、doOptions()、doPost()、 doPut()和doTrace()方法,将请

求和响应对象置入其HTTP指定子类。

 
HttpServlet类中的方法       
Void doGet(HttpServletRequest request,HttpServletResponse response)

throws ServletException,IOException     由servlet引擎调用用处理一个HTTP

GET请求。输入参数、HTTP头标和输入流可从request对象、response头标和

response对象的输出流中获得。       
Void doPost(HttpServletRequest request,HttpServletResponse response)

throws ServletException,IOException     由servlet引擎调用用处理一个HTTP

POST请求。输入参数、HTTP头标和输入流可从request对象、response头标和

response对象的输出流中获得。       
Void doPut(HttpServletRequest request,HttpServletResponse response)

throws ServletException,IOException     由servlet引擎调用用处理一个HTTP

PUT请求。本方法中请求URI指出被载入的文件位置。       
Void doDelete(HttpServletRequest request,HttpServletResponse response)

throws ServletException,IOException     由servlet引擎调用用处理一个HTTP

DELETE请求。请求URI指出资源被删除。       
Void doOptions(HttpServletRequest request,HttpServletResponse

response)throws ServletException,IOException     由servlet引擎调用用处

理一个HTTP OPTIONS请求。返回一个Allow响应头标表明此servlet支持的HTTP方

法。一个servlet不需要覆盖此方法,因为 HttpServlet方法已经实现规范所需的

功能。       
Void doTrace(HttpServletRequest request,HttpServletResponse response)

throws ServletException,IOException     由servlet引擎调用用处理一个HTTP

TRACE请求。使得请求头标被反馈成响应关标。一个servlet不需要覆盖此方法,

因为HttpServlet方法已经实现HTTP规范所需的功 能。       
Void service(HttpServletRequest request,HttpServletResponse response)

throws ServletException,IOException     Service(Request

request,Response response)调用的一个立即方法,带有指定HTTP请求和响应。

此方法实际上将请求导向doGet()、doPost()等等。不应该覆盖此方 法。       
Void service(Request request,Response response)throws

ServletException,IOException     将请求和响应对象置入其指定的HTTP子类,

并调用指定HTTP的service()方法。     
四、javax.servlet.ServletRequest类(协议无关版本)
ServletRequest接口封装了客户端请求的细节。它与协议无关,并有一个指定

HTTP的子接口。
ServletRequest主要处理:
1.找到客户端的主机名和IP地址
2.检索请求参数
3.取得和设置属性
4.取得输入和输出流

ServletRequest类中的方法       
Object getAttribute(String name)     返回具有指定名字的请求属性,如果不

存在则返回null。属性可由servlet引擎设置或使用setAttribute()显式加入。  

    
Enumeration getAttributeName()     返回请求中所有属性名的枚举。如果不存

在属性,则返回一个空的枚举。       
String getCharacteEncoding()     返回请求所用的字符编码。       
Int getContentLength()     指定输入流的长度,如果未知则返回-1。       
ServletInputStream getInputStream()throws IOException     返回与请求相

关的(二进制)输入流。可以调用getInputStream()或getReader()方法之一。  

    
String getParameter(String name)     返回指定输入参数,如果不存在,返回

null。       
Enumeration getParameterName()     返回请求中所有参数名的一个可能为空的

枚举。       
String[] getParameterValues(String name)     返回指定输入参数名的取值数

组,如果取值不存在则返回null。它在参数具有多个取值的情况下十分有用。   

   
String get Protocol()     返回请求使用协议的名称和版本。       
String getScheme()     返回请求URI的子串,但不包含第一个冒号前的内容。 

     
String getServerName()     返回处理请求的服务器的主机名。       
String getServerPort()     返回接收主机正在侦听的端口号。       
BufferedReader getReader()throws IOException     返回与请求相关输入数据

的一个字符解读器。此方法与getInputStream()只可分别调用,不能同时使用。 

     
String getRemoteAddr()     返回客户端主机的数字型IP地址。       
String getRemoteHost()     如果知道,返回客户端主机名。       
void setAttribute(String name,Object obj)     以指定名称保存请求中指定

对象的引用。       
void removeAttribute(String name)     从请求中删除指定属性       
Locale getLocale()     如果已知,返回客户端的第一现场或者为null。      

 
Enumeration getLocales()     如果已知,返回客户端的第一现场的一个枚举,

否则返回服务器第一现场。       
boolean isSecure()     如果请求使用了如HTTPS安全隧道,返回true       
RequestDispatcher getRequestDispatcher(String name)     返回指定源名称

的RequsetDispatcher对象。     
五、javax.servlet.http.HttpServletRequest接口(HTTP版本)
HttpServletRequest类主要处理:
1.读取和写入HTTP头标
2.取得和设置cookies
3.取得路径信息
4.标识HTTP会话。

HttpServletRequest接口中的方法       
String getAuthType()     如果servlet由一个鉴定方案所保护,如HTTP基本鉴

定,则返回方案名称。       
String getContextPath()     返回指定servlet上下文(web应用)的URL的前缀

。       
Cookie[] getCookies()     返回与请求相关cookie的一个数组。       
Long getDateHeader(String name)     将输出转换成适合构建Date对象的long

类型取值的getHeader()的简化版。       
String getHeader(String name)     返回指定的HTTP头标指。如果其由请求给

出,则名字应为大小写不敏感。       
Enumeration getHeaderNames()     返回请求给出的所有HTTP头标名称的权举值

。       
Enumeration getHeaders(String name)     返回请求给出的指定类型的所有

HTTP头标的名称的枚举值,它对具有多取值的头标非常有用。       
int getIntHeader(String name)     将输出转换为int取值的getHeader()的简

化版。       
String getMethod()     返回HTTP请求方法(例如GET、POST等等)       
String getPathInfo()     返回在URL中指定的任意附加路径信息。       
String getPathTranslated()     返回在URL中指定的任意附加路径信息,被子

转换成一个实际路径。       
String getQueryString()     返回查询字符串,即URL中?后面的部份。       
String getRemoteUser()     如果用户通过鉴定,返回远程用户名,否则为null

。       
String getRequestedSessionId()     返回客户端的会话ID       
String getRequestURI()     返回URL中一部分,从“/”开始,包括上下文,但

不包括任意查询字符串。       
String getServletPath()     返回请求URI上下文后的子串       
HttpSession getSession()     调用getSession(true)的简化版。       
HttpSession getSession(boolean create)     返回当前HTTP会话,如果不存在

,则创建一个新的会话,create参数为true。       
Principal getPrincipal()     如果用户通过鉴定,返回代表当前用户的

java.security.Principal对象,否则为null。        
 boolean isRequestedSessionIdFromCookie()     如果请求的会话ID由一个

Cookie对象提供,则返回true,否则为false。       
boolean isRequestedSessionIdFromURL()     如果请求的会话ID在请求URL中解

码,返回true,否则为false       
boolean isRequestedSessionIdValid()     如果客户端返回的会话ID仍然有效

,则返回true。       
Boolean isUserInRole(String role)     如果当前已通过鉴定用户与指定角色

相关,则返回true,如果不是或用户未通过鉴定,则返回false。     
六、javax.servlet.ServletResponse接口(协议无关版本)
ServletResponse对象将一个servlet生成的结果传到发出请求的客户端。

ServletResponse操作主要是作为输出流及其内容类型和长度的包容器,它由

servlet引擎创建.

ServletResponse接口中的方法       
void flushBuffer()throws IOException     发送缓存到客户端的输出内容。因

为HTTP需要头标在内容前被发送,调用此方法发送状态行和响应头标,以确认请

求。       
int getBufferSize()     返回响应使用的缓存大小。如果缓存无效则返加0。  

    
String getCharacterEncoding()     返回响应使用字符解码的名字。除非显式

设置,否则为ISO-8859-1       
Locale getLocale()     返回响应使用的现场。除非用setLocale()修改,否则

缺省为服务器现场。       
OutputStream getOutputStream()throws IOException     返回用于将返回的二

进制输出写入客户端的流,此方法和getWrite()方法二者只能调用其一。       
Writer getWriter()throws IOException     返回用于将返回的文本输出写入客

户端的一个字符写入器,此方法和getOutputStream()二者只能调用其一。      

 
boolean isCommitted()     如果状态和响应头标已经被发回客户端,则返回

true,在响应被确认后发送响应头标毫无作用。       
void reset()     清除输出缓存及任何响应头标。如果响应已得到确认,则引发

事件IllegalStateException。       
void setBufferSize(int nBytes)     设置响应的最小缓存大小。实际缓存大小

可以更大,可以通过调用getBufferSize()得到。如果输出已被写入,则产生

IllegalStateException。       
void setContentLength(int length)     设置内容体的长度。       
void setContentType(String type)     设置内容类型。在HTTP servlet中即设

置Content-Type头标。       
void setLocale(Locale locale)     设置响应使用的现场。在HTTP servlet中

,将对Content-Type头标取值产生影响。     
七、javax.servlet.http.HttpServletResponse接口(HTTP版本)
HttpServletResponse加入表示状态码、状态信息和响应头标的方法,它还负责对

URL中写入一Web页面的HTTP会话ID进行解码。

HttpServletResponse接口中的方法       
void addCookie(Cookie cookie)     将一个Set-Cookie头标加入到响应。     

 
void addDateHeader(String name,long date)     使用指定日期值加入带有指

定名字(或代换所有此名字头标)的响应头标的方法。       
void setHeader(String name,String value)     设置具有指定名字和取值的一

个响应头标。       
void addIntHeader(String name,int value)     使用指定整型值加入带有指定

名字的响应头标(或代换此名字的所有头标)。       
boolean containsHeader(String name)     如果响应已包含此名字的头标,则

返回true。       
String encodeRedirectURL(String url)     如果客户端不知道接受cookid,则

向URL加入会话ID。第一种形式只对在sendRedirect()中使用的URL进行调用。其

他被编码的 URLs应被传递到encodeURL()       
String encodeURL(String url)           
void sendError(int status)     设置响应状态码为指定值(可选的状态信息)

。HttpServleetResponse定义了一个完整的整数常量集合表示有效状态值。     

 
void sendError(int status,String msg)           
void setStatus(int status)     设置响应状态码为指定指。只应用于不产生错

误的响应,而错误响应使用sendError()。     
八、javax.servlet.ServletContext接口
一个servlet上下文是servlet引擎提供用来服务于Web应用的接口。Servlet上下

文具有名字(它属于Web应用的名字)唯一映射到文件系统的一个目录。
一个servlet可以通过ServletConfig对象的getServletContext()方法得到

servlet上下文的引用,如果servlet直接或间接调用子类GenericServlet,则可

以使用getServletContext()方法。
Web应用中servlet可以使用servlet上下文得到:
1.在调用期间保存和检索属性的功能,并与其他servlet共享这些属性。
2.读取Web应用中文件内容和其他静态资源的功能。
3.互相发送请求的方式。
4.记录错误和信息化消息的功能。

ServletContext接口中的方法       
Object getAttribute(String name)     返回servlet上下文中具有指定名字的

对象,或使用已指定名捆绑一个对象。从Web应用的标准观点看,这样的对象是全

局对象,因为它们可以被同一 servlet在另一时刻访问。或上下文中任意其他

servlet访问。       
void setAttribute(String name,Object obj)     设置servlet上下文中具有指

定名字的对象。       
Enumeration getAttributeNames()     返回保存在servlet上下文中所有属性名

字的枚举。       
ServletContext getContext(String uripath)     返回映射到另一URL的

servlet上下文。在同一服务器中URL必须是以“/”开头的绝对路径。       
String getInitParameter(String name)     返回指定上下文范围的初始化参数

值。此方法与ServletConfig方法名称不一样,后者只应用于已编码的指定

servlet。此方法应用于上下文中所有的参数。       
Enumeration getInitParameterNames()     返回(可能为空)指定上下文范围

的初始化参数值名字的枚举值。       
int getMajorVersion()     返回此上下文中支持servlet API级别的最大和最小

版本号。       
int getMinorVersion()           
String getMimeType(String fileName)     返回指定文件名的MIME类型。典型

情况是基于文件扩展名,而不是文件本身的内容(它可以不必存在)。如果MIME

类型未知,可以返回null。       
RequestDispatcher getNameDispatcher(String name)     返回具有指定名字或

路径的servlet或JSP的RequestDispatcher。如果不能创建RequestDispatch,返

回null。如 果指定路径,必须心“/”开头,并且是相对于servlet上下文的顶部

。       
RequestDispatcher getNameDispatcher(String path)           
String getRealPath(String path)     给定一个URI,返回文件系统中URI对应

的绝对路径。如果不能进行映射,返回null。       
URL getResource(String path)     返回相对于servlet上下文或读取URL的输入

流的指定绝对路径相对应的URL,如果资源不存在则返回null。       
InputStream getResourceAsStream(String path)           
String getServerInfo()     返顺servlet引擎的名称和版本号。       
void log(String message)
void log(String message,Throwable t)     将一个消息写入servlet注册,如

果给出Throwable参数,则包含栈轨迹。       
void removeAttribute(String name)     从servlet上下文中删除指定属性。  

  
九、javax.servlet.http.HttpSession接口
HttpSession类似于哈希表的接口,它提供了setAttribute()和getAttribute()方

法存储和检索对象。 HttpSession提供了一个会话ID关键字,一个参与会话行为

的客户端在同一会话的请求中存储和返回它。servlet引擎查找适当的会话对象,

并 使之对当前请求可用。

HttpSession接口中的方法       
Object getAttribute(String name)     将会话中一个对象保存为指定名字,返

回或删除前面保存的此名称对象。 void setAttribute(String name,Object

value)           
void removeAttribute(String name)           
Enumeration getAttributeName()     返回捆绑到当前会话的所有属性名的枚举

值。       
long getCreationTime()     返回表示会话创建和最后访问日期和时间的一个长

整型,该整型形式为java.util.Date()构造器中使用的形式。       
long getLastAccessedTime()           
String getId()     返回会话ID,servlet引擎设置的一个唯一关键字。       
ing getMaxInactiveInterval()     如果没有与客户端发生交互,设置和返回会

话存活的最大秒数。       
void setMasInactiveInterval(int seconds)           
void invalidate()     使得会话被终止,释放其中任意对象。       
boolean isNew()     如果客户端仍未加入到会话,返回true。当会话首次被创

建,会话ID被传入客户端,但客户端仍未进行包含此会话ID的第二次请示时,返

回true。
 
 

分享到:
评论

相关推荐

    servlet常用类接口

    ### Servlet常用类与接口 #### 一、Servlet接口 Servlet接口是Servlet规范中的核心部分,它定义了Servlet组件的行为和生命周期方法。一个典型的Servlet需要实现以下方法: 1. **init(ServletConfig config)**:...

    servlet常用接口

    Servlet接口是所有Servlet类的基础,它定义了Servlet的核心方法。主要包括: - `init(ServletConfig config)`: 初始化Servlet实例,服务器在部署Servlet时调用此方法,传入一个ServletConfig对象,用于获取Servlet...

    Servlet常用接口

    在这个主题中,我们将深入探讨Servlet接口及其常用方法,结合给定的"Servlet常用接口"标题和描述,我们可以提取以下几个关键知识点: 1. **Servlet接口**: Servlet接口是所有Servlet的基础,它定义了Servlet的...

    Servlet常用语法Demo

    本实例"Servlet常用语法Demo"旨在帮助初学者理解并掌握Servlet的基本用法和常见应用场景。 1. **Servlet生命周期** Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。当服务器启动或第一次接收到对Servlet...

    JSP应用开发-Servlet创建及常用方法.pptx

    JSP 应用开发 - Servlet 创建及常用方法 JSP 应用开发中,Servlet 是一个非常重要的组件,它是基于 Java 编程语言的 WEB 服务器端编程技术,运行在 WEB 服务器端,获得客户端的访问请求信息和动态生成对客户端的...

    servlet的三种方法的实现

    GenericServlet是Servlet接口的一个抽象类,它实现了Servlet接口中的所有方法。它提供了通用的、与协议无关的Servlet实现。通过继承GenericServlet,你可以覆盖`service()`方法来处理请求。这种方式比直接实现...

    Java Servlet应用程序接口查询Java.Servlet.API和SWT 应用程序接口查询SWT_API.rar

    `javax.servlet.Filter`接口定义了`doFilter()`方法,开发者可以通过实现这个方法来拦截和修改请求或响应。过滤器可以用于权限控制、内容编码转换、日志记录等多种场景。 监听器(Listeners)是Servlet API中的事件...

    JavaWeb开发技术-Servlet接口及其实现类.pptx

    除了Servlet接口,还有两个常用的Servlet实现类:GenericServlet和HttpServlet。 - GenericServlet是一个抽象类,它实现了Servlet接口。这个类提供了`service()`方法的默认实现,该方法会基于请求的类型调用`doGet...

    常用的包servlet-api

    这个包包含了Servlet API接口和类,使得开发者能够创建动态响应的Web应用程序。在描述中提到了`tomcat`,这是一款广泛应用的Java Web服务器,它内建了对Servlet的支持。`spring`框架同样与Servlet紧密相关,因为...

    SERVLET实验

    Java Servlet API包含一系列接口和类,如`HttpServlet`,`GenericServlet`,`ServletConfig`和`ServletContext`等。`HttpServlet`是Servlet的子接口,提供了处理HTTP请求的方法。 4. **注册Servlet**: Servlet...

    servlet-api源码包

    Servlet接口是所有Servlet类的基础,定义了服务HTTP请求的基本方法,如`service()`。通过实现Servlet接口,开发者可以创建自定义的HTTP服务器端程序。`init()`, `destroy()` 和 `getServletConfig()` 方法分别是...

    Servlet基础知识总结

    2. **继承GenericServlet类**:这是一个抽象类,实现了Servlet接口,提供了除了`service()`方法之外的所有方法的基本实现。 3. **继承HttpServlet类**:这是一个抽象类,继承自`GenericServlet`,为HTTP协议提供了...

    Servlet Tutorial

    Servlet API 提供了丰富的接口和类,例如 Servlet、GenericServlet、HttpServlet、ServletRequest、ServletResponse 等,用于开发 Web 组件。 2. Servlet 的定义: Servlet 可以从不同的角度进行描述: - 技术层面...

    jsp/servlet内置方法详解

    10. `Appendable append()` 系列方法:用于将字符或实现了CharSequence接口的对象追加到输出流的末尾,方便连续输出。 **二、HttpServletRequest对象** 在Servlet中,`HttpServletRequest`对象是服务器用来封装...

    达内servlet

    Tomcat作为最常用的Servlet容器,具有轻量级、高效和易于配置的特点。配置Servlet在Tomcat中通常涉及到修改`web.xml`部署描述符文件,定义Servlet类、URL映射以及初始化参数。 Servlet的使用涵盖了以下几个方面: 1...

    学习了servlet之后,将servlet全部整合在一个工具类中

    该工具类的目标是将Servlet的常用功能进行高度集成,以提高代码复用性和开发效率。以下是一些可能包含在这个工具类中的关键知识点: 1. **过滤器(Filter)**:在Servlet中,过滤器用于拦截请求和响应,执行预处理...

    servlet,实现方法 后台分页

    在Java Web开发中,Servlet是一种常用的服务器端编程接口,用于处理HTTP请求并生成响应。本文将深入探讨如何利用Servlet实现后台分页功能,这在大数据量的Web应用中尤为重要,可以提高用户界面的响应速度和用户体验...

Global site tag (gtag.js) - Google Analytics