【年薪百万之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: 可能是因为您的项目不是一个动态Web项目,或者您的Eclipse版本不支持动态Web模块。请确保您的项目类型正确,并检查您的Eclipse版本是否支持动态Web模块。如果问题仍然存在,请尝试重新安装Eclipse或使用其他IDE。 ### 回答2: 当我们在Eclipse或其他集成开发环境中创建Web项目时,经常会遇到需要设置Dynamic Web Module版本号的情况。Dynamic Web ModuleJavaEE规范中定义的一种Web应用程序规范,它定义了一些Web项目的基本结构和特性。 在Eclipse中,我们可以通过右键单击项目,选择“Properties”来打开项目属性窗口。然后在该窗口中,我们可以找到“Project Facets”选项。在这个选项卡中,我们可以勾选或取消勾选Dynamic Web Module。 但是有时候我们可能会遇到无法勾选Dynamic Web Module的情况。这可以是由于几个原因导致的: 1. 该项目可能不是一个Web项目Dynamic Web Module只能应用于Web项目,因此如果当前项目不是一个Web项目,我们就无法勾选这个选项。 2. 项目可能已经被设置为其他类型的模块:有时候我们可能已经将项目设置为其他类型的项目模块,如EAR或JAR模块,这就导致无法再设置为Dynamic Web Module。 3. 缺少必需的插件或软件:在一些特殊情况下,我们可能需要安装或更新一些插件或软件,以确保我们能够正常使用Dynamic Web Module的功能。 解决这个问题的方法通常是确保我们满足了上述的要求。首先,我们需要确保当前项目是一个Web项目,如果不是,我们需要创建一个新的Web项目。其次,我们需要确保没有将项目设置为其他类型的模块。最后,我们可能需要更新一些插件或软件,以确保我们能够正确使用Dynamic Web Module的功能。 总之,无法勾选Dynamic Web Module可能是由于项目不是Web项目,被设置为其他类型的模块或者缺少必需的插件等原因所致。我们需要确保满足上述条件,以便能够正常地使用Dynamic Web Module的功能。 ### 回答3: dynamic web module 是一个用于开发 Web 应用程序的模块,它是 Java EE 规范的一部分。动态 Web 模块提供了许多功能,例如 Servlet、JSP 和动态资源等,这些可以让我们构建灵活而且具有交互性的 Web 应用程序。 动态 Web 模块无法勾选的原因可能有几种可能性,以下是可能的解决方法: 1. 检查项目是否已经被定义为动态 Web 项目。可以右键单击项目,选择 Properties(属性),然后选择 Project Facets(项目结构)选项卡。在这里,确保 Dynamic Web Module(动态 Web 模块)选项已被勾选,并且设置了正确的版本号。 2. 检查项目是否已经被关联到正确的服务器。在 Project Facets(项目结构)选项卡中,确保已选中正确的运行时(服务器)和目标运行时。如果没有可用的运行时,请点击 New Runtime...(新建运行时)按钮来添加。 3. 如果项目使用了 Maven 或其他构建工具,请检查项目的配置文件中是否正确配置了动态 Web 模块和相关依赖。您可以参考相应的文档或构建工具的指南来进行配置。 4. 确保项目的构建路径正确配置了所有必需的 JAR 文件和资源。在 Eclipse 中,您可以通过右键单击项目,选择 Build Path(构建路径)-> Configure Build Path(配置构建路径)来检查和配置构建路径。 如果尝试了以上方法仍然无法勾选 dynamic web module,可能是由于其他原因导致的问题。此时建议您在开发工具的相关论坛或官方文档中寻求更详细的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值