IDEA开发并部署运行WEB项目全过程

 更新时间:2025年07月16日 09:15:42   作者:努力奔跑的鱼  
文章介绍了WEB项目标准结构及部署方法,涵盖目录划分(如WEB-INF、classes、lib)、核心文件(web.xml、index.html),以及三种部署方式:直接放置webapps、war包部署、自定义路径配置,同时说明了IDEA中如何关联Tomcat、配置项目结构及部署原理

WEB项目的标准结构

一个标准的可以用于发布的WEB项目标准结构如下:

app 本应用根目录:

static 非必要目录,约定俗成的名字,一般在此处放静态资源 ( css js img)

WEB-INF 必要目录,必须叫WEB-INF,受保护的资源目录,浏览器通过url不可以直接访问的目录

  • classes 必要目录,src下源代码,配置文件,编译后会在该目录下,web项目中如果没有源码,则该目录不会出现
  • lib 必要目录,项目依赖的jar编译后会出现在该目录下,web项目要是没有依赖任何jar,则该目录不会出现
  • web.xml 必要文件,web项目的基本配置文件. 较新的版本中可以没有该文件,但是学习过程中还是需要该文件

index.html 非必要文件,index.html/index.htm/index.jsp为默认的欢迎页

url的组成部分和项目中资源的对应关系

WEB项目部署的方式

  • 方式1 直接将编译好的项目放在webapps目录下
  • 方式2 将编译好的项目打成war包放在webapps目录下,tomcat启动后会自动解压war包(其实和第一种一样)
  • 方式3 可以将项目放在非webapps的其他目录下,在tomcat中通过配置文件指向app的实际磁盘路径

在磁盘的自定义目录上准备一个app

在tomcat的conf下创建Catalina/localhost目录,并在该目录下准备一个app.xml文件

<!-- 
	path: 项目的访问路径,也是项目的上下文路径,就是在浏览器中,输入的项目名称
    docBase: 项目在磁盘中的实际路径
 -->
<Context path="/app" docBase="D:\mywebapps\app" />

启动tomcat访问测试即可

IDEA中开发并部署运行WEB项目

部署步骤

  • 建立tomcat和idea的关联
  • 使用idea创建一个javaWEB工程,在WEB工程中开发代码
  • 使用idea将工程构建成一个可以发布的app
  • 使用idea将构建好的app部署到tomcat中,启动运行

IDEA关联本地Tomcat

可以在创建项目前设置本地tomcat,也可以在打开某个项目的状态下找到settings

找到 Build,Execution,Eeployment下的Application Servers ,找到+号

选择Tomcat Server

选择tomcat的安装目录

点击ok

关联完毕

IDEA创建web工程

推荐先创建一个空项目,这样可以在一个空项目下同时存在多个modules,不用后续来回切换之前的项目,当然也可以忽略此步直接创建web项目

检查项目的SDK,语法版本,以及项目编译后的输出目录

先创建一个普通的JAVA项目

检查各项信息是否填写有误

创建完毕后,为项目添加Tomcat依赖

选择modules,添加 framework support

选择Web Application 注意Version,勾选 Create web.xml

删除index.jsp ,替换为 index.html

处理配置文件

在工程下创建resources目录,专门用于存放配置文件(都放在src下也行,单独存放可以尽量避免文件集中存放造成的混乱)

标记目录为资源目录,不标记的话则该目录不参与编译

标记完成后,显示效果如下

处理依赖jar包问题

在WEB-INF下创建lib目录

必须在WEB-INF下,且目录名必须叫lib!!!

复制jar文件进入lib目录

将lib目录添加为当前项目的依赖,后续可以用maven统一解决

环境级别推荐选择module 级别,降低对其他项目的影响,name可以空着不写

查看当前项目有那些环境依赖

在此位置,可以通过-号解除依赖

IDEA部署-运行web项目

检查idea是否识别modules为web项目并存在将项目构建成发布结构的配置

就是检查工程目录下,web目录有没有特殊的识别标记

以及artifacts下,有没有对应 _war_exploded,如果没有,就点击+号添加

点击向下箭头,出现 Edit Configurations选项

出现运行配置界面

点击+号,添加本地tomcat服务器

因为IDEA 只关联了一个Tomcat,红色部分就只有一个Tomcat可选

选择Deployment,通过+添加要部署到Tomcat中的artifact

applicationContext中是默认的项目上下文路径,也就是url中需要输入的路径,这里可以自己定义,可以和工程名称不一样,也可以不写,但是要保留/,我们这里暂时就用默认的

点击apply 应用后,回到Server部分. After Launch是配置启动成功后,是否默认自动打开浏览器并输入URL中的地址,HTTP port是Http连接器目前占用的端口号

点击OK后,启动项目,访问测试

  • 绿色箭头是正常运行模式
  • "小虫子"是debug运行模式

  • 点击后,查看日志状态是否有异常

  • 浏览器自动打开并自动访问了index.html欢迎页

  • 工程结构和可以发布的项目结构之间的目录对应关系

IDEA部署并运行项目的原理

  • idea并没有直接进将编译好的项目放入tomcat的webapps中
  • idea根据关联的tomcat,创建了一个tomcat副本,将项目部署到了这个副本中
  • idea的tomcat副本在C:\用户\当前用户\AppData\Local\JetBrains\IntelliJIdea2022.2\tomcat\中
  • idea的tomcat副本并不是一个完整的tomcat,副本里只是准备了和当前项目相关的配置文件而已
  • idea启动tomcat时,是让本地tomcat程序按照tomcat副本里的配置文件运行
  • idea的tomcat副本部署项目的模式是通过conf/Catalina/localhost/*.xml配置文件的形式实现项目部署的

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • 整理Java的MyBatis框架中一些重要的功能及基本使用示例

    整理Java的MyBatis框架中一些重要的功能及基本使用示例

    这篇文章主要介绍了Java的MyBatis框架中一些重要的功能及基本使用示例整理,MyBatis可以帮助Java程序进行强大的数据库操作,需要的朋友可以参考下
    2016-04-04
  • 剖析Spring WebFlux反应式编程设计及工作原理

    剖析Spring WebFlux反应式编程设计及工作原理

    这篇文章主要为大家介绍了Spring WebFlux反应式编程模型工作原理的剖析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-02-02
  • JVM内存参数配置详解

    JVM内存参数配置详解

    本文主要介绍了JVM内存参数配置详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • SpringBoot实现API接口多版本支持的示例代码

    SpringBoot实现API接口多版本支持的示例代码

    这篇文章主要介绍了SpringBoot实现API接口多版本支持的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • java中SimpleDateFormat 的多线程安全问题

    java中SimpleDateFormat 的多线程安全问题

    本文主要介绍了java中SimpleDateFormat 的多线程安全问题,包括其内部可变状态和竞争条件,文章提供了四种解决方案,下面就来详细的介绍一下
    2026-02-02
  • 深度解析Java @Serial 注解及常见错误案例

    深度解析Java @Serial 注解及常见错误案例

    Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签名和位置校验,建议新项目采用,本文给大家介绍Java @Serial 注解的相关知识,感兴趣的朋友一起看看吧
    2025-07-07
  • java实现给某个文件或文件夹设置特定访问权限

    java实现给某个文件或文件夹设置特定访问权限

    这篇文章主要为大家详细介绍了如何利用java实现给某个文件或文件夹设置特定访问权限,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-05-05
  • eclipse下搭建hibernate5.0环境的步骤(图文)

    eclipse下搭建hibernate5.0环境的步骤(图文)

    这篇文章主要介绍了eclipse下搭建hibernate5.0环境的步骤(图文),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • 如何用java做一个word转图片的功能详解

    如何用java做一个word转图片的功能详解

    这篇文章主要给大家介绍了关于如何用java做一个word转图片的功能,通过实现Java Word转图片功能,避免PDF中间转换损耗,涵盖分页处理、字体设置、性能优化及替代方案对比,需要的朋友可以参考下
    2025-05-05
  • feign开启日志Logger.Level feignLoggerLevel()中Level爆红的解决

    feign开启日志Logger.Level feignLoggerLevel()中Level爆红的解决

    这篇文章主要介绍了feign开启日志Logger.Level feignLoggerLevel()中Level爆红的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06

最新评论