ServletAPI.docx
- 文档编号:27213362
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:12
- 大小:21.08KB
ServletAPI.docx
《ServletAPI.docx》由会员分享,可在线阅读,更多相关《ServletAPI.docx(12页珍藏版)》请在冰豆网上搜索。
ServletAPI
一、javax.servlet.Servlet接口
servlet抽象集是javax.servlet.Servlet接口,它规定了必须由Servlet类实现由servlet引擎识别和管理的方法集。
Servlet接口的基本目标是提供生命期方法init()、service()和destroy()方法。
servlet接口中的方法
voidinit(ServletConfitconfig)throwsServletException在servlet被载入后和实施服务前由servlet引擎进行?
次性调用。
如果init()产生溢出UnavailableException,则servle退出服务。
ServletConfiggetServletConfig()返回传递到servlet的init()方法的ServletConfig对象
voidservice(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOException处理request对象中描述的请求,使用response对象返回请求结果
StringgetServletInfo()返回描述servlet的一个字符串
voiddestory()当servlet将要卸载时由servlet引擎调用
二、javax.servlet.GenericServlet类(协议无关版本)
GenericServlet是一种与协议无关的servlet,是一种跟本不对请求提供服务的servlet,而是简单地从init()方法启动后台线程并在destory()中杀死。
它可以用于模拟操作系统的端口监控进程。
servletAPI提供了Servlet接口的直接实现,称为GenericServlet。
此类提供除了service()方法外所有接口中方法的缺省实现。
这意味着通过简单地扩展GenericServlte可以编写一个基本的servlet。
除了Servlet接口外,GenericServlet也实现了ServletConfig接口,处理初始化参数和servlet上下文,提供对授权传递到init()方法中的ServletConfig对象的方法。
GenericServlet类中的方法
voiddestory()编飞组成单词“destory”的一个注册入口
StringgetInitParameter(Stringname)返回具有指定名称的初始化参数值。
通过凋用config.getInitParameter(name)实现。
EnumerationgetInitParameterNames()返回此serv]et已编码的所有初始化参数的?
个枚举类型值。
调用config.getInitParameterNames()获得列表。
如果未提供初始化参数,则返回?
个空的枚举类型值(但不是null)
ServletConfiggetServletConfig()返回传递到init()方法的ServletConfig对象
ServletContextgetServletContext()返回在config对象中引用的ServletContext
StringgetServletInfo()返回空字符串
voidinit(ServletConfigconfig)throwsServletException在一实例变量中保存config对象。
编写组成单词“init”的注册入口,然后调用方法init()
voidinit()throwsServletException可以被跳过以处理servlet初始化.在config对象被保存后init(ServletConfigconfig)的结尾处自动被调用.servlet作者经常会忘记调用super.init(config)
voidlog(Stringmsg)编写注册servlet的入口.为此调用servlet上下文的log()方法.servlet的名字被加到消息文本的开头。
voidlog(Stringmsg,Throwablet)编写一个入口和servlet注册的栈轨迹。
此方法也是ServletContext中相应方法的一个副本。
abstractvoidservice(Requestrequest,Responseresponse)throwsServletException,IOException由servlet引擎调用为请求对象描述的请求提供服务。
这是GenericServlet中唯一的抽象方法。
因此它也是唯一必须被子类所覆盖的方法。
StringgetServletName()返回在Web应用发布描述器(web.xml)中指定的servlet的名字。
三、javax.servlet.http.HttpServlet类(HTTP版本)
虽然servletAPI允许扩展到其它协议,但最终所有的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类中的方法
VoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException由servlet引擎调用用处理一个HTTPGET请求。
输入参数、HTTP头标和输入流可从request对象、response头标和response对象的输出流中获得。
VoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException由servlet引擎调用用处理一个HTTPPOST请求。
输入参数、HTTP头标和输入流可从request对象、response头标和response对象的输出流中获得。
VoiddoPut(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException由servlet引擎调用用处理一个HTTPPUT请求。
本方法中请求URI指出被载入的文件位置。
VoiddoDelete(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException由servlet引擎调用用处理一个HTTPDELETE请求。
请求URI指出资源被删除。
VoiddoOptions(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException由servlet引擎调用用处理一个HTTPOPTIONS请求。
返回一个Allow响应头标表明此servlet支持的HTTP方法。
一个servlet不需要覆盖此方法,因为HttpServlet方法已经实现规范所需的功能。
VoiddoTrace(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException由servlet引擎调用用处理一个HTTPTRACE请求。
使得请求头标被反馈成响应关标。
一个servlet不需要覆盖此方法,因为HttpServlet方法已经实现HTTP规范所需的功能。
Voidservice(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOExceptionService(Requestrequest,Responseresponse)调用的一个立即方法,带有指定HTTP请求和响应。
此方法实际上将请求导向doGet()、doPost()等等。
不应该覆盖此方法。
Voidservice(Requestrequest,Responseresponse)throwsServletException,IOException将请求和响应对象置入其指定的HTTP子类,并调用指定HTTP的service()方法。
四、javax.servlet.ServletRequest类(协议无关版本)
ServletRequest接口封装了客户端请求的细节。
它与协议无关,并有一个指定HTTP的子接口。
ServletRequest主要处理:
1.找到客户端的主机名和IP地址
2.检索请求参数
3.取得和设置属性
4.取得输入和输出流
ServletRequest类中的方法
ObjectgetAttribute(Stringname)返回具有指定名字的请求属性,如果不存在则返回null。
属性可由servlet引擎设置或使用setAttribute()显式加入。
EnumerationgetAttributeName()返回请求中所有属性名的枚举。
如果不存在属性,则返回一个空的枚举。
StringgetCharacteEncoding()返回请求所用的字符编码。
IntgetContentLength()指定输入流的长度,如果未知则返回-1。
ServletInputStreamgetInputStream()throwsIOException返回与请求相关的(二进制)输入流。
可以调用getInputStream()或getReader()方法之一。
StringgetParameter(Stringname)返回指定输入参数,如果不存在,返回null。
EnumerationgetParameterName()返回请求中所有参数名的一个可能为空的枚举。
String[]getParameterValues(Stringname)返回指定输入参数名的取值数组,如果取值不存在则返回null。
它在参数具有多个取值的情况下十分有用。
StringgetProtocol()返回请求使用协议的名称和版本。
StringgetScheme()返回请求URI的子串,但不包含第一个冒号前的内容。
StringgetServerName()返回处理请求的服务器的主机名。
StringgetServerPort()返回接收主机正在侦听的端口号。
BufferedReadergetReader()throwsIOException返回与请求相关输入数据的一个字符解读器。
此方法与getInputStream()只可分别调用,不能同时使用。
StringgetRemoteAddr()返回客户端主机的数字型IP地址。
StringgetRemoteHost()如果知道,返回客户端主机名。
voidsetAttribute(Stringname,Objectobj)以指定名称保存请求中指定对象的引用。
voidremoveAttribute(Stringname)从请求中删除指定属性
LocalegetLocale()如果已知,返回客户端的第一现场或者为null。
EnumerationgetLocales()如果已知,返回客户端的第一现场的一个枚举,否则返回服务器第一现场。
booleanisSecure()如果请求使用了如HTTPS安全隧道,返回true
RequestDispatchergetRequestDispatcher(Stringname)返回指定源名称的RequsetDispatcher对象。
Trackback:
五、javax.servlet.http.HttpServletRequest接口(HTTP版本)
HttpServletRequest类主要处理:
1.读取和写入HTTP头标
2.取得和设置cookies
3.取得路径信息
4.标识HTTP会话。
HttpServletRequest接口中的方法
StringgetAuthType()如果servlet由一个鉴定方案所保护,如HTTP基本鉴定,则返回方案名称。
StringgetContextPath()返回指定servlet上下文(web应用)的URL的前缀。
Cookie[]getCookies()返回与请求相关cookie的一个数组。
LonggetDateHeader(Stringname)将输出转换成适合构建Date对象的long类型取值的getHeader()的简化版。
StringgetHeader(Stringname)返回指定的HTTP头标指。
如果其由请求给出,则名字应为大小写不敏感。
EnumerationgetHeaderNames()返回请求给出的所有HTTP头标名称的权举值。
EnumerationgetHeaders(Stringname)返回请求给出的指定类型的所有HTTP头标的名称的枚举值,它对具有多取值的头标非常有用。
intgetIntHeader(Stringname)将输出转换为int取值的getHeader()的简化版。
StringgetMethod()返回HTTP请求方法(例如GET、POST等等)
StringgetPathInfo()返回在URL中指定的任意附加路径信息。
StringgetPathTranslated()返回在URL中指定的任意附加路径信息,被子转换成一个实际路径。
StringgetQueryString()返回查询字符串,即URL中?
后面的部份。
StringgetRemoteUser()如果用户通过鉴定,返回远程用户名,否则为null。
StringgetRequestedSessionId()返回客户端的会话ID
StringgetRequestURI()返回URL中一部分,从“/”开始,包括上下文,但不包括任意查询字符串。
StringgetServletPath()返回请求URI上下文后的子串
HttpSessiongetSession()调用getSession(true)的简化版。
HttpSessiongetSession(booleancreate)返回当前HTTP会话,如果不存在,则创建一个新的会话,create参数为true。
PrincipalgetPrincipal()如果用户通过鉴定,返回代表当前用户的java.security.Principal对象,否则为null。
booleanisRequestedSessionIdFromCookie()如果请求的会话ID由一个Cookie对象提供,则返回true,否则为false。
booleanisRequestedSessionIdFromURL()如果请求的会话ID在请求URL中解码,返回true,否则为false
booleanisRequestedSessionIdValid()如果客户端返回的会话ID仍然有效,则返回true。
BooleanisUserInRole(Stringrole)如果当前已通过鉴定用户与指定角色相关,则返回true,如果不是或用户未通过鉴定,则返回false。
六、javax.servlet.ServletResponse接口(协议无关版本)
ServletResponse对象将一个servlet生成的结果传到发出请求的客户端。
ServletResponse操作主要是作为输出流及其内容类型和长度的包容器,它由servlet引擎创建.
ServletResponse接口中的方法
voidflushBuffer()throwsIOException发送缓存到客户端的输出内容。
因为HTTP需要头标在内容前被发送,调用此方法发送状态行和响应头标,以确认请求。
intgetBufferSize()返回响应使用的缓存大小。
如果缓存无效则返加0。
StringgetCharacterEncoding()返回响应使用字符解码的名字。
除非显式设置,否则为ISO-8859-1
LocalegetLocale()返回响应使用的现场。
除非用setLocale()修改,否则缺省为服务器现场。
OutputStreamgetOutputStream()throwsIOException返回用于将返回的二进制输出写入客户端的流,此方法和getWrite()方法二者只能调用其一。
WritergetWriter()throwsIOException返回用于将返回的文本输出写入客户端的一个字符写入器,此方法和getOutputStream()二者只能调用其一。
booleanisCommitted()如果状态和响应头标已经被发回客户端,则返回true,在响应被确认后发送响应头标毫无作用。
voidreset()清除输出缓存及任何响应头标。
如果响应已得到确认,则引发事件IllegalStateException。
voidsetBufferSize(intnBytes)设置响应的最小缓存大小。
实际缓存大小可以更大,可以通过调用getBufferSize()得到。
如果输出已被写入,则产生IllegalStateException。
voidsetContentLength(intlength)设置内容体的长度。
voidsetContentType(Stringtype)设置内容类型。
在HTTPservlet中即设置Content-Type头标。
voidsetLocale(Localelocale)设置响应使用的现场。
在HTTPservlet中,将对Content-Type头标取值产生影响。
七、javax.servlet.http.HttpServletResponse接口(HTTP版本)
HttpServletResponse加入表示状态码、状态信息和响应头标的方法,它还负责对URL中写入一Web页面的HTTP会话ID进行解码。
HttpServletResponse接口中的方法
voidaddCookie(Cookiecookie)将一个Set-Cookie头标加入到响应。
voidaddDateHeader(Stringname,longdate)使用指定日期值加入带有指定名字(或代换所有此名字头标)的响应头标的方法。
voidsetHeader(Stringname,Stringvalue)设置具有指定名字和取值的一个响应头标。
voidaddIntHeader(Stringname,intvalue)使用指定整型值加入带有指定名字的响应头标(或代换此名字的所有头标)。
booleancontainsHeader(Stringname)如果响应已包含此名字的头标,则返回true。
StringencodeRedirectURL(Stringurl)如果客户端不知道接受cookid,则向URL加入会话ID。
第一种形式只对在sendRedirect()中使用的URL进行调用。
其他被编码的URLs应被传递到encodeURL()
StringencodeURL(Stringurl)
voidsendError(intstatus)设置响应状态码为指定值(可选的状态信息)。
HttpServleetResponse定义了一个完整的整数常量集合表示有效状态值。
voidsendError(intstatus,Stringmsg)
voidsetStatus(intstatus)设置响应状态码为指定指。
只应用于不产生错误的响应,而错误响应使用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接口中的方法
ObjectgetAttribute(Stringname)返回servlet上下文中具有指定名字的对象,或使用已指定名捆绑一个对象。
从Web应用的标准观点看,这样的对象是全局对象,因为它们可以被同一servlet在另一时刻访问。
或上下文中任意其他servlet访问。
voidsetAttribute(Stringname,Objectobj)设置servlet上下文中具有指定名字的对象。
EnumerationgetAttributeNames()返回保存在servlet上下文中所有属性名字的枚举。
ServletContextgetContext(Stringuripath)返回映射到另一URL的servlet上下文。
在同一服务器中URL必须是以“/”开头的绝对路径。
StringgetInitParameter(Stringname)返回指定上下文范围的初始化参数值。
此方法与ServletConfig方法名称不一样,后者只应用于已编码的指定servlet。
此方法应用于上下文中所有的参数。
EnumerationgetInitParameterNames()返回(可能为空)指定上下文范围的初始化参数值名字的枚举值。
intgetMajorVersion()返回此上下文中支持servletAPI级别的最大和最小版本号。
intgetMinorVersion()
StringgetMimeType(StringfileName)返回指定文件名的MIME类型。
典型情况是基于文件扩展名,而不是文件本身的内容(它可以不必存在)。
如果MIME类型未知,可以返回null。
RequestDispatchergetNa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ServletAPI
![提示](https://static.bdocx.com/images/bang_tan.gif)