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可以加载我们指定的配置文件。如下图所示
最后,感谢杨勇老师的教导。