admin 管理员组文章数量: 1086019
2024年3月28日发(作者:php的中文含义)
JavaServletAPI的组成
JavaServletAPI由两个软件包组成:一个是对应HTTP的软件包,另一个是不对应HTTP的通用的软件包。这两个软件
包的同时存在使得JavaServletAPI能够适应将来的其他请求-响应的协议。
这份文档以及刚才提及的Javadoc格式的文档都描述了这两个软件包,Javadoc格式的文档还描述了你应该如何使用这两
个软件包中的所有方法。
有关规范
你也许对下面的这些Internet规范感兴趣,这些规范将直接影响到ServletAPI的发展和执行。你可以从
/7c/in-notes/rfc/.cache找到下面提到的所有这些RFC规范。
RFC1738统一资源定位器(URL)
RFC1808相关统一资源定位器
RFC1945超文本传输协议--HTTP/1.0
RFC2045多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第一部分:Internet信息体格式
RFC2046多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第二部分:媒体类型
RFC2047多用途网际邮件扩充协议(MIME)(多用途Internet邮件扩展)第三部分:信息标题扩展用于非ASCII文本
RFC2048多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第四部分:注册步骤
RFC2049多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第五部分:一致性标准和例子
RFC2068超文本传输协议--HTTP/1.1
RFC2069一个扩展HTTP:摘要访问鉴定
RFC2109HTTP状态管理机制
RFC2145HTTP版本号的使用和解释
RFC2324超文本CoffeePot控制协议(HTCPCP/1.0)
万维网协会()管理着这些协议的规范和执行。
有关JavaServlets
JavaTMservlets是一个不受平台约束的Java小程序,它可以被用来通过多种方法扩充一个Web服务器的功能。你可以
把Servlet理解成Server上的applets,它被编译成字节码,这样它就可以被动态地载入并用效地扩展主机的处理能力。
Servlet与applets不同的地方是,它不运行在Web浏览器或其他图形化的用户界面上。Servlet通过servlet引擎运行在
Web服务器中,以执行请求和响应,请求、响应的典型范例是HTTP协议。
一个客户端程序,可以是一个Web浏览器,或者是非其他的可以连接上Internet的程序,它会访问Web服务器并发出请
求。这个请求被运行在Web服务器上的Servlet引擎处理,并返回响应到Servlet。Servlet通过HTTP将这个响应转发到
客户端。
在功能上,Servlet与CGI、NSAPI有点类似,但是,与他们不同的是:Servlet具有平台无关性。
JavaServlet概论
Servlet与其他普通的server扩展机制有以下进步:
因为它采用了不同的进程处理模式,所以它比CGI更快。
它使用了许多Web服务器都支持的标准的API。
它继承了Java的所有优势,包括易升级以及平台无关性。
它可以调用Java所提供的大量的API的功能模块。
这份文档说明了JavaServletAPI的类和接口的方法。有关更多的信息,请参看下面的API说明。
Servlet的生命周期
一个Javaservlet具有一个生命周期,这个生命周期定义了一个Servlet如何被载入并被初始化,如何接收请求并作出对
请求的响应,如何被从服务中清除。Servlet的生命周期被t这个接口所定义。
所有的JavaServlet都会直接地或间接地执行t接口,这样它才能在一个Servlet引擎中运行。Servlet
引擎是Web服务器按照JavaServletAPI定制的扩展。Servlet引擎提供网络服务,能够理解MIME请求,并提供一个运
行Servlet的容器。
t接口定义了在Servlet的生命周期中特定时间以及特定顺序被调用的方法。
Servlet的解析和载入r
Servlet引擎解析并载入一个Servlet,这个过程可以发生在引擎启动时,需要一个Servlet去响应请求时,以及在此之间
的任何时候。
Servlet引擎利用Java类载入工具载入一个Servlet,Servlet引擎可以从一个本地的文件系统、一个远程的文件系统以及
网络载入Servlet。
Servlet的初始化
Servlet引擎载入Servlet后,Servlet引擎必须对Servlet进行初始化,在这一过程中,你可以读取一些固定存储的数据、
初始化JDBC的连接以及建立与其他资源的连接。
在初始化过程中,t接口的init()方法提供了Servlet的初始化信息。这样,Servlet可以对自己进行配置。
init()方法获得了一个Servlet配置对象(ServletConfig)。这个对象在Servlet引擎中执行,并允许Servlet通过它获处相关
参数。这个对象使得Servlet能够访问ServletContext对象。
Servlet处理请求r
Servlet被初始化之后,它已经可以处理来自客户端的请求,每一个来自客户端的请求都被描述成一个ServletRequest对
象,Servlet的响应被描述成一个ServletResponse对象。
当客户端发出请求时,Servlet引擎传递给Servlet一个ServletRequest对象和一个ServletResponse对象,这两个对象作为
参数传递到service()方法中。
Servlet也可以执行ServletRequest接口和ServletResponse接口。ServletRequest接口使得Servlet有权使用客户端发出的
请求。Servlet可以通过ServletInputStream对象读取请求信息。
ServletResponse接口允许Servlet建立响应头和状态代码。通过执行这个接口,Servlet有权使用ServletOutputStream类来
向客户端返回数据。
多线程和映射r
在多线程的环境下,Servlet必须能处理许多同时发生的请求。例外的情况是这个Servlet执行了SingleThreadModel接口,
如果是那样的话,Servlet只能同时处理一个请求。
Servlet依照Servlet引擎的映射来响应客户端的请求。一个映射对包括一个Servlet实例以及一个Servlet返回数据的URL,
例如:HelloServletwith/hello/。
然而,一个映射可能是由一个URL和许多Servlet实例组成,例如:一个分布式的Servlet引擎可能运行在不止一个的服
务器中,这样的话,每一个服务器中都可能有一个Servlet实例,以平衡进程的载入。作为一个Servlet的开发者,你不
能假定一个Servlet只有一个实例。
Servlet的卸载
Servlet引擎并不必需保证一个Servlet在任何时候或在服务开启的任何时候都被载入。Servlet引擎可以自由的在任何时
候使用或清除一个Servlet。因此,我们不能依赖一个类或实例来存储重要的信息。
当Servlet引擎决定卸载一个Servlet时(例如,如果这个引擎被关闭或者需要让资源),这个引擎必须允许Servlet释放
正在使用的资源并存储有关资料。为了完成以上工作,引擎会调用Servlet的destroy()方法。
版权声明:本文标题:Java Servlet API的组成 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1711587829a601176.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论