原创作者: sailor90
阅读:1245次
评论:0条
更新时间:2011-05-26
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
- client访问web server,并且发起一个http request;
- web server收到request并转交给servlet container;
- servlet container根据servlet的相关配置决定调用哪个servlet,并且使用展现request/response所需的对象去调用那个servlet;
- servlet通过request对象找出谁是远程调用者,这个request通过http post的方式发送了那些参数,以及其他相关数据。servlet会执行代码指定的业务逻辑,并且生成数据,通过response对象返回到client。
- 一旦servlet完成了对request处理,container会确认response已经被正确地flush了,并将控制权还给web server。
评论 共 0 条 请登录后发表评论