(Servlet工作原理.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(Servlet工作原理

Servlet工作原理 Servlet运行在Servlet容器中,由容器负责Servlet实例的查找及创建工作,并按照Servlet规范的规定调用Servlet的一组方法,这些方法也叫生命周期的方法。具体调用过程如下图所示:Servlet生命周期详解 如上图所示,Servlet的生命周期可以分为四个阶段,即装载类及创建实例阶段、初始化阶段、服务阶段和实例销毁阶段。下面针对每个阶段的编程任务及注意事项进行详细的说明。?(1)装载类及创建实例 客户端向Web服务器发送一个请求,请求的协议及路径必须遵守如下的格式: http://serverip:port/application-path/resource-path 其中,serverip为Web服务器的IP地址,也可以是域名,比如:、15、 localhost、等。port为Web服务器的服务端口,如果是80端口可以不写。 application-path为服务器中发布的某个应用的路径,如果为缺省应用(比如tomcat的ROOT)可以为 空。resource-path为客户端要访问的服务器中的资源的路径。比如: http://localhost:8080/serv-app/login.html 表示通过8080端口访问本地机器上名字为路径为 serv-app中/login.html对应的资源。 http://localhost:8080/serv-app/basic/time 表示通过8080端口访问本地机器上路径为serv-app的应用中/basic/time对应的资源。 那么Web服务器是如何解释该请求的路径,以及将资源发送给客户端呢?在前面的“建立并发布一个Web应用”部分,我们说过Web服务器会将应用的路径/serv-app映射到磁盘的某个特定的目录结构,本例中为tomcat服务器中webapps目录下的serv-app。/login.html和/basic/time为该应用下的资源的路径,该路径同应用路径一样为“虚拟的”路径,由服务器把它映射为系统的具体文件或程序,具体流程如下图所示: JavaEE Web规范规定了服务器搜索Servlet类的路径为应用目录结构中WEB-INF/classes目录及WEB-INF/lib下的所有jar文件。因此需要将TimeServlet按照如下的目录结构放到WEB-INF/classes中:WEB-INF/classes/com/allanlxf/servlet/basic/TimeServlet.class 该Servlet部署描述如下: servlet?servlet-nameTimeServlet/servlet-name?servlet-classcom.allanlxf.servlet.basic.TimeServlet/servlet-class?/servlet servlet-mapping?servlet-nameTimeServlet/servlet-name?url-pattern/basic/time/url-pattern?/servlet-mapping?I.何时创建Servlet实例? 在默认情况下Servlet实例是在第一个请求到来的时候创建,以后复用。如果有的Servlet需要复杂的操作需要载初始化时完成,比如打开文件、初始化网络连接等,可以通知服务器在启动的时候创建该Servlet的实例。具体配置如下: servlet servlet-nameTimeServlet/servlet-name servlet-classcom.allanlxf.servlet.basic.TimeServlet/servlet-class?load-on-startup1/load-on-startup /servlet? 其中load-on-startup标记的值必须为数值类型,表示Servlet的装载顺序,取值及含义如下: 正数或零:该Servlet必须在应用启动时装载,容器必须保证数值小的Servlet先装载,如果多个 Servlet的load-on-startup取值相同,由容器决定它们的装载顺序。 负数或没有指定load-on-startup:由容器来决定装载的时机,通常为第一个请求到来时。?(2)初始化 一旦Servlet实例被创建,Web服务器会自动调用init(ServletConfig config)方法来初始化该Servlet。其中方法参数config中包含了Servlet的配置信息,比如初始化参数,该对象由服务器创建。?I.如何配置Servlet的初始化参数? 在web.xml中该Servlet的定义标记中,比如: servlet?servlet-nameTimeServlet/servle

文档评论(0)

34shart09 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档