Servlet 2.1 规范概述

1概述

传统Server展机制相比,Servlet有如下点:
1
CGI脚本快,因Servlet采用了不同的理模式。
2 Servlet使用的API大多数Web Server所接受。
3
Java开发的,所以Java的所有点,包括易于开发和平台无等。
4
可以方便地访问大量的Java类库资源。


2 Servlet
生命周期

一个Servlet有一个生命周期,定了一个Servlet 如何被加和被初始化,它怎接收求、响应请求、怎提供服

在代中,Servlet生命周期由接口:javax.servlet.Servlet 所定 所有的Java Servlet ,直接或接地实现javax.servlet.Servlet接口,这样才能在Servlet Engine上运行。Servlet Engine提供network Service, MIME request, 运行Servlet Container javax.servlet.Servlet接口定了一些方法,在Servlet 的生命同期中些方法会在特定时间按照一定的序被用。如下

[myimg]upload/servletlifecycle.png[/myimg]

Servlet
如何被加Load),被例化(Instantiated

Servlet Engine
负责实例化和加Servlet程可以在Servlet Engine 载时执行,可以在Servlet 应请时执行,也可以在两者之的任何行。


2.2 Servlet
如何被初始化(Initialized)

Servlet Engine
Servlet 后,必要初始化它。初始化Servlet 可以从数据取初始数据,建立JDBC Connection,或者建立其它有价源的引用。
在初始化段,Init( )方法被用。个方法在javax.servlet.Serlet接口中定Init( )方法以一个Servlet 配置文件(ServletConfig 型)参数。Servlet configuration 象由Servlet Engine 实现,可以Servlet 从中取一些name-value的参数ServletConfig可以Servlet access 一个Servlet Context象。


2.3 Servlet 如何

Servlet
被初始化以后,就于能响应请求的就Servlet 求由一个Servlet Request 象代表。Servlet 端的响由一个Servlet Response象代表。
当客端有一个Servlet Engine ServletRequest ServletResponse象都转发给Servlet两个象以参数的形式传给Service方法。个方法由javax.servlet.Servlet、并由具体的Servlet 实现
Servlet
可以实现 ServletRequest ServletResponse接口。ServletRequest接口可以Servlet 取客求中的参数。如form data, request信息,协议类型等等。Servlet 可以从ServletInputStream流中request 数据。ServletResponse接口允Servletresponse headersstatus codes 实现这个接口可以使Servlet访问ServletOutputStream流用来向客端返回数据。


2.4
线程和映射(Mapping

在多线境中,大多数Servlet 理同时发生的多个求。但一情况例外,就是当一个Servlet 实现 SingleThreadModel接口,这样Servlet 只会响同一时间的一个求。
Servlet
根据Servlet Engine Mapping 来响求、MappingURLServlet例相对应。比如:/hello/index.html可以对应HelloServlet 然而,一个对应也可以将一个URL和多个Servlet例相对应。比如,一个分布式的Servlet Engine 运行在多台机器上 同一个Servlet 可以有多个例运行在不同的服器上,以均衡理的负载。作一个Servlet 开发者。你不能假定Servlet将来只有一个例。


2.5 Servlet如何被

Servlet Engine
没有必要在Servlet 生命周期的一段时间内都保持Servlet的状Servlet Engine可以随随意使用或Servlet。因此,你不能依Servlet class或其成来存信息。
Servlet Engine 判断一个Servlet当被,(比如engineShut down 或需要回收源)engine须让Servlet 放其正在使用的任何源,并保存持性的状信息。些可以通过调Servletdestroy方法来实现
Servlet Engine 放一个servlet 以前必须让其完成当前例的service方法或是等到timeout(如果enginetimeout)。当engine放一个Servlet 以后,engine将不能再将转发给它,engine须彻servlet并将其可回收的(garbage collection)。


3 Servlet Mapping


一个Servlet Engine 开发者,你可以随意定如何将客端的求映射到ServletsSpecification本身并不这种规则,然而你可以使用下面任何一

1
你可以使一个servlet 只和一个URL对应 如:URL/feedback/index.html对应feedBack class
2
可以认为指定的某些目下全是Servlet
3
可以指定以特殊的后尾的Servlet求。 如:*.thtml认为Servlet
4
使用特定的URL:/servlet/servlet_name.
5
可以直接用Servletclass名来激活它。 如:/servlet/com.foo.servlet.MailServlet.

4 Servlet Context ServletContext 接口

了一个Servlet context 象,保存着Servlet engine 的信息。通Servlet context, Servlet 可以日志文件,可以源和象(比如RequestDispatcher)。一个Servlet 只能在一个Servlet context 下运行,但不同的ServletServlet Engine 的不同视图
如果一个Servlet Engine支持虚主机,个虚主机有一个Servlet context,它不能被多个虚主机共享。
Servlet Engine
可以Servlet Context有自己的范,就象作URL的一部分。如一个Servlet Context 属于一个用,可以被映射到/bank这时一个getContext(/bank/fooServlet)将返回/bankServlet Context


5 HTTP Sessions

HTTP
是一个stateless协议了建立有效的Web Server Application, 你必识别来自程客端的众多求中哪些是属于同一个客端的。有多追session的方法,但都很复杂于使用。
但是Java Servlet API提供了一个简单的接口,允Servlet Engine来通任何途径追踪一个用session


5.1
建一个session

HTTP是一"--"式的协议一个session是被认为是新的,直到有客join来。Join意思是客端向Server端返回了session的追踪信息,指明了session被建立。
如果客端没有join一个session,你就不能假定接下来的客端响是属于当前的session
如果有下述情况出session就被认为是新的:
1.
不知道任何于此session的信息。
2.
选择不加入session,比如客端拒接受cookies
一个servlet开发者,你必须设计Web Application理客端没有或不能加入一个session的情况。Server将保持session象一段时间时间可以由 ServerServlet指定。当一个session期后,Serversession象和其它与之定在一起的所有象。


5.2
象到一个session

如果有需要,比如能帮助你用中的数据需要,你可能会定一些象到一个session中。你可以定任何象到HttpSession象中,只要用唯一的标识名。任何定到session中的其它任何一个理同一个session中的求的Servlet,都是可的。一些象需要知道自己什么时候被放入或移出一个session,你可以通HttpSession Binding Listener接口来些信息。当你的servletsession中存放数据servlet engine检查对象是否通过实现Http Session Binding Listener定,如果是,接口中的方法将通知象,它已被

 
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可 6私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值