说明:servlet抽象集是javax.servlet.Servlet接口,它规定了必须由Servlet类实现由servlet引擎识别和管理的方法集。
方法:
方法名 | 参数 | 返回值 | 功能说明 |
---|---|---|---|
init | ServletConfit config | void | 在servlet被载入后和实施服务前由servlet引擎进行N次性调用。如果init()产生溢出UnavailableException,则 servle退出服务。 |
getServletConfig | – | ServletConfig | 返回传递到servlet的init()方法的ServletConfig对象 |
service | ServletRequest request, ServletResponse response | void | 处理request对象中描述的请求,使用response对象返回请求结果 |
getServletInfo | – | String | 返回描述servlet的一个字符串 |
destory | – | void | 当servlet将要卸载时由servlet引擎调用 |
说明:虽然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指定子类。
方法
方法名 | 参数 | 返回值 | 功能说明 |
---|---|---|---|
doGet | HttpServletRequest request,HttpServletResponse response | Void | 由servlet引擎调用用处理一个HTTP GET请求。输入参数、HTTP头标和输入流可从request对象、response头标和response对象的输出流中获得。 |
doPost | HttpServletRequest request,HttpServletResponse response | Void | 由servlet引擎调用用处理一个HTTP POST请求。输入参数、HTTP头标和输入流可从request对象、response头标和response对象的输出流中获得。 |
doPut | HttpServletRequest request,HttpServletResponse response | Void | 由servlet引擎调用用处理一个HTTP PUT请求。本方法中请求URI指出被载入的文件位置。 |
doDelete | HttpServletRequest request,HttpServletResponse response | Void | 由servlet引擎调用用处理一个HTTP DELETE请求。请求URI指出资源被删除。 |
doOptions | HttpServletRequest request,HttpServletResponse response | Void | 由servlet引擎调用用处理一个HTTP OPTIONS请求。返回一个Allow响应头标表明此servlet支持的HTTP方法。一个servlet不需要覆盖此方法,因为 HttpServlet方法已经实现规范所需的功能。 |
doTrace | HttpServletRequest request,HttpServletResponse response | Void | 由servlet引擎调用用处理一个HTTP TRACE请求。使得请求头标被反馈成响应关标。一个servlet不需要覆盖此方法,因为HttpServlet方法已经实现HTTP规范所需的功能。 |
service | HttpServletRequest request,HttpServletResponse response | Void | Service(Request request,Response response)调用的一个立即方法,带有指定HTTP请求和响应。此方法实际上将请求导向doGet()、doPost()等等。不应该覆盖此方法。 |
service | Request request,Response response | Void | 将请求和响应对象置入其指定的HTTP子类,并调用指定HTTP的service()方法。 |
说明:ServletRequest接口封装了客户端请求的细节。它与协议无关,并有一个指定HTTP的子接口。
ServletRequest主要处理:
1.找到客户端的主机名和IP地址
2.检索请求参数
3.取得和设置属性
4.取得输入和输出流
方法:
方法名 | 参数 | 返回值 | 功能说明 |
---|---|---|---|
getAttribute | String name | Object | 返回具有指定名字的请求属性,如果不存在则返回null。属性可由servlet引擎设置或使用setAttribute()显式加入。 |
getAttributeName | – | Enumeration | 返回请求中所有属性名的枚举。如果不存在属性,则返回一个空的枚举。 |
getCharacteEncoding | – | String | 返回请求所用的字符编码。 |
getContentLength | – | Int | 指定输入流的长度,如果未知则返回-1。 |
getInputStream | – | ServletInputStream | 返回与请求相关的(二进制)输入流。可以调用getInputStream()或getReader()方法之一。 |
getParameter | String name | String | 返回指定输入参数,如果不存在,返回null。 |
getParameterName | – | Enumeration | 返回请求中所有参数名的一个可能为空的枚举。 |
getParameterValues | String name | String[] | 返回指定输入参数名的取值数组,如果取值不存在则返回null。它在参数具有多个取值的情况下十分有用。 |
getProtocol | – | String | 返回请求使用协议的名称和版本。 |
getScheme | – | String | 返回请求URI的子串,但不包含第一个冒号前的内容。 |
getServerName | – | String | 返回处理请求的服务器的主机名。 |
getServerPort | – | String | 返回接收主机正在侦听的端口号。 |
getReader | – | BufferedReader | 返回与请求相关输入数据的一个字符解读器。此方法与getInputStream()只可分别调用,不能同时使用。 |
getRemoteAddr | – | String | 返回客户端主机的数字型IP地址。 |
getRemoteHost | – | String | 如果知道,返回客户端主机名。 |
setAttribute | String name,Object obj | void | 以指定名称保存请求中指定对象的引用。 |
removeAttribute | String name | void | 从请求中删除指定属性 |
getLocale | – | Locale | 如果已知,返回客户端的第一现场或者为null。 |
getLocales | – | Enumeration | 如果已知,返回客户端的第一现场的一个枚举,否则返回服务器第一现场。 |
isSecure | – | boolean | 如果请求使用了如HTTPS安全隧道,返回true |
getRequestDispatcher | String name | RequestDispatcher | 返回指定源名称的RequsetDispatcher对象。 |
说明:
HttpServletRequest类主要处理:
1.读取和写入HTTP头标
2.取得和设置cookies
3.取得路径信息
4.标识HTTP会话。
方法:
方法名 | 参数 | 返回值 | 功能说明 |
---|---|---|---|
getAuthType | – | String | 如果servlet由一个鉴定方案所保护,如HTTP基本鉴定,则返回方案名称。 |
getContextPath | – | String | 返回指定servlet上下文(web应用)的URL的前缀。 |
getCookies | – | Cookie[] | 返回与请求相关cookie的一个数组。 |
getDateHeader | String name | Long | 将输出转换成适合构建Date对象的long类型取值的getHeader()的简化版。 |
getHeader | String name | String | 返回指定的HTTP头标指。如果其由请求给出,则名字应为大小写不敏感。 |
getHeaderNames | – | Enumeration | 返回请求给出的所有HTTP头标名称的权举值。 |
getHeaders | String name | Enumeration | 返回请求给出的指定类型的所有HTTP头标的名称的枚举值,它对具有多取值的头标非常有用。 |
getIntHeader | String name | int | 将输出转换为int取值的getHeader()的简化版。 |
getMethod | – | String | 返回HTTP请求方法(例如GET、POST等等) |
getPathInfo | – | String | 返回在URL中指定的任意附加路径信息。 |
getPathTranslated | – | String | 返回在URL中指定的任意附加路径信息,被子转换成一个实际路径。 |
getQueryString | – | String | 返回查询字符串,即URL中?后面的部份。 |
getRemoteUser | – | String | 如果用户通过鉴定,返回远程用户名,否则为null。 |
getRequestedSessionId | – | String | 返回客户端的会话ID |
getRequestURI | – | String | 返回URL中一部分,从“/”开始,包括上下文,但不包括任意查询字符串。 |
getServletPath | – | String | 返回请求URI上下文后的子串 |
getSession | – | HttpSession | 调用getSession(true)的简化版。 |
getSession | boolean | HttpSession | 返回当前HTTP会话,如果不存在,则创建一个新的会话,create参数为true。 |
getPrincipal | – | Principal | 如果用户通过鉴定,返回代表当前用户的java.security.Principal对象,否则为null。 |
isRequestedSessionIdFromCookie | – | boolean | 如果请求的会话ID由一个Cookie对象提供,则返回true,否则为false。 |
isRequestedSessionIdFromURL | – | boolean | 如果请求的会话ID在请求URL中解码,返回true,否则为false |
isRequestedSessionIdValid | – | boolean | 如果客户端返回的会话ID仍然有效,则返回true。 |
isUserInRole | String role | Boolean | 如果当前已通过鉴定用户与指定角色相关,则返回true,如果不是或用户未通过鉴定,则返回false。 |
说明:ServletResponse对象将一个servlet生成的结果传到发出请求的客户端。ServletResponse操作主要是作为输出流及其内容类型和长度的包容器,它由servlet引擎创建.
方法
方法名 | 参数 | 返回值 | 功能说明 |
---|---|---|---|
flushBuffer | – | void | 发送缓存到客户端的输出内容。因为HTTP需要头标在内容前被发送,调用此方法发送状态行和响应头标,以确认请求。 |
getBufferSize | – | int | 返回响应使用的缓存大小。如果缓存无效则返加0。 |
getCharacterEncoding | – | String | 返回响应使用字符解码的名字。除非显式设置,否则为ISO-8859-1 |
getLocale | – | Locale | 返回响应使用的现场。除非用setLocale()修改,否则缺省为服务器现场。 |
getOutputStream | – | OutputStream | 返回用于将返回的二进制输出写入客户端的流,此方法和getWrite()方法二者只能调用其一。 |
getWriter | – | Writer | 返回用于将返回的文本输出写入客户端的一个字符写入器,此方法和getOutputStream()二者只能调用其一。 |
isCommitted | – | boolean | 如果状态和响应头标已经被发回客户端,则返回true,在响应被确认后发送响应头标毫无作用。 |
reset | – | void | 清除输出缓存及任何响应头标。如果响应已得到确认,则引发事件IllegalStateException。 |
setBufferSize | int nBytes | void | 设置响应的最小缓存大小。实际缓存大小可以更大,可以通过调用getBufferSize()得到。如果输出已被写入,则产生IllegalStateException。 |
setContentLength | int length | void | 设置内容体的长度。 |
setContentType | String type | void | 设置内容类型。在HTTP servlet中即设置Content-Type头标。 |
setLocale | Locale locale | void | 设置响应使用的现场。在HTTP servlet中,将对Content-Type头标取值产生影响。 |
说明:HttpServletResponse加入表示状态码、状态信息和响应头标的方法,它还负责对URL中写入一Web页面的HTTP会话ID进行解码。
方法:
方法名 | 参数 | 返回值 | 功能说明 |
---|---|---|---|
addCookie | Cookie cookie | void | 将一个Set-Cookie头标加入到响应。 |
addDateHeader | String name,long date | void | 使用指定日期值加入带有指定名字(或代换所有此名字头标)的响应头标的方法。 |
setHeader | String name,String value | void | 设置具有指定名字和取值的一个响应头标。 |
addIntHeader | String name,int value | void | 使用指定整型值加入带有指定名字的响应头标(或代换此名字的所有头标)。 |
containsHeader | String name | boolean | 如果响应已包含此名字的头标,则返回true。 |
encodeRedirectURL | String url | String | 如果客户端不知道接受cookid,则向URL加入会话ID。第一种形式只对在sendRedirect()中使用的URL进行调用。其他被编码的 URLs应被传递到encodeURL() |
encodeURL | String url | String | |
sendError | int status | void | 设置响应状态码为指定值(可选的状态信息)。HttpServleetResponse定义了一个完整的整数常量集合表示有效状态值。 |
sendError | int status,String msg | void | |
setStatus | int status | void | 设置响应状态码为指定指。只应用于不产生错误的响应,而错误响应使用sendError()。 |
说明:一个servlet上下文是servlet引擎提供用来服务于Web应用的接口。Servlet上下文具有名字(它属于Web应用的名字)唯一映射到文件系统的一个目录。 一个servlet可以通过ServletConfig对象的getServletContext()方法得到servlet上下文的引用,如果servlet直接或间接调用子类GenericServlet,则可以使用getServletContext()方法。
方法:
方法名 | 参数 | 返回值 | 功能说明 |
---|---|---|---|
getAttribute | String name | Object | 返回servlet上下文中具有指定名字的对象,或使用已指定名捆绑一个对象。从Web应用的标准观点看,这样的对象是全局对象,因为它们可以被同一 servlet在另一时刻访问。或上下文中任意其他servlet访问。 |
setAttribute | String name,Object obj | void | 设置servlet上下文中具有指定名字的对象。 |
getAttributeNames | Enumeration | 返回保存在servlet上下文中所有属性名字的枚举。 | |
getContext | String urlPath | ServletContext | 返回映射到另一URL的servlet上下文。在同一服务器中URL必须是以“/”开头的绝对路径。 |
getInitParameter | String name | String | 返回指定上下文范围的初始化参数值。此方法与ServletConfig方法名称不一样,后者只应用于已编码的指定servlet。此方法应用于上下文中所有的参数。 |
getInitParameterNames | – | Enumeration | 返回(可能为空)指定上下文范围的初始化参数值名字的枚举值。 |
getMajorVersion | – | int | 返回此上下文中支持servlet API级别的最大和最小版本号。 |
getMinorVersion | – | int | |
getMimeType | String fileName | String | 返回指定文件名的MIME类型。典型情况是基于文件扩展名,而不是文件本身的内容(它可以不必存在)。如果MIME类型未知,可以返回null。 |
getNameDispatcher | String name | RequestDispatcher | 返回具有指定名字或路径的servlet或JSP的RequestDispatcher。如果不能创建RequestDispatch,返回null。如果指定路径,必须心“/”开头,并且是相对于servlet上下文的顶部。 |
getNameDispatcher | String path | RequestDispatcher | |
getRealPath | String path | String | 给定一个URI,返回文件系统中URI对应的绝对路径。如果不能进行映射,返回null。 |
getResource | String path | URL | 返回相对于servlet上下文或读取URL的输入流的指定绝对路径相对应的URL,如果资源不存在则返回null。 |
getResourceAsStream | String path | InputStream | |
getServerInfo | String | 返顺servlet引擎的名称和版本号。 | |
log | String message | void | |
log | String message,Throwable t | void | 将一个消息写入servlet注册,如果给出Throwable参数,则包含栈轨迹。 |
removeAttribute | String name | void | 从servlet上下文中删除指定属性。 |
说明:HttpSession类似于哈希表的接口,它提供了setAttribute ()和getAttribute()方法存储和检索对象。HttpSession提供了一个会话ID关键字,一个参与会话行为的客户端在同一会话的请求中存储和返回它。servlet引擎查找适当的会话对象,并使之对当前请求可用。
方法:
方法名 | 参数 | 返回值 | 功能说明 |
---|---|---|---|
getAttribute | String name | Object | 将会话中一个对象保存为指定名字,返回或删除前面保存的此名称对象。 |
setAttribute | String name,Object value | void | |
removeAttribute | String name | void | |
getAttributeName | – | Enumeration | 返回捆绑到当前会话的所有属性名的枚举值。 |
getCreationTime | – | long | 返回表示会话创建和最后访问日期和时间的一个长整型,该整型形式为java.util.Date()构造器中使用的形式。 |
getLastAccessedTime | – | long | |
getId | – | String | 返回会话ID,servlet引擎设置的一个唯一关键字。 |
getMaxInactiveInterval | – | int | 如果没有与客户端发生交互,设置和返回会话存活的最大秒数。 |
setMasInactiveInterval | int seconds | void | |
invalidate | – | void | 使得会话被终止,释放其中任意对象。 |
isNew | – | boolean | 如果客户端仍未加入到会话,返回true。当会话首次被创建,会话ID被传入客户端,但客户端仍未进行包含此会话ID的第二次请示时,返回true。 |