JettY部署Web应用程序.docVIP

  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文档。上传文档
查看更多

第5章部署Web应用程序

???当我们编写好一个web应用程序,如何交付给Jetty容器来运行呢?这也就是所谓“部署web应用程序”。

???本章将介绍如何在Jetty中部署web应用,以及在Jetty的构架体系中是如何实现web应用部署的。

5.1常用术语

???为了使本章中讨论的内容能得到大家一致的理解,本节先明确一些专业术语,避免大家造成误解。

???web应用程序(WebApplication)

???

?????经常会说到这个词,大家也不难理解,就是由一组文件构成的集合,这些文件可能包含html文件、图像文件、java编译后的class文件,配置文件等等所有可能出现的文件。符合Servlet规范的应用程序还要求目录下存在一个WEB-INF的文件夹,在里面还必须存在一个web.xml的web部署配置文件,关于这个目录和web.xml的内容格式都是Servlet规范中定义的。根据Servlet规范我们还可以web应用程序整个目录打包成war文件。

???上下文(Context)

???

???上下文是我们经常听到的词汇,可以使用在各种专业场合,但当我谈论web应用程序的时候,是这样的意思。

???首先看一个名为Example的web应用程序的访问URL,/example/index.jsp。可以发现要访问这个Example应用,所有的路径都需要加前缀“/example”,换句话说,就是该应该的访问地址都符合/example/*这种模式。所有已/example/开头的请求都将有Example应用程序处理。

??????

???这就是上下文的概念了。有了上下文的概念后,一个web服务下就可以部署多套不同的web应用程序了,且不同的应用程序不会造成混乱。

???

???上下文路径(ContextPath)

???

?????在术语上下文的中,我们举例的“/example”就是上下文路径。同一个服务器下的不同的web应用就应该有不同的上下文路径。

???注意:上下文路径必须以“/”开头,且不能以“/”结尾。

???在Servlet规范中,通过API,request.getContextPath()方法来获取当前应用程序的上下文路径

??????

???

5.2初探

????如果你使用过Tomcat服务器的话,那么你一定知道在Tomcat下部署一个web应用会有两种方式:一、将web程序目录或者war文件程序复制到webapps目录。二、编写配置文件,指向到web程序的目录。我们Jetty也提供类似这两种方式,确有略为不同。

???

???静态部署

???

???在jetty安装目录下存在一个名为webapps的目录,你可以存放web应用程序或者war文件。Jetty服务启动时会扫描webapps目录下面的文件,如果识别为web应用程序,那么就启动它。上下文路径就是文件夹的名称或者war文件的名称。(文件夹或war的名称是root,对应的上下文路径为“/”)

???此类部署方式之所以被称为静态部署,是因为在服务器启动完成后便不在扫描webapps目录变动情况了,换句话说,在服务启动完成后,再在webapps部署新的web应用,不会及时生效,需等到服务器重启后才能被识别。

???

???顺便提醒下,虽然这里叫静态部署,但是web应用里面的jsp被修好后,还是会被动态重编译。

???动态部署

???在jetty安装目录下存在一个名为contexts的目录,在这个目录里面是用来放置动态部署的配置文件的,配置文件是xml文件,使用的语法和第4章介绍的JettyxmlConfiguration语法相同。(配置文件语法统一,这也是jetty设计优秀之处)jetty启动服务时,会开启一个线程每隔一段时间扫描contexts目录下的xml配置文件,然后更加配置文件的内容来部署一个web应用。当服务器启动后的任意时刻,你在contexts下新增一个配置文件,jetty就会动态地启动这个web应用,同理,删除一个已存在的配置文件,jetty就会关闭相应的web应用。你也可以修改一下配置文件的最后修改时间,来达到重启web应用的功能。

???此类部署方式就是所谓的动态部署了。

???需要提醒的是,通常情况下你会认为部署一个web应用程序,那么这个web应用一定是符合Servlet规范的,不然jetty为什么会叫servlet容器呢!但是Jetty的设计哲学没有强迫你非得这样做,Jetty允许你发布一个支持上下文功能,但不支持Servlet的应用。

???

???如,在jetty自带的示例中,contexts目录

文档评论(0)

192****6062 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档