嵌入式Web容器-Jetty

5 篇文章 0 订阅

Spring MVC是Spring生态体系中最重要的部分

M:(Model模型)、V:(View视图)、C:(Controller控制器)

MVC是一种编程结构,而不是一种模式。

Jetty

1. Jetty是一个开源的servlet容器

2. 开发人员可以将Jetty容器实例化成一个对象,无需依赖外部环境,让程序以独立方式(stand-alone)运行。

3. Jetty相比Tomcat更灵活,理轻便,特别适合开发环境

4. Jetty通过Maven插件的形式引入

Jetty开发套路

1. 创建webapp目录,包含/web-inf/web.xml

2. pom.xml引入插件jetty-maven-plugin

3. 利用Jetty:run启用嵌入式web应用

4. 通过引入webdefault.xml解决无法热部署的问题

步骤:

1. 创建一个空白的Maven项目jetty

2. 创建web配置文件src/main/webapp/WEB-INF/web.xml,可以在src/main→右键菜单→New→ File

3.文件内容如下:

<?xml version="1.0"encoding="utf-8"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee

                http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"

version="3.1">



</web-app>

4.在https://search.maven.org上搜索jetty的最新稳定版(关键字org.eclipse.jetty:jetty-maven-plugin),然后在pom.xml的根元素<project><build><plugins><plugin>加在这里</plugin>/plugins></build></project>加入以下代码

<!-- 用于构建应用程序-->

<build>

<!-- 构建插件 -->

<plugins>

<plugin>

<groupId>org.eclipse.jetty</groupId>

<artifactId>jetty-maven-plugin</artifactId>

<version>替换为最新稳定版本号</version>

<!-- 应用程序配置-->

<configuration>

<!--应用启动后加载webapp网页与资源-->

<webAppSourceDirectory>src/main/webapp</webAppSourceDirectory>

<httpConnector>

<!--应用端口号,默认为8080端口-->

<port>80</port>

</httpConnector>

</configuration>

</plugin>

</plugins>

</build>

写到这里时,Jetty的配置就完成了

5. 测试网页

在webapp目录下加入index.html,如下

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Jetty测试</title>

</head>

<body>

I am Jetty page!!

</body>

</html>

6.在IDEA的右侧打开Maven的插件栏,双击运行如下:

运行结果如下:

无法启动web服务,如上图,红色圈处为错误原因,表示Jetty不支持jar包,因为Maven项目默认打包为jar包

解决方案如下:

在pom.xml关于项目部分加入打包方式的标签如下:

再次启动,如下,Web服务启动

小技巧:将Maven插件的命令配置为运行的快捷方式

菜单“Run→Add Configuration”或在工具栏点击“Add Configuration”

后面可以在工具栏直接使用Maven的命令启动应用服务器了

新问题:在运行时修改html文件,保存时会出现以下问题:

这是因为Jetty默认是以独占方式访问html文件,我们需要修改相关配置

1. 找到maven的本地仓库,默认为路径为:用户目录\.m2\repository

在其下继续找到jetty的保存目录(包路径):org\eclipse\jetty\jetty-webapp\当前版本号

2.使用解压软件打开jetty-webapp-版本号.jar,复制jar包中的org\eclipse\jetty\webapp\webdefault.xml文件到项目的resources目录下

3.查找webdefault.xml文件的<param-name>userFileMappedBuffer</param-name>配置项,并修改其值为false,如下图所示

4. 在pom.xml中修改相关配置,让Jetty可以加载我们指定的配置文件。如下图所示

最后,感谢杨勇老师的教导。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值