《11servlet api中文版》由会员分享,可在线阅读,更多相关《11servlet api中文版(7页珍藏版)》请在金锄头文库上搜索。
1、Servlet API 中文版2008-03-04 12:03基本类和接口一、javax.servlet.Servlet接口servlet抽象集是javax.servlet.Servlet接口,它规定了必须由Servlet 类实现由servlet引擎识别和管理的方法集。Servlet接口的基本目标是提供生命期方法init()、service()和destroy() 方法。servlet接口中的方法 void init(ServletConfit config)throws ServletException 在servlet被载入后和实施服务前由servlet 引擎进 行一次性调用。如果init
2、()产生溢出UnavailableException,则 servle退出服务。 ServletConfig getServletConfig() 返回传递到servlet 的 init()方法的ServletConfig对象 void service(ServletRequest request, ServletResponse response)throws ServletException,IOException 处理request对象中描述的请求,使用response对象返回请求结果 String getServletInfo() 返回描述servlet的一个字符串 void dest
3、ory() 当servlet将要卸载时由servlet引擎调用 二、javax.servlet.GenericServlet类(协议无关版本)GenericServlet是一种与协议无关的servlet,是一种跟本不对请求提供服务的servlet,而是简单地从init()方法启动后台线程并在destory()中杀死。它可以用于模 拟操作系统的端口监控进程。servlet API提供了 Servlet接口的直接实现,称为GenericServlet。此类提供除了service()方法外所有接口中方法的缺省实现。这意味着通过简单地扩展GenericServlte可以编写一个基本的servlet 。
4、除了Servlet接口外,GenericServlet也实现了ServletConfig接口,处理初始化参数和servlet上下文,提供对授权传递到init()方法中的ServletConfig对象的方法。GenericServlet类中的方法 void destory() 编飞组成单词 “destory”的一个注册入口 String getInitParameter(String name) 返回具有指定名称的初始化参数值。通过凋用config.getInitParameter(name)实现。 Enumeration getInitParameterNames() 返回此servet已编码
5、的所有初始化参数的?个枚举类型值。调用config.getInitParameterNames()获得列表。如果未提供初始化参数,则返回?个空的枚举类型值(但不是null) ServletConfig getServletConfig() 返回传递到init()方法的ServletConfig对象 ServletContext getServletContext() 返回在config对象中引用的 ServletContext String getServletInfo() 返回空字符串 void init(ServletConfig config)throws ServletExceptio
6、n 在一实例变量中保存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,Thro
7、wable t) 编写一个入口和 servlet注册的栈轨迹。此方法也是ServletContext中相应方法的一个副本。 abstract void service(Request request,Response response)throws ServletException,IOException 由servlet引擎调用为请求对象描述的请求提供服务。这是GenericServlet中唯一的抽象方法。因此它也是唯一必须被子类所覆盖的方法。 String getServletName() 返回在Web 应用发布描述器(web.xml)中指定的servlet的名字。 三、javax.ser
8、vlet.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()和 do
9、Trace()方法,将请求和响应对象置入其HTTP指定子类。HttpServlet类中的方法 Void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException 由servlet引擎调用用处理一个HTTP GET请求。输入参数、HTTP头标和输入流可从request对象、response 头标 和response 对象的输出流中获得。Void doPost(HttpServletRequest request,HttpServletResponse resp
10、onse)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(Http
11、ServletRequest request,HttpServletResponse response)throws ServletException,IOException 由servlet 引擎调用用处理一个HTTP DELETE请求。请求URI指出资源被删除。 Void doOptions(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException 由servlet引擎调用用处理一个HTTP OPTIONS请求。返回一个Allow响应头标表明此servlet支持的H
12、TTP方法。一个servlet不需要覆盖此方法,因为 HttpServlet方法已经实现规范所需的功能。 Void doTrace(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException 由servlet 引擎调用用处 理一个HTTP TRACE请求。使得请求头标被反馈成响应关标。一个servlet不需要覆盖此方法,因为HttpServlet方法已经实现HTTP规范所需的功能。 Void service(HttpServletRequest request,HttpS
13、ervletResponse response)throws ServletException,IOException Service(Request request,Response response)调用的一个立即方法,带有指定HTTP请求和响应。此方法实际上将请求导向doGet()、doPost()等等。不应该覆盖此方法。 Void service(Request request,Response response)throws ServletException,IOException 将请求和响应对象置入其指定的HTTP子类,并调用指定HTTP的service() 方法。 四、java
14、x.servlet.ServletRequest类(协议无关版本)ServletRequest接口封装了客户端请求的细节。它与协议无关,并有一个指定HTTP的子接口。ServletRequest主要处理:1.找到客户端的主机名和IP地址2.检索请求参数3.取得和设置属性4.取得输入和输出流ServletRequest类中的方法 Object getAttribute(String name) 返回具有指定名字的请求属性,如果不存在则返回null。属性可由servlet引擎设置或使用setAttribute()显式加入。 Enumeration getAttributeName() 返回请求中所
15、有属性名的枚举。如果不存在属性,则返回一个空的枚举。 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() 返回请求使用协议的名称和