【Jetty 用法总结】如何使用 WebAppContext 提供静态资源

文章首发于公众号【大数据学徒】,感兴趣请搜索 dashujuxuetu 或者文末扫码关注。 如题所述,本文介绍如何通过 Jetty 的 WebAppContext 类来提供 html 等静态资源。 内容提要: 环境说明 初始化项目 静态资源模块 Jetty 服务模块 运行效果 代码已上传至 github: https://github.com/iamabug/sunny 1. 环境说明 JDK版本:1.8 Jetty 版本:9.4.24.v20191120 开发环境:IntelliJ IDEA + Maven 插件 2. 初始化项目 新建项目 sunny,pom.xml 文件内容为: 4.0.0 iamabug sunny pom 0.0.1 1.8 9.4.24.v20191120 sunny-web sunny-server org.apache.maven.plugins maven-compiler-plugin 3.8.1 1.8 1.8 可以看到,项目包含两个子模块:sunny-web 和 sunny-server,前者是静态资源模块,后者是 Jetty 服务模块,前者将只包含 html, css, js等类型文件,后者则包含了启动 Jetty 和配置 WebAppContext 的 Java 代码。 3. 静态资源模块 sunny-web目录结构如下: sunny-web $ tree . ├── pom.xml ├── src │ ├── main │ │ ├── resources │ │ └── webapp │ │ ├── WEB-INF │ │ │ └── web.xml │ │ ├── images │ │ └── index.html │ └── test │ └── java └── sunny-web.iml 其中 web.xml 的内容为: index.html 其实在本文这种情况, web.xml 可以不存在或为空。 index.html 的内容为: Sunny Project

Sunny Project

Get started on 2019-11-27. 没有什么信息量的 html。 4. Jetty 服务模块 sunny-server 模块目录结构如下: sunny-server $ tree . ├── pom.xml ├── src │ ├── main │ │ ├── java │ │ │ └── iamabug │ │ │ └── ServerMain.java │ │ └── resources │ └── test │ └── java └── sunny-server.iml ServerMain.java 的内容为: package iamabug; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.webapp.WebAppContext; public class ServerMain { public static void main(String[] args) throws Exception { // 创建 Server 对象 Server server = new Server(12345); // 创建 WebAppContext 对象 WebAppContext context = new WebAppContext("./sunny-web/src/main/webapp", "/"); // 绑定 server.setHandler(context); // 启动 server.start(); server.join(); } } 代码逻辑非常清晰,首先创建一个 Server 对象,然后创建一个 WebAppContext 对象,这个对象接收发往 / 的请求,webapp 目录为 sunny-web 模块下的 webapp 目录,将以上两个对象绑定,然后启动 Server,结束。 5. 运行效果 启动 ServerMain 主函数,在浏览器访问 http://localhost:12345,运行效果为: 截屏2019-11-29下午5.15.22.png 虽然页面非常的朴实,但确实达到了预期的效果。 勤学似春起之苗,不见其增,日有所长 辍学如磨刀之石,不见其损,日有所亏 关注【大数据学徒】,用技术干货助你日有所长 大数据学徒

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):