【年薪百万之IT界大神成长之路三】 创建 Maven-Web 项目 Dynamic Web Module 4.0

 

[catalog]

 
  1. Dynamic Web Module,Tomcat,JDK 三者对应关系
  2. 什么是Archetype,WEB-INF 文件夹
  3. 创建Maven-Web项目
  4.【每日一面】folder,source folder,package三者的关系
 
 

1. Dynamic Web Module与Tomcat对应关系

dynamic web module versiontomcat versionjdk versionweb socket criterion
2.23.31.1not support
2.34.11.3not support
2.45.51.4not support
2.56.05not support
3.07.061.1
3.18.071.1
4.09.081.1

2. 什么是 Archetype

Archetype 是Maven工程的模板工具包。一个Archetype定义了要做的相同类型事情的初始样式或模型。这个名称给我们提供了一个一致的生成Maven工程的方式。Archetype会帮助作者给用户创建Maven工程模板,并给用户提供生成相关工程模板版本的参数化方法。

  • 常用的两个模板
1.maven-archetype-quickstart
  默认的Archetype,快速创建一个基本项目,内容包括:
  一个包含junit依赖声明的pom.xml
  src/main/java主代码目录及一个名为App的类
  src/test/java测试代码目录及一个名为AppTest的测试用例
2.maven-archetype-webapp
  一个最简单的 Maven war 项目模板,生成的项目内容包括:
  一个packaging为war且带有junit依赖声明的pom.xml
  src/main/webapp/目录
  src/main/webapp/index.jsp文件
  src/main/webapp/WEB-INF/web.xml文件
  • WEB-INF 文件夹
    大家都知道该目录下面的文件是不能直接在浏览器下访问的,只能是Java文件调用访问。
    web-inf 是Java web的安全目录 ,之所以说他安全是因为客户端不可以访问,只有服务器端可以访问,如果想在客户端访问,也不是不可能,在web.xml文件中对要访问的文件进行映射配置就OK了。

3. 创建Maven Web 项目

新建项目快捷键 Alt+Shift+N 选择 Maven Project,注意不要跳过模板选择,也就是不要打上勾,直接下一步。

在这里插入图片描述

搜索"org.apache.maven"找到下面的模板,一个最简单的Maven war项目模板。会帮我们生成一个packaging为war且带有junit依赖声明的pom.xml、src/main/webapp/目录、index.jsp文件和web.xml文件。下一步。

在这里插入图片描述
输入Group Id和Artifact Id,点击"Finish"完成创建。
Group Id 是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。
Artifact Id 是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。

在这里插入图片描述
发现我们的项目有很多错误,看错误描述:新生成工程默认的jdk和compiler是1.7的但我们使用的JRE是11的。并且jsp还缺少 “javax.servlet.http.HttpServlet” 类。这是因为网上的web模板太旧了,使用的web.xml是2.3版本的,jre用的1.7

在这里插入图片描述
选中项目 Alt+Enter 进入到项目属性中,点击"Project Facets"把Dynamic Web Module 和 Java 这两项的勾去掉,点击应用,关闭。

在这里插入图片描述
回到Eclipse界面,发现项目中网络模块和Java模块已经没了,只剩下静态资源,下面的报错说,找不到解析类。先不去管它。

在这里插入图片描述
选中项目 Alt+Enter 进入到项目属性中,点击"Project Facets"把Dynamic Web Module 改为 4.0 Java 的版本改为 11,然后这两项的勾打上,不要着急下一步,点击下面出来的黄框,需要做进一步的设置

在这里插入图片描述
我们的目录结构为 src/main/java,默认的src要remove掉

在这里插入图片描述
Add Folder 重新设置文件夹,改成正确的路径,下一步

在这里插入图片描述
配置网络模块的路径,默认的WebContent也已经不对了,改为正确的 src/main/webapp,并把下面的勾打上,会帮我们自动生成web.xml文件。设置好点"OK",应用并关闭。

在这里插入图片描述
回到Eclipse界面,这时候我们的项目已经正确出现了Dynamic Web Module 4.0

在这里插入图片描述
去解决 “javax.servlet.http.HttpServlet” 这个问题,项目右键,点击"Build Path"进行设置,去添加依赖库。

在这里插入图片描述
发现目录结构不全,完整的目录结构应该包含四个,这个待会再添加。

  1. src/main/java
  2. src/main/resources
  3. src/test/java
  4. src/test/resources

在这里插入图片描述
切换到"Library"依赖库,JRE要编辑一下

在这里插入图片描述
修改为工作空间默认的JRE,点击"Finish",返回到"Build Path"界面,点击"Add Library"添加依赖库,这块我忘截图了,相信你能找到。

在这里插入图片描述
选择"Server Runtime",下一步。

在这里插入图片描述
选择 “Apache Tomcat v9.0” 点击 “Finish”

在这里插入图片描述
配置后的依赖如图

在这里插入图片描述
回到项目,补全目录结构。

在这里插入图片描述
项目右键New → Source Folder,把缺少的全部补全。

在这里插入图片描述
补全后的完整项目结构

在这里插入图片描述
到这里还不行,需要修改一下 web.xml 和 pom.xml,修改为4.0版本和JDK11编译版本

【web.xml】
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
	id="WebApp_ID" version="4.0">
	<display-name>Archetype Created Web Application</display-name>
</web-app>
【pom.xml】
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.ITGodRoad</groupId>
	<artifactId>DigIntoSpringMVC</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>

	<name>DigIntoSpringMVC Maven Webapp</name>
	<url>http://www.example.com</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<maven.compiler.source>11</maven.compiler.source>
		<maven.compiler.target>11</maven.compiler.target>
	</properties>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<finalName>DigIntoSpringMVC</finalName>
		<pluginManagement>
			<plugins>
				<plugin>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>3.8.1</version>
					<configuration>
						<release>11</release>
					</configuration>
				</plugin>
				<plugin>
					<artifactId>maven-war-plugin</artifactId>
					<version>3.2.3</version>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
</project>

改完又报错了,因为和之前的编译版本不一样有冲突了,需要更新一下依赖

在这里插入图片描述
项目右键 → Maven → Update Project

在这里插入图片描述
等待下载完成后,切换到"Server"视图,右键 Tomcat 服务器 → 添加部署项目

在这里插入图片描述
选中我们的项目,点击"Add"部署完项目后,点击"Finish"
在这里插入图片描述
启动我们的项目

在这里插入图片描述
打开浏览器,输入"http://localhost:8080/DigIntoSpringMVC/"
唰~(高级转场特效)

在这里插入图片描述
 
 

【每日一面】

folder,source folder,package三者的关系

folder,source folder,package在eclipse中都是文件夹的意思,任何类型的文件都可以往这三种文件夹里放。

folder:是普通的文件夹,和我们 windows 下使用的文件夹没有任何区别,作用就是对文件进行管理。
source folder:是用来存放Java源代码的,其下的所有Java源文件都会被时时编译成 class 文件。对于 JavaSE 项目会被编译到项目的bin目录下,对于JavaEE项目会被编译到相应的/WEB-INF/classes文件夹中。(bin文件夹和classes文件夹都不会在IDE中显示)sourceFolder靠"/"来进行上下级划分。
package:是一种特别的文件夹,他的特别之处在于:它必须存在于 source folder 下面,当建立一个 package 时,会自动建立到 source folder 下。它的路径最后组成了每一个类的包路径名,package靠"."来进行上下级划分。
package、folder 之间相互转换
package 转成 folder 显示:选中package, build path-> Exclude
folder 转成 package 显示:选中folder,build path-> Include
package、source folder 之间相互转换
package 转成 source folder 显示:选中package,build path-> Use as Source folder
source folder 转成 package 显示:选中folder,build path-> Remove from BuildPath

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值