Java+servletapi应用文档.docx

上传人:b****2 文档编号:3278377 上传时间:2023-05-05 格式:DOCX 页数:30 大小:53.55KB
下载 相关 举报
Java+servletapi应用文档.docx_第1页
第1页 / 共30页
Java+servletapi应用文档.docx_第2页
第2页 / 共30页
Java+servletapi应用文档.docx_第3页
第3页 / 共30页
Java+servletapi应用文档.docx_第4页
第4页 / 共30页
Java+servletapi应用文档.docx_第5页
第5页 / 共30页
Java+servletapi应用文档.docx_第6页
第6页 / 共30页
Java+servletapi应用文档.docx_第7页
第7页 / 共30页
Java+servletapi应用文档.docx_第8页
第8页 / 共30页
Java+servletapi应用文档.docx_第9页
第9页 / 共30页
Java+servletapi应用文档.docx_第10页
第10页 / 共30页
Java+servletapi应用文档.docx_第11页
第11页 / 共30页
Java+servletapi应用文档.docx_第12页
第12页 / 共30页
Java+servletapi应用文档.docx_第13页
第13页 / 共30页
Java+servletapi应用文档.docx_第14页
第14页 / 共30页
Java+servletapi应用文档.docx_第15页
第15页 / 共30页
Java+servletapi应用文档.docx_第16页
第16页 / 共30页
Java+servletapi应用文档.docx_第17页
第17页 / 共30页
Java+servletapi应用文档.docx_第18页
第18页 / 共30页
Java+servletapi应用文档.docx_第19页
第19页 / 共30页
Java+servletapi应用文档.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Java+servletapi应用文档.docx

《Java+servletapi应用文档.docx》由会员分享,可在线阅读,更多相关《Java+servletapi应用文档.docx(30页珍藏版)》请在冰点文库上搜索。

Java+servletapi应用文档.docx

Java+servletapi应用文档

servlet-api的基本类和其接口介绍

JavaServletAPI的组成

ServletAPI被分成两个软件包:

javax.servlet-不对应HTTP的通用的软件包和javax.servlet.http-对应HTTP的软件包。

这两个软件包的同时存在使得JavaServletAPI能够适应将来的其他请求-响应的协议。

API包含了两个软件包,十二个接口和九个类。

类别

javax.servlet

javax.servlet.http

通用

Servlet接口, 

GenericServlet类,

ServletException类,

UnavailabeException类

HttpServlet类

环境

Config,

ServletConfig接口,

ServletContext接口,

ServletContextAttributesListener

ServletContextListener

ServletContextAttributeEvent

ServletContextEvent

Cookie类

HttpUtils类

请求

ServletRequest接口

ServletRequestWrapper

ServletInputStream类

HttpServletRequest接口

HttpServletRequestWrapper

响应

ServletResponse接口

ServletResponseWrapper

ServletOutputStream类

HttpServletResponse接口

HttpServletResponseWrapper

会话

HttpSession接口

HttpSessionAttributesListener接口

HttpSessionBindingListener接口

HttpSessionListener

HttpSessionBindingEvent类

HttpSessionEvent

HttpSessionContext接口

杂项

Filter

FilerConfig

RequestDispatcher接口

SingleThreadModel接口

JavaTMservlets是一个不受平台约束的Java小程序,它可以被用来通过多种方法扩充一个Web服务器的功能。

Server被编译成字节码,动态地载入并用效地扩展主机的处理能力。

Servlet通过servlet引擎运行在Web服务器中,以执行请求和响应,请求、响应的典型范例是HTTP协议

 

Servlet实例的继承图

 

Javax.servlet包

javax.servlet.Servlet接口

servlet抽象集是javax.servlet.Servlet接口,它规定了必须由Servlet类实现由servlet引擎识别和管理的方法集。

Servlet接口的基本目标是提供生命期方法init()、service()和destroy()方法。

servlet接口中的方法

voidinit(ServletConfigconfig)throwsServletException

在servlet被载入后和实施服务前由servlet引擎进行?

次性调用。

如果init()产生溢出UnavailableException,则servle退出服务。

ServletConfiggetServletConfig()

返回传递到servlet的init()方法的ServletConfig对象

voidservice(ServletRequestrequest,

ServletResponseresponse) 

throws ServletException,IOException

处理request对象中描述的请求,使用response对象返回请求结果

StringgetServletInfo()

返回描述servlet的一个字符串

voiddestory()

当servlet将要卸载时由servlet引擎调用

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对象。

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.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。

RequestDispatchergetNameDispatcher(Stringname)

返回具有指定名字或路径的servlet或JSP的RequestDispatcher。

如果不能创建RequestDispatch,返回null。

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

RequestDispatchergetNameDispatcher(Stringpath)

StringgetRealPath(Stringpath)

给定一个URI,返回文件系统中URI对应的绝对路径。

如果不能进行映射,返回null。

URLgetResource(Stringpath)

返回相对于servlet上下文或读取URL的输入流的指定绝对路径相对应的URL,如果资源不存在则返回null。

InputStreamgetResourceAsStream(Stringpath)

StringgetServerInfo()

返顺servlet引擎的名称和版本号。

voidlog(Stringmessage)

voidlog(Stringmessage,Throwablet)

将一个消息写入servlet注册,如果给出Throwable参数,则包含栈轨迹。

voidremoveAttribute(Stringname)

从servlet上下文中删除指定属性。

javax.servlet.ServletConfig接口

这个接口定义了一个对象,通过这个对象,Servlet引擎配置一个Servlet并且允许Servlet获得一个有关它的ServletContext接口的说明。

每一个ServletConfig对象对应着一个唯一的Servlet。

publicinterfaceServletConfig的方法

publicStringgetInitParameter(Stringname);

这个方法返回一个包含Servlet指定的初始化参数的String。

如果这个参数不存在,返加空值。

publicEnumerationgetInitParameterNames();

这个方法返回一个列表String对象,该对象包括Servlet的所有初始化参数名。

如果Servlet没有初始化参数,getInitParameterNames返回一个空的列表。

publicServletContextgetServletContext();

返回这个Servlet的ServletContext对象。

RequestDispatcher接口

定义一个对象,从客户端接收请求,然后将它发给服务器的可用资源(例如Servlet、CGI、HTML文件、JSP文件)。

Servlet引擎创建requestdispatcher对象,用于封装由一个特定的URL定义的服务器资源。

这个接口是专用于封装Servlet的,但是一个Servlet引擎可以创建requestdispatcher对象用于封装任何类型的资源。

requestdispatcher对象是由Servlet引擎建立的,而不是由Servlet开发者建立的。

publicinterfaceRequestDispatcher接口中的方法

publicvoidforward(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOException

被用来从这个Servlet向其它服务器资源传递请求。

当一个Servlet对响应作了初步的处理,并要求其它的对象对此做出响应时,可以使用这个方法。

当request对象被传递到目标对象时,请求的URL路径和其他路径参数会被调整为反映目标对象的目标URL路径。

如果已经通过响应返回了一个ServletOutputStream对象或PrintWriter对象,这个方法将不能使用,否则,这个方法会抛出一个IllegalStateException。

publicvoidinclude(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOException

用来包括发送给其他服务器资源的响应的内容。

本质上来说,这个方法反映了服务器端的内容。

请求对象传到目标对象后会反映调用请求的请求URL路径和路径信息。

这个响应对象只能调用这个Servlet的ServletOutputStream对象和PrintWriter对象。

一个调用include的Servlet不能设置头域,如果这个Servlet调用了必须设置头域的方法(例如cookie),这个方法将不能保证正常使用。

作为一个Servlet开发者,你必须妥善地解决那些可能直接存储头域的方法。

例如,即使你使用会话跟踪,为了保证session的正常工作,你必须在一个调用include的Servlet之外开始你的session

javax.servlet.GenericServlet类(协议无关版本)

GenericServlet是一种与协议无关的servlet,是一种跟本不对请求提供服务的servlet,而是简单地从init()方法启动后台线程并在destory()中杀死。

它可以用于模拟操作系统的端口监控进程。

servletAPI提供了Servlet接口的直接实现,称为GenericServlet。

此类提供除了service()方法外所有接口中方法的缺省实现。

这意味着通过简单地扩展GenericServlte可以编写一个基本的servlet。

除了Servlet接口外,GenericServlet也实现了ServletConfig接口,处理初始化参数和servlet上下文,提供对授权传递到init()方法中的ServletConfig对象的方法。

GenericServlet类中的方法

voiddestory()

编写注册servlet“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.ServletInputStream类(协议无关版本)

这个类定义了一个用来读取客户端的请求信息的输入流。

这是一个Servlet引擎提供的抽象类。

一个Servlet通过使用ServletRequest接口获得了对一个ServletInputStream对象的说明。

这个类的子类必须提供一个从InputStream接口读取有关信息的方法。

publicabstractclassServletInputStream

extendsInputStream的方法

publicintreadLine(byte[]b,intoff,intlen)

throwsIOException;

从输入流的指定的偏移量开始将指定长度的字节读入到指定的数组中。

如果该行所有请求的内容都已被读取,这个读取的过程将结束。

如果是遇到了新的一行,新的一行的首个字符也将被读入到数组中。

javax.servlet.ServletOutputStream类(协议无关版本)

这是一个由Servlet引擎使用的抽象类。

Servlet通过使用ServletResponse接口的使用获得了对一个这种类型的对象的说明。

利用这个输出流可以将数据返回到客户端。

这个类的子类必须提供一个向OutputStream接口写入有关信息的方法。

在这个接口中,当一个刷新或关闭的方法被调用时。

所有数据缓冲区的信息将会被发送到客户端,也就是说响应被提交了。

请注意,关闭这种类型的对象时不一定要关闭隐含的socket流。

publicabstractclassServletOutputStream

extendsOut

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2