先来看一下在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文件 |
_descriptor | web.xml配置文件路径,默认是$(baseResource)/WEB-INF/web.xml |
_overrideDescriptors | 是一个配置文件数组,会覆盖web.xml中的配置信息 |
_extractWAR | 如果为true,则说明本应用是从war中解包后创建的 |
_copyDir | 如果为true,则在解包时把WEB-INF目录拷贝出来 |
_parentLoaderPriority | 如果为true,则加载类时优先使用父加载器 |
_tmpDir | war包解压后的目录 |
_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();
相关推荐
通过上述内容的学习,你将能够熟练地运用Jetty进行Web应用开发,无论是构建独立的服务还是嵌入到其他项目中,Jetty都能提供强大且稳定的支撑。请参考压缩包中的学习资料,逐步探索和掌握这些知识点,提升你的Java ...
三、Jetty的WebSocket支持 Jetty不仅支持传统的HTTP,还提供了对WebSocket的强大支持。通过WebSocketEndpoint或者WebSocketServlet,开发者可以轻松创建WebSocket服务器端点,实现双向通信。 四、部署与管理Web应用...
- 嵌入Jetty意味着将Jetty服务器作为应用程序的一部分来运行,无需独立的服务器进程。 - 使用`org.eclipse.jetty.server.Server`类创建服务器实例,并配置监听端口、处理请求的Handler等。 - 配置Servlet容器,...
Jetty 6.1.4 是一个开源的Java Web服务器和Servlet容器,它以其轻量级、高效和可嵌入性而闻名。这个版本的Jetty发布于2009年,是Jetty系列的一个重要里程碑,提供了对Servlet 2.5规范的支持。在本文中,我们将深入...
2. **内嵌Jetty的实现**:学习如何通过Java代码创建并启动一个内嵌的Jetty服务器,这通常涉及导入相关的Jetty库,创建Server对象,配置Connector(如HTTP或HTTPS)和Handler(如WebAppContext)。 3. **Servlet容器...
三、嵌入Jetty 6到Java项目 要将Jetty 6嵌入到Java项目中,首先需要在项目中引入Jetty的依赖库。这可以通过Maven或Gradle来实现,添加对应的依赖项到构建配置文件。 1. Maven依赖: ```xml <groupId>org.mortbay....
Jetty的源码结构清晰,易于阅读,你可以通过阅读源码学习其内部工作流程。 至于“工具”,Jetty 8作为一个Java库,可以与其他开发工具(如Maven或Gradle)集成,方便地管理依赖和构建项目。如果你使用Maven,只需在...
在嵌入式Jetty环境下运行Struts2 Annotation项目是一个常见的任务,特别是在开发和测试阶段,因为这种方式能够快速启动服务,而无需依赖大型服务器容器。本文将深入探讨如何配置和执行这个过程,以及涉及的关键技术...
启动Jetty可以通过命令行方式执行Jetty安装目录下的启动脚本(如`start.jar`),或者通过编程的方式在Java应用程序中嵌入Jetty服务器。具体方法可以根据实际情况选择。 #### 五、总结 通过上述步骤,我们可以轻松...
这个例子展示了Jetty的易用性,也为我们提供了深入学习Jetty及其相关技术的起点,如Servlet、JSP和Web容器的管理。对于初学者来说,这是一个很好的实践项目,可以帮助理解Web应用的生命周期和工作原理。
除了作为一个独立的服务器运行,Jetty还可以嵌入到其他Java应用中,作为应用的一部分运行,提供Web服务功能。 9. **监控与管理**: Jetty提供了JMX(Java Management Extensions)支持,允许通过JMX工具进行远程...
Jetty的轻量级特性在于它不需要像其他服务器(如Tomcat)那样依赖于大型的应用服务器环境,可以独立运行或嵌入到任何Java应用程序中。 安装Jetty 6.1.26,你需要下载zip文件"jetty-6.1.26.zip"。解压后,你会得到一...
- **嵌入式使用**:Jetty可以被嵌入到其他Java应用中,作为应用程序的一部分运行。 6. **监控与日志** - **监控工具**:Jetty提供了一些监控端点,例如JMX(Java Management Extensions)接口,允许通过JConsole...
3. **嵌入式使用**:Jetty可以轻松地嵌入到其他Java应用程序中,作为Web服务的内部组件,简化了部署和管理。 4. **性能优化**:Jetty团队不断进行性能调优,9.4.2版本可能包含更快的请求处理速度、内存使用优化以及...
8. **强大的部署工具**:Jetty提供了WebAppContext类,可以方便地管理和部署Web应用程序,支持WAR文件和解压后的目录结构。 9. **持续更新与社区支持**:Jetty项目由Eclipse基金会维护,拥有活跃的社区和持续的更新...
它可以直接嵌入到Java应用中,无需单独部署,这使得Jetty成为开发和测试Web应用的理想选择。 然后是Spring MVC,它是Spring框架的一部分,用于构建基于模型-视图-控制器(MVC)模式的Web应用程序。Spring MVC通过...
标签“源码”和“工具”提示我们可能需要理解Jetty的内部工作原理,或者学习如何利用其他工具(如Maven插件)自动化部署。例如,我们可以使用`jetty-maven-plugin`来简化开发和测试流程。 至于文件“SecurityManage...
在Java应用程序中,Jetty可以直接嵌入,无需独立服务器进程,这样可以简化部署流程。 集成Jetty的步骤主要包括: 1. 添加Jetty依赖:在项目中引入Jetty的JAR文件或通过Maven/Gradle等构建工具添加依赖。 2. 初始化...
18. **嵌入Jetty**:将Jetty直接嵌入到Java应用程序中,简化部署流程。 19. **JEE服务器整合**:Jetty可与EJB容器配合,实现完整的Java EE功能。 20. **开发环境使用**:Jetty适合开发和调试,快速部署和更新应用...
在Java中,实现嵌入式的Servlet容器可以使用Jetty,Jetty是一个Java实现的开源的servlet容器,可以作为一个完整的Web服务器和Servlet容器,同时也可以嵌入在Java应用程序中。在Java程序中调用Jetty可以实现嵌入式的...