IntelliJ IDEA 2021.2.1如何创建Web项目——超详细(没有之一) - 指南
我查了很多资料,都讲的是老版本的方式创建,但是idea版本不同,结构也有很大变化,导致很多人根本找不到教程里面的选项卡。废话不多说,上正题。
首先,你需要知道IDEA 的 Project 是工作空间(Workspace),而 Module 才是工程(Project)。
一、我们要明确你是需要建一个简单项目还是多模板的复杂项目。以下分类:
简单项目:
直接创建带 Web 模板的 Project,勾选 Web Profile,避免多 Module 的复杂性。直接建带 Web 模板的Mudule也可以。复杂项目:
Step 1:创建空 Project 作为工作空间。
Step 2:通过
New > Module逐步添加 Web 模块 (或者其他模板)。Step 3:为每个 Module 单独配置依赖和构建方式。
这是复杂项目的基本示例:
my-workspace (Project)
├── web-module (Java EE Module)
│ ├── src/main/webapp
│ └── pom.xml
└── service-module (Java Module)
├── src/main/java
└── pom.xml
二、建一个完整Web项目的流程图:

三、建带有Web 模板的 Project(如果想要直接建一个带有Web模板的Module,直接在New过程中New一个Module,再按照以下步骤继续即可)
<1>点击File
<2>点击New

<3>点击Project

<4>点击Java Enterprise

为什么要选择Java Enterprise?
Java Enterprise模板:提供Java EE(现Jakarta EE)标准支持,适合构建企业级Web应用。
<5>将右边信息完善

为什么要修改模板为Web Application?
Web Application模板:生成标准的Web项目结构(如
webapp/WEB-INF目录),包含默认的index.jsp和web.xml。
<6>勾选Dependencies下的Web Profile (8.0.1)



勾选Dependencies下的Web Profile (8.0.1)的原因
作用:
Web Profile:包含Web开发核心依赖(Servlet、JSP、JAX-RS等),不包含冗余的企业级功能(如EJB)。
必要性:推荐勾选Web Profile,满足大多数Web开发需求,避免不必要的依赖。
由此这样一个Web项目创建了,但是还需要进行配置,在下面,这里我要先讲解一下Add Framework Support的作用。
四、何时需要通过 Add Framework Support 补全项目结构?
1. 项目结构缺失的常见场景
初始创建项目时未选择Web模板:
若创建项目时未勾选Web Application模板,则不会生成webapp目录和WEB-INF/web.xml。误删关键目录:
手动删除webapp或WEB-INF目录后,需重新添加Web支持。从非Web项目转换为Web项目:
例如,最初创建的是普通Java项目,后续需改为Web项目。
2. 如何判断是否需要补全?
缺失标志:
项目中无
webapp目录或WEB-INF文件夹。无法创建JSP/Servlet文件(IDE无相关支持)。
运行时报错
No WebApplicationContext found或404 Not Found。
3. 操作步骤
右键项目根目录 → Add Framework Support...。
勾选 Java EE (8) → Web Application (4.0)。
确认生成
webapp和WEB-INF/web.xml。具体操作:


再点击OK即可,再在项目结构一栏看是否含有这些:
五、先建空项目,再在项目中建立带有Web 模板的Module
<1>点击File
<2>点击New

<3>点击Project
<4>点击Empty Project
<5>点击Next

<6>给项目取名字以及放在某一个位置,再点击Finish

<7>他会自动弹窗,如果没有弹窗也不要慌,按照上面的步骤File->Project Structure->Modules即可。
<8>点击+号,再点击New Module

<9>选择Java Enterprise
<10>完善右边信息,再点击Next

<11>勾选Web Profile,点击Finish

再点击OK

<12>检查是否有这些结构

六、配置Tomcat服务器
<1>点击Run

<2>点击Edit Configuration

<3>点击+号

<4>点击Tomcat Server的Local

<5>点击Configure...,配置好Tomcat地址,再点击OK


<6>得到当前页面,再点击OK

七、部署项目Artifact:
1. 切换到 Deployment 选项卡。
2. 点击 + → Artifact,选择项目的 war exploded(推荐开发阶段使用)。




再点击OK->OK,则完成了。
八、补充-->设置应用上下文路径,这一步骤对于多模板的项目来说,是很有必要的,但是如果只是单项目,其实没必要
1. 什么是应用上下文路径?
定义:Web应用在服务器中的根访问路径。
示例:
默认路径:
http://localhost:8080/(对应/)。自定义路径:
http://localhost:8080/myapp(对应/myapp)。
2. 为什么需要修改上下文路径?
避免冲突:
若服务器已部署同名应用,需通过不同上下文路径区分。多模块管理:
一个Tomcat实例中运行多个独立应用(如/app1和/app2)。生产环境兼容:
匹配域名或子路径(如https://example.com/myapp)。
3. 如何设置上下文路径?
1. 进入Run->Edit Configuration->Tomcat server->对应的Tomcat版本->Deployment->不断下拉找到Application context:





2.修改Application context:
1. 输入自定义路径(如 /myapp)。
2. 留空则默认为根路径 / 或者 /项目名_war_exploded。

3.保存并重启Tomcat:
访问 http://localhost:8080+你修改的路径 验证。
4.有的地方会说修改Path Relative to Deployment Root
<1>二者的详细作用解析
1. Path Relative to Deployment Root
功能:
定义 Web资源(如JSP、HTML、CSS)在服务器中的物理存储路径,相对于Tomcat的部署根目录(webapps)。示例:若设置为
/myapp,则资源会被部署到webapps/myapp目录下。默认值:
/,即直接部署到webapps/ROOT。
操作路径:
File > Project Structure > Modules > Web > Path Relative to Deployment Root影响场景:
构建项目生成的
war或war exploded的目录结构。资源文件在服务器中的实际存储位置。
2. Application Context
功能:
定义 应用在服务器中的逻辑访问路径(即URL中的上下文路径)。示例:若设置为
/myapp,则访问地址为http://localhost:8080/myapp。默认值:
/,即通过根路径http://localhost:8080访问。
操作路径:
Run > Edit Configurations > Tomcat Server > Deployment > Application Contex影响场景:
浏览器中访问应用的URL路径。
服务器内部路由映射逻辑。
<2>两者关系与配合
1. 典型配置组合
| 配置场景 | Path Relative to Deployment Root | Application Context | 最终效果 |
|---|---|---|---|
| 默认部署 | / | / | 资源在 webapps/ROOT,通过 http://localhost:8080 访问 |
| 独立子路径部署 | /myapp | /myapp | 资源在 webapps/myapp,通过 http://localhost:8080/myapp 访问 |
| 路径分离部署(不推荐) | /web-resources | /myapp | 资源在 webapps/web-resources,但需通过 http://localhost:8080/myapp 访问 |
2. 推荐配置原则
保持一致性:
确保Path Relative to Deployment Root和Application Context的值相同,避免物理路径与逻辑路径不匹配常见错误:
路径冲突:
若两者不一致,可能导致资源加载失败(如CSS/JS文件404)。重复路径:
若Application Context设置为/myapp,但Path Relative to Deployment Root为默认/,实际访问路径会是http://localhost:8080/myapp,但资源存储在webapps/ROOT中,导致服务器无法正确映射。
<3>操作流程建议
1. 标准配置流程
[1] 设置物理路径(上面有图片流程):
File > Project Structure > Modules > Web → 修改 Path Relative to Deployment Root 为 /myapp。
[2] 设置逻辑路径:
Run > Edit Configurations > Tomcat > Deployment → 修改 Application Context 为 /myapp。
具体图片流程:
1. 进入File->Project Structure->Modules->Web:
2.修改 对应模板的Path Relative to Deployment Root:
1. 输入自定义路径(如 /myapp)。
2. 留空则默认为根路径 /。

[3] 验证部署:
启动 Tomcat,访问 http://localhost:8080/myapp。
检查 webapps 目录下是否生成 myapp 文件夹。
2. 快速修复路径问题
症状:页面能访问,但静态资源(CSS/JS)加载失败。
解决:
确保 HTML/JSP 中引用的资源路径包含上下文路径:html
九、热部署
扩展:在开发基于 Tomcat 的 Java Web 应用时,每次代码或资源文件的修改均需 完整重启服务器并重新部署项目,导致开发效率低下。需实现 热部署(Hot Deployment),即在不重启 Tomcat 的情况下,使代码变更实时生效,减少开发迭代的等待时间。
<1> 技术背景与挑战
传统部署流程:
修改代码 → 重新编译 → 重启 Tomcat → 重新部署 WAR 包 → 验证变更。
耗时环节:服务器冷启动、资源重新加载、会话状态丢失。热部署的核心要求:
动态类加载(Dynamic Class Reloading):JVM 运行时替换已修改的类文件。
资源热更新(Hot Resource Update):静态文件(如 JSP、HTML、CSS)实时同步至服务器。
上下文保留(Context Preservation):保持 HTTP 会话(Session)和应用程序状态。
技术限制:
类结构变更(Schema Changes):如修改类成员变量或方法签名,需重启 JVM。
框架级热部署支持:依赖框架(如 Spring)的实时刷新机制。
<2> 解决方案与配置步骤 ( 启用 Tomcat 热部署(针对非 Spring Boot 项目))
配置 Tomcat 的
war exploded部署模式操作路径:
Run/Debug Configurations→ 选择 Tomcat 配置 →Deployment选项卡。关键设置:
部署类型选择
war exploded(未压缩目录结构)。On Update action:
Update classes and resources(保存时更新类和资源)。On frame deactivation:
Update classes and resources(窗口失焦时触发更新)。
效果:修改 Java 类或资源文件后,IDEA 自动同步到
target/[module]-exploded目录,Tomcat 动态加载变更。
IDEA 自动编译设置
操作路径:
File → Settings → Build, Execution, Deployment → Compiler。关键设置:
勾选
Build project automatically(自动编译项目)。勾选
Allow auto-make to start even if developed application is currently running(允许运行时自动编译)。
验证热部署
测试:浏览器刷新页面,验证变更生效。
保存文件(
Ctrl + S),观察 Tomcat 控制台输出:log
[INFO] Reloading Context with name [/myapp] is completed修改一个 Java 类(如
UserController.java)的方法逻辑。



浙公网安备 33010602011771号