Servlet 3.1 标准(一)
概述
什么是Servlet
Servlet 是一个基于Java 的Web组件,由容器管理生成的动态内容。就像其他的Java组件一样,Servlet是平台无关的Java类所编译成的字节码,可以被动态加载在基于的Java Web容器之中。
容器,有时候也被乘坐Servlet引擎,是一些提供Servlet功能的 Web服务器扩展。 Servlet 和Web 客户端通过 Servlet容器所实现的请求/应答的范式来完成交互。
什么是Servlet容器
Servlet容器是Web或者应用服务器的一部分,它提供一些网络服务:比如发送请求和应答,解码基于MIME的请求,格式化基于MIME的应答等。一个Sevlet容器同时也通过Servlet的生命周期及管理这些Servlet。
Servlet容器可以构建在Web 服务器或者作为一个Web服务器的附加组件通过本地扩展API安装到Web服务器上。Sevrlet容器也能够构建或者安装到支持Web的应用服务器上。
所有的Servlet容器必须支持HTTP中的请求和应答,其他的基于请求/应答的协议则可能支持比如HTTPS。容器必须实现的HTTP SPEC包括HTTP/1.0和HTTP/1.1。因为容器也许会有RFC2616(HTTP/1.1)中所描述的缓存机制,容器也许会在将请求送到Servlet之前改变客户端所发送的请求,也可能在应答发送到客户端之前修改Servlet产生的应答,或者可能不将请求发送到Servlet就回应了客户端,这些都在符合RFC2616的情况下。
Servlet容器也许会放置安全限制到Servlet的执行环境中去。在J2SE或是J2EE环境中,这些限制应该用Java平台的权限架构来设置。比如,高端应用服务应该限制创建Thread对象来确保其他组件正常。
针对这一版本来说, Java SE 7是 Servlet容器能够允许的最低版本。
一个例子
下面是一些典型事件的序列:
- 一个客户端(比如浏览器)访问一个Web服务器产生一个 HTTP 请求。
- Web服务器接受了请求,并且将其移交给Servlet容器。Servlet容器可以运行在同一个Web服务器的同一进程或者不同进程,或者不同Web服务器上,只要能够处理请求。
- Servlet容器来决定哪一个Servlet来调用,这都取决于Servlet的配置,然后调用Servlet,同时还有对应的代表请求和应答的对象。
- Servlet通过请求对象来找到发送请求的客户端信息,一些参数和其他一些相关的数据也在是request中的一部分。Servlet会执行一些程序员实现的逻辑以及生成一些信息返回给客户端。Servlet会将这些信息通过应答对象返回给客户端。
- 一旦Servlet处理完请求,Servlet容器确保正确刷新响应,并将控制返回给Web服务器。
比较Servlet和其他的技术
在功能上来说,Servlet 位于CGI程序和一些专业的服务器扩展模块之间。
Servlets 有如下优于其他服务器扩展机制:
- Servlet 比CGI脚本要快得多,因为使用了不同的进程模型
- Servlet 使用了标准的API,被很多Web服务器所支持
- Servlet 有所有Java的语言优势,包括易于开发和平台无关
- Servlet 可以使用大量 Java平台的API
Servlet与 Java企业版的关系
Java Servlet API v3.1 是Java企业版 7 所需要的API。Servlet容器和其中运行的Servlet必须满足一些额外的Java EE SPEC描述的运行在Java EE环境的的需求。
与 Servlet 2.5 SPEC 的兼容性
处理注解
在Servlet 2.5,metadata-complete只影响注释在部署时的扫描。Web-fragments概念在2.5中还不存在。然而在Servlet 3.0和之后,metadata-complete影响扫描所有的注释,注释会在部署时指定部署信息和web-fragments。描述符的版本,必须不影响Web应用中扫描的注解。特殊实现的版本,必须扫描所有的配置中支持的注解,除非metadata-complete是特指的。
Servlet 3.1 标准(一)的更多相关文章
- [Servlet&JSP] 标准标签
在JSP的规范中提供了一些标准标签(Standard Tag),全部的容器都支持这些标签,它能够协助编写JSP时降低Scriptlet的使用. 全部的标准标签都使用jsp:作为前置.这些标准标签是在J ...
- Servlet 3.0 异步模式
Servlet 3.0标准新增了异步处理的支持. 进行异步处理的Servlet和作用于该Servlet的拦截器都必须声明对于异步处理的支持.
- Servlet、Filter 生命周期
Servlet作为JavaEE必须掌握的内容,Struts2通过使用Filter的功能实现了一个MVC的框架.因此掌握这Servlet以及Filter的生命周期显得非常重要. 1. Servlet的生 ...
- 漫谈servlet技术
1.要谈到Servlet技术,不得不先谈谈动态网页的概念. 编写过网页的人都知道,浏览器能够根据HTML静态标记语言来显示各式各样的网页.但是如果我们需要在网页上完成一些业务逻辑:比如登陆验证.或者说 ...
- DNS,TCP,IP,HTTP,socket,Servlet概念整理
DNS,TCP,IP,HTTP,socket,Servlet概念整理 常见的协议虽然很容易理解,但是看了之后过一段时间不看还是容易忘,笔记如下,比较零碎,勉强供各位复习.如有错误欢迎指正. D ...
- JavaWeb(三)servlet
Servlet * 什么是Servlet 是运行在web服务器端的Java应用程序,它使用JAVA语言编写,具有Java语言的优点.与Java程序的区别:Servlet对象主要封装了对Http请求的处 ...
- Servlet技术——Servlet基础
Servlet是运行在Web服务器端的Java应用程序,它使用Java语言编写,具有Java语言的优点.与Java程序的区别是,Servlet对象主要封装了对HTTP请求的处理,并且它的运行需要Ser ...
- Servlet 2.3 规范
Servlet2.3规范 第一章: servlet2.3规范用到了一下的一些规范:J2EE.JSP1.1.JNDI 在14章中讲述了规范中的所有的classes类或接口(改文中不讲述).对开发者而言以 ...
- Tomcat中的Host和Engine级别的servlet容器
这边文章主要介绍的是Host容器 和 Engine容器.如果你想在同一个Tomcat上部署运行多个Context容器的话,你就需要使用Host容器,从理论上来讲,如果你的Tomcat只想要部署一个Co ...
随机推荐
- SEO 爬虫原理介绍
一篇关于网络爬虫程序的一些原理及体系结构纯技术文章,一些地方可能不会看的非常明确.对于SEO行业,常常和搜索引擎及其爬虫程序打交道,细致浏览下,一些不清楚而自己又非常想了解的地方,能够借助搜索来需找相 ...
- 跟我学Java多线程——线程池与堵塞队列
前言 上一篇文章中我们将ThreadPoolExecutor进行了深入的学习和介绍,实际上我们在项目中应用的时候非常少有直接应用ThreadPoolExecutor来创建线程池的.在jdk的api中有 ...
- HDU 5308 I Wanna Become A 24-Point Master
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5308 题面: I Wanna Become A 24-Point Master Time Limit ...
- UI 经常用法总结之--- UIWindow UIView (不断更新中)
UIWindow (UIView) 1.创建一个uiwindow对象 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScr ...
- Visual C++ RunTime的特征——非烫即屯
Visual C++ RunTime的特征——非烫即屯 大一刚学C语言,第二次上机课,当我发现我照着书抄写的程序在运行之外的黑框里面跳出一排“烫烫烫烫烫”,当时就震惊了.你们能想象一个来自小城,在大学 ...
- ubuntu之修改ls显示颜色
Linux 系统中 ls 文件夹的痛苦我就不说了,为了不伤眼睛,一般 ssh 终端背景都用的黑色,文件夹又是你妈的深蓝色,每次看文件夹都要探头仔细去看.这下彻底解决这个问题. 因为ubuntu下的 ...
- NUnit Console Command Line
https://github.com/nunit/docs/wiki/Console-Command-Line The console interface runner is invoked by a ...
- Elo rating system(Elo 打分体系)
A.B 两个待比较.评价的对象,分别打分为 RA,RB,则各自获胜的期望值为: ⎧⎩⎨⎪⎪⎪⎪⎪⎪EA=11+10(RB−RA)/400.EB=11+10(RA−RB)/400. 不妨令 QA=10R ...
- 微信小程序蓝牙连接小票打印机
1.连接蓝牙 (第一次发表博客) 第一步打开蓝牙并搜索附近打印机设备// startSearch: function() { var that = this wx.openBluetoothAda ...
- NOIP 2010 关押罪犯 并查集 二分+二分图染色
题目描述: S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用"怨气值" ...