`
virusfu
  • 浏览: 182956 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

基本的servlet API

阅读更多

一、基本的servlet API
JavaEE关于Servlet的API主要有两个包:javax.servlet和javax.servlet.http。前者主要提供了Web容器能够使用的servlet基本类和接口,后者主要包括和HTTP协议相关的servlet类和接口。对servlet的编程,主要是根据需要,继承这些类实现需要的功能。

javax.servlet包和javax.servlet.http包的类和接口主要分以下几类:
1.servlet基本类
javax.servlet.Servlet
javax.servlet.http.HttpServlet
javax.servlet.SingleThreadModel
javax.servlet.GenericServlet
这些是servlet程序需要直接或间接继承的抽象类和接口。SingleThreadModel接口可以保证servlet在同一时间只处理一个客户请求。
2.Web请求和响应类
javax.servlet.ServletRequest
javax.servlet.ServletResponse
javax.servlet.ServletInputStream
javax.servlet.ServletOutputStream
javax.servlet.HttpServletRequest
javax.servlet.HttpServletResponse
3.和Web容器联系
javax.servlet.ServletConfig
ServletConfig接口使Web容器在servlet初始化时(一般是web服务器启动并载入Web应用时)能够和servlet进行联系。 Servlet可以通过该接口取得初始变量和servlet名称等。
4.和Web应用联系
javax.servlet.ServletContext
这个接口是Servlet和Web应用进行连接,使用servlet和Web程序在运行时能够传递数据。Servlet之间也可以通过这个接口共享数据。 ServletContext是包含在ServletConfig中的,它和ServletConfig的主要不同是:ServletContext有更多方法,主要是在servlet运行时使用,而ServletConfig主要是在servlet启动时从Web容器中得到。
5.和其他Web资源的共同作用
javax.servlet.http.RequestDispatcher
RequestDispather支持servlet和JSP,其他servlet或Web资源之间的调用。这样当servlet需要引入其他 servlet、JSP或HTML内容时,可以更灵活地控制它们之间的逻辑关系。
6.错误异常类
javax.servlet.ServletException
javax.servlet.UnavailableException
7.其他附属类
javax.servlet.http.HttpUtils
javax.servlet.http.Cookie
前者提供servlet的一些帮助功能,后者是对应HTTP的Cookie。
二、主要servlet类和接口的使用方法
1.javax.servlet.Servlet接口
这个接口定义了servlet初始化、进行服务和终止服务的基本方法,这个些方法都和servlet的生命周期有关。 javax.servlet.Servlet将被HttpServlet和GenericServlet所实现。一般编程者在其中通过继承 HttpServlet间接使用了javax.servlet.Servlet的方法,比如init(),service(),destroy()。
2.javax.servlet.GenericServlet类
该类定义了一个通用的servlet类。它的用法和HTTP协议无关,主要用来方便编程者自己开发其他Web协议的servlet程序。 GenericServlet实现了上面的Servlet和ServletConfig接口,它提供了包括Servlet生命周期方法的一些常用方法。继承这个类的servlet需要填定其service()方法。它的init()、destroy()方法和javax.servlet.Servlet的同名方法基本一样。另外,它加入了getInitParameter()等方法。
3.javax.servlet.http.HttpServlet类
HttpServlet是最常用的Servlet类,编程者需要继承这个抽象类并填充其有关doXXX方法。另外在编程时注意各个方法的线程关系,避免当多个Web请求到来时,servlet会产生错误。它的service()方法一般不需要被替代,它会调用和用户请求对应的doXXX等方法。在一般 servlet中,使用最多的是doGet和doPost方法,没有必要重写doOptions和doTrace方法。
4.javax.servlet.SingleThreadModel接口
Web容器保证实现SingleTheadModel接口的servlet运行在单线程模式下,也就是保证其service()方法不会使用多线程。 Web容器有两种方法可以实现这一功能。一种是创建并管理多个servlet实例,每个实例在同一时间单独处理一个请求;另一种是让请求依照顺序被一个 servlet处理。
5.javax.servet.ServletConfig接口
ServletConfig接口能够使Web容器在servlet初始化时向servlet传递一些设置信息。设置信息是在servlet之外定义的,如在Web容器中配置描述文件web.xml内指定的初始化变量。在servet进行配置可以带来很大的灵活性。
6.javax.servlet.ServletRequest接口和javax.servlet.ServletResponse接口
这两个接口定义了来自客户端的请求和向客户端发送的响应。Web容器根据客户请求建立ServetRequest对象和ServletResponse对象并作为参数传递给servlet的service()方法。
可以从ServletRequest中获得请求参数(即url后的&var1=value1...)、请求属性(attributes)、和输入流。另外,它还可以得到Web协议信息(如getRemoteAddr(),getRemoteHost(),GetServetName()等)。
当Web容器通过ServletResponse接口向客户传递响应数据时,数据的格式主要可以有二进帛类型和文本类型。如果在servlet中需要发送二进制数据,servlet要用getOutputStream()取得的ServletOutputStream对象;如果需要发送文本数据,要用 getWriter()取得PrinterWriter对象。Servlet可以通过setContentType()设置响应数据的字符集(注:此设置应在getWriter方法获得PrinterWriter对象前取得)。
7.javax.servlet.ServletInputStream接口和 javax.servlet.ServletOutputStream接口
SetvletInputStream用于从ServletRequest中获取数据输入流;ServletOutputStream用于向 ServletResponse中写数据流。
8.javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletReponse 接口
这两个接口分别继承自ServletRequest,ServletResponse,它们提供了处理HTTP请求和响应的多种方法。在servlet编程中这两个接口作为参数传递给doGet,doPost等方法。可以从这两个方法中获得和设置HTTP头信息。
9.javax.servlet.http.HttpSession接口
HttpSession提供了会话的管理机制。它可以用来识别一个用户和一系列Web请求的关联关系。同时HttpSession可以用来记载用户的一些特定信息。在Web容器中,常用的实现会话的方式有通过cookie或重写URL等。HttpSession编程接口代表在HTTP客户和Web服务器之间创建的会话。使用这个接口的方法可以查询和管理关于会话的信息。


分享到:
评论

相关推荐

    servlet api jar

    1. **Servlet接口**:这是所有Servlet的基础,它定义了Servlet的基本行为,如`init()`用于初始化Servlet,`service()`用于处理请求,以及`destroy()`用于清理资源。 2. **GenericServlet**:这是一个抽象类,实现了...

    servlet-api.jar 下载地址

    - `Servlet`: 这是所有Servlet的基类,定义了Servlet的基本方法,如`init()`(初始化Servlet)、`service()`(处理请求)和`destroy()`(销毁Servlet)。 - `GenericServlet`: 它实现了`Servlet`接口,提供了通用...

    ServletAPI.rar

    ServletAPI是Java Web开发中非常重要的一个部分,它提供了一系列接口和类,使得开发者能够创建动态、交互式的Web应用程序。这个"ServletAPI.rar"压缩包包含的文档可能是Servlet API的官方Javadoc,这对于理解并使用...

    servletAPI 中文 chm版

    本资源为"ServletAPI 中文 chm版",提供了方便中国开发者阅读的中文文档,解决了原英文文档的语言障碍,使学习和查阅更加便捷。 CHM(Microsoft Compiled HTML Help)文件是一种包含HTML页面的压缩文件格式,通常...

    Servlet API官方原版

    2. **GenericServlet类**:这是一个抽象类,实现了Servlet接口,提供了基本的生命周期方法,如`init()`、`destroy()`和`start()`。它还包含了一个抽象的`service()`方法,可以根据请求类型调用对应的`doGet()`或`...

    Servlet API中文文档

    总的来说,Servlet API中文文档是Java Web开发者不可或缺的学习资源,它涵盖了从基本的请求响应处理到高级的过滤器和监听器的全部内容,帮助开发者深入理解并熟练运用Servlet技术,构建高效、稳定的Web应用程序。...

    servletAPI2.1中文版

    1. `Servlet`:这是所有Servlet的基类,定义了Servlet的基本方法,如`init()`(初始化Servlet)、`service()`(处理请求)和`destroy()`(销毁Servlet)。 2. `GenericServlet`:这是一个抽象类,实现了`Servlet`...

    Java Servlet API说明文档.pdf

    ### Java Servlet API 2.1 版说明文档关键知识点总结 #### 一、Java Servlet API 概述 - **版本信息**:此文档为 Java Servlet API 的 2.1 版本,发布于 1998 年 11 月。 - **目标受众**:适用于 Servlet 开发者及 ...

    servlet-api.rar_java servlet_servlet api_servlet api hmtl_servle

    Servlet接口定义了Servlet的基本行为,如init、service、destroy方法,用于初始化、处理请求和销毁Servlet。ServletConfig接口提供了Servlet的配置信息,而ServletContext接口则是整个Web应用的全局共享对象,可以...

    Servlet API(中文)

    除了这些基本接口,Servlet API还包含其他关键类,例如`Filter`和`FilterChain`,它们用于实现过滤器,可以拦截、修改或转发请求和响应。`DispatcherType`枚举定义了请求的不同调度类型,如FORWARD、INCLUDE、ERROR...

    Servletapi.rar_java servlet api_servletAPI

    这个`Servletapi.rar`文件包含了一份关于Java Servlet API的详细文档,`Servletapi.doc`很可能是该文档的文本版本。 ### 1. Servlet接口 Servlet接口是所有Servlet的基础,定义了Servlet的基本行为。主要包括以下几...

    servlet-api-3.0.jar包

    8. **安全增强**:添加了新的安全相关API,如`HttpServletRequest.isUserInRole()`和`HttpServletRequest.getRemoteUser()`,以及对基本认证和摘要认证的支持,增强了Web应用的安全性。 9. **生命周期管理**:...

    servlet api 中文 Chm

    JSP Servlet API中文CHM文件则提供了关于这个API的中文文档,帮助开发者理解和使用Servlet技术。在Java Web应用程序中,Servlet API扮演着服务器端编程的核心角色,允许开发者创建动态网页并处理来自客户端的请求。 ...

    Servlet API 中文参考 chm版.rar

    Servlet接口定义了服务器端组件的基本方法,比如`service()`方法用于处理请求。 2. **Servlet生命周期**: Servlet经历初始化、服务、销毁三个阶段。初始化阶段,Servlet容器(如Tomcat)调用`init()`方法;服务阶段...

    servletapi

    这个压缩包包含了官方的ServletAPI文档,方便开发者在没有网络的情况下查阅和学习。以下是对ServletAPI及相关知识点的详细解释: 1. **Servlet概念**: Servlet是一种Java类,用于扩展服务器的功能。它们主要用来...

    Servlet API 中文版+英文版 chm

    通过继承GenericServlet并覆盖`service()`方法,可以创建一个基本的Servlet。 3. **HttpServlet类**:HttpServlet类是GenericServlet的子类,专为处理HTTP请求而设计。它提供了对HTTP方法(GET、POST等)的处理,如...

    Servlet Api 中文版 网页版

    JSP最终会被编译成Servlet,因此JSP和ServletAPI有着紧密的联系。 CHM文件是一种常见的帮助文档格式,它是Microsoft HTML Help的压缩格式,包含了索引、目录和HTML页面,便于离线查看。在这个案例中,Servlet API的...

    javax.servlet-api-3.1.0.jar

    `javax.servlet-api-3.1.0.jar`不仅包含这些基本组件的接口和类,还提供了如HttpServletRequest、HttpServletResponse等用于处理HTTP请求和响应的类,以及ServletConfig和ServletContext等用于获取配置信息的对象。...

    ServletAPI文档(中文/chm格式)

    Servlet接口定义了Servlet的基本行为,如`init()`, `service()`, `destroy()`等方法,这些方法在Servlet生命周期的不同阶段被调用。 2. **GenericServlet类**:这是一个抽象类,实现了Servlet接口。它提供了默认的...

Global site tag (gtag.js) - Google Analytics