WebAppContext(嵌入Jetty学习三)

    先来看一下在Jetty里,什么是Context。在Jetty里Context是包含了在某一特定URL或Virtual Host下的一组Handler的Handler。可以这样理解,Context本身也是一种Handler,它里面包含了许多的Handler,这些Handler都只能处理某个特定URL下的请求。Jetty里的Context有ContextHandler,ServletContext和WebAppContext。这里主要学习一下WebAppContext。

 

    先回忆一下war里面web.xml里面可能有什么东西,有Security,Session,Servlet等。如果要通过Jetty部署war包的话,Jetty也必须能够处理这些东西才行。通过上一节我们知道,Jetty里都有相应的Handler与之对应,而WebAppContext就是用来组织这些Handler的。Jetty就是通过WebAppContext来部署war包的。

 

    WebAppContext的属性如下:

_defaultsDescriptor一般是$(jetty.home)/etc/webdefault.xml文件
_descriptorweb.xml配置文件路径,默认是$(baseResource)/WEB-INF/web.xml
_overrideDescriptors是一个配置文件数组,会覆盖web.xml中的配置信息
_extractWAR如果为true,则说明本应用是从war中解包后创建的
_copyDir如果为true,则在解包时把WEB-INF目录拷贝出来
_parentLoaderPriority如果为true,则加载类时优先使用父加载器
_tmpDirwar包解压后的目录
_war原始war包路径或原始文件夹路径
_extraClasspath扩展类库列表

 

    下面以一段代码来说明如何通过Jetty部署war包

WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/qman");
 
// Additional web application descriptor containing test components.
webapp.setDefaultsDescriptor("lib/web.xml");
 
//设置原始War的位置
webapp.setWar("qman.war");

//将war解压的目录
webapp.setTempDirecotry("wabapps/");
server.setHandler(webapp);
server.start();
server.join();

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值