Servlet Specification V2.4——SRV.1 Overview

一个人想着一个人 提交于 2019-12-05 02:43:27

SRV.1 Overview

 

SRV.1.1 What is a Servlet?

  • 基于Java技术,由容器管理,可以生成动态内容的web组件。

  • 和其他基于Java技术的组件一样,servlet是跨平台的。并且它还运行于可以支持Java技术的web服务器

  • container,我们有时候称为servlet引擎,是支持servlet的web server。

  • servlet通过container实现的request/response模型与web client进行交互。

 

SRV.1.2 What is s Servlet Container?

        Servlet container是web server/application server的一部分, 这种server通过发送request/response,解码基于MIME的request,并且格式化基于MIME的response来提供网络服务。

        一个servlet container必须构建在宿主web服务器之内,或者作为一个附加组件被安装到web服务器上,通过其服务器的原生扩展API。Servlet container也可以或者有能力被被构建在支持web的应用程序服务器上。

        所有的servlet container必须支持HTTP作为request和reponse的协议,但附加的基于request/response的协议,比如HTTPS也可以被支持。Container必须实现的HTTP规范版本为HTTP/1.0和HTTP/1.1。因为container必须有一个在RFC2616(HTTP/1.1)中描述的缓存机制,它可以在分发来自client的request至servlet之前修改它们,也可以响应request而不分发它至servlet,像RFC2616描述的那样。

        Servlet container可以在servlet执行的环境上设置安全限制。在Java 2平台上,标准版(J2SE1.3或更高)或者企业版(J2EE1.3或更高)的环境中,这些限制应该通过使用Java2平台定义的权限架构被设置。比如,高端的应用服务器可以限制Thread对象的创建来确保container的其他组件不受到不好的影响。

        J2SE 1.3是构建Java平台下web container所需的最低版本。

 

 

SRV.1.3 An Example

  1. client访问web server,并且发起一个http request;

  2. web server收到request并转交给servlet container;

  3. servlet container根据servlet的相关配置决定调用哪个servlet,并且使用展现request/response所需的对象去调用那个servlet;

  4. servlet通过request对象找出谁是远程调用者,这个request通过http post的方式发送了那些参数,以及其他相关数据。servlet会执行代码指定的业务逻辑,并且生成数据,通过response对象返回到client。

  5. 一旦servlet完成了对request处理,container会确认response已经被正确地flush了,并将控制权还给web server。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!