- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[Servletupdating
Servlet是JavaEE(Java系统平台企业版)的一部分,它建立在JavaSE的基础上,为开发和部署企业应用程序提供API和服务,将JavaSE和JavaEE的服务和库结合在一起有助于开发独立于系统平台、基于Web的Java应用。
B/S可以理解为从过去的C/S结构发展而来的,以通用的浏览器为客户端,由服务器通过请求响应的方式和客户端交流信息。由于浏览器、服务器的多种多样,就需要一种方式为浏览器与服务器解耦和,使一个浏览器可以访问不同的服务器,一个服务器也可以和不同的浏览器通信,HTTP协议就是这个统一的关键。浏览器与服务器厂商共同遵守的顶级Web协议,浏览器只负责发送或接收解析遵守此协议的信息,服务器只负责响应或发送遵守此协议的信息,把从前C/S结构中客户端与服务器的紧密性解开了。从此,厂商再也不用为了维护客户端的版本更新而伤财费力,像IE浏览器,已经嵌在系统中,用户也不需要再为安装哪种客户端,使用哪个厂商的服务而大伤脑筋。
一个C/S结构的应用,客户端向服务器发送信息,从服务器得到响应,服务器解析客户端的信息,将处理结果返还给客户端。在这个应用中,服务器为了响应多个客户端,需要多进程或者多线程编程。
抛开复杂的东西不谈,不同的B/S应用,服务器端最基本的:监听客户端连接,提供服务,销毁客户端不用的资源等,这些内容是每个C/S结构应用都需要的,而对于B/S结构的应用而言,这些内容也是基本相同的,每写一个应用都要做这些重复的工作,是很费时费力的。
既然在Web这种B/S结构应用中,客户端与服务器通信的协议已经固定了,那么能否再把相同的服务器端代码再提取出来,使这些代码与业务相关的代码分离,从而达到让一个服务器可以服务不同的应用,让同一个应用也可以跑在不同的服务器上呢?这是否就需要在应用与服务器间建立一套协议呢?
这就是一套规范,服务器只负责调用规范中的API给应用提供服务,而服务器为了能够调用到我们具体的业务逻辑方法,就需要我们去实现这套API中接口或类的固定方法,服务器与应用的业务实现者通过这个规范交流,无论不同的服务器内部如何实现,它与业务实现者的交流是通过API中规范的接口或类中的方法,无论多么复杂的业务逻辑,业务实现者想要返回处理结果给客户也要通过这套API。而这套API就需要服务器与业务实现者共同遵守。这样就把开发者从与服务器的交流中解放出来,使他们更专注于业务的开发中。这也就是JavaEE规范起的作用。
Servlet是JavaEE中的一部分,它位于Web层,负责处理客户请求并对客户请求做出响应,为客户端提供动态的内容,是客户端与应用程序交流的桥梁,主要服务是在标准的请求响应结构中与客户交换和传送数据。
容器:普通的玻璃容器可以用来装水,JavaSE中数组容器、集合容器可以用来装一组相同对象,JavaEE的容器里面装的是组件。无论是集合容器还是JavaEE的容器,里面内容(组件)的管理依靠容器,组件之间的交流也要依靠容器,容器的作用就是为这些组件提供运行环境以及所需要的服务。JavaEE的容器可以用来接收请求,把用户的需求影射到某个资源(如我们写好的Servlet上),再由容器把响应信息发送给客户。容器是由希望在自己的产品中采用Servlet技术的厂商实现的(通常是在Web服务器中)
Servlet:属于JavaEE中的Web组件,容器负责实例化、初始化、调用和销毁部署在其中的Servlet组件。Servlet实际上就是一个Java类,用来动态处理请求以及构造响应信息,它可以动态生成Html的Web页面做为请求的响应,还可以向客户端发送其他格式的数据,如串行化的Java对象、XML等。这些Servlet就是在一个Servlet容器中运行,由容器管理,访问由容器提供的服务。Servlet是由想要使用JavaServlet技术开发Web应用的程序员编写的,并部署到Web应用程序中
Servlet的存活期:
Servlet由容器初始化(一般是首次接受请求的时候),再处理请求。init方法
Servlet组件从客户层接收请求。实际上是容器负责接收请求,再透明地(之所以说透明,因为我们并没有感觉到容器的作用)把请求映射到适当的组件实例,然后向该组件传递具有正确格式的请求和响应对象
从请求对象中取出用户的需求,由Servlet处理请求,从业务逻辑层获得数据
通过响应对象,向用户返回处理过的信息
最后,容器负责销毁它生成的任何Servlet实例。destroy方法
1和5只执行一次,2、3和4循环多次。
Servlet通信:一个Servlet与外界的通信可以在一个Web应用程序中发生的位置
在请求响应循环中与客户端通信
与Servlet容器通信,如访问容器的环境、JNDI资源(如数据源)
与
文档评论(0)