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

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

  • 1 WEB项目的标准结构
  • 2 WEB项目部署的方式
  • 3 IDEA中开发并部署运行WEB项目
    • 3.1 部署步骤
    • 3.2 IDEA关联本地Tomcat
  • 4 IDEA创建web工程
  • 5 IDEA部署-运行web项目
  • 6 IDEA部署并运行项目的原理

1 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的组成部分和项目中资源的对应关系

在这里插入图片描述

2 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访问测试即可

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

3.1 部署步骤

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

3.2 IDEA关联本地Tomcat

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

找到 Build,Execution,Eeployment下的Application Servers ,找到+号
在这里插入图片描述

选择Tomcat Server
在这里插入图片描述

选择tomcat的安装目录

点击ok

关联完毕

4 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可以空着不写
    在这里插入图片描述

  • 查看当前项目有那些环境依赖
    在这里插入图片描述

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

5 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欢迎页

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

在这里插入图片描述

6 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配置文件的形式实现项目部署的
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/632523.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何快速实现Java发送邮件功能?

如何使用JAVA发送邮件&#xff1f;&#xff08;不做过多文字解释&#xff0c;详细说明请看代码注释&#xff09; 一&#xff0c;引用相关pom二&#xff0c;实现代码&#xff08;代码参考图片内容&#xff09;三&#xff0c; 接收邮件 一&#xff0c;引用相关pom <dependency…

24长三角C题9页完整建模思路+可执行代码

比赛题目的完整版思路可执行代码数据参考论文都会在第一时间更新上传的&#xff0c;大家可以参考我往期的资料&#xff0c;所有的资料数据以及到最后更新的参考论文都是一次付费后续免费的。注意&#xff1a;&#xff08;建议先下单占坑&#xff0c;因为随着后续我们更新资料数…

信息安全相关内容

信息安全 安全防护体系 安全保护等级 安全防护策略 安全技术基础 安全防护体系 安全防护体系有7个等级 安全保护等级 安全保护等级有5个等级,从上到下是越来越安全的用户自主其实就是用户自己本身具有的相应的能力 安全防护策略 安全策略是对抗攻击的主要策略安全日志: …

Java Chassis 3:接口维度负载均衡

本文分享自华为云社区《Java Chassis 3技术解密&#xff1a;接口维度负载均衡》&#xff0c;作者&#xff1a; liubao68。 Java Chassis 3技术解密&#xff1a;接口维度负载均衡 在Java Chassis 3技术解密&#xff1a;负载均衡选择器中解密了Java Chassis 3负载均衡在解决性能…

社交媒体数据恢复:事秘达

社交软件-事秘达的数据恢复教程如下&#xff1a; 首先&#xff0c;你需要停止使用事秘达应用&#xff0c;以避免覆盖已经删除的数据。 接着&#xff0c;你需要连接你的手机到电脑上&#xff0c;并打开手机的USB调试功能。这可以让电脑读取你手机的数据。 下载并安装一个数据恢…

重生奇迹MU快速获取经验解析

重生奇迹MU觉醒卡级怎么办快速获取经验攻略&#xff0c;在游戏中卡级是玩家会遇到的情况之一&#xff0c;面对打不过的敌人和过不去的主线&#xff0c;想办法升级才是最主要的&#xff0c;游戏中有很多获取经验的途径。下面让我们一起来了解一下卡级后获取经验的攻略&#xff0…

PatterNodes 3 mac矢量图设计 ,色彩与图案的完美融合!

PatterNodes 3 for Mac是一款功能强大的矢量图形模式创建软件&#xff0c;专为Mac用户设计。它采用基于节点的界面&#xff0c;支持创建形状、线条、曲线或文本&#xff0c;以构建复杂的矢量图形模式。该软件还具备灵活的参数调整功能&#xff0c;允许用户实时预览结果并进行无…

PLCnext用三种方式去编写一个功能块

先前提到的基于eCLR&#xff0c;PLCnext可以通过几种高级语言编写功能块、函数、等等&#xff0c;今天我们来试一下利用IEC61131、C、C#去制作加法功能块。 1.准备工具 PLCnext Engineer & 1152 Simulator PLCnext Engineer是上位编程软件&#xff0c;免费&#xff0c;11…

通俗易懂的策略模式讲解

什么是策略模式&#xff1f; 策略模式是一种设计模式&#xff0c;它允许你定义一系列的算法&#xff08;策略&#xff09;&#xff0c;并将每个算法封装成一个对象。这样&#xff0c;你可以轻松地切换不同的算法&#xff0c;而不需要改变原始代码。 一个简单的例子 假设你是…

ACM实训冲刺第八天

【碎碎念】由于昨天做的题都有思路&#xff0c;加上今天有点疲惫&#xff0c;故今天先不复习了&#xff0c;直接开始今天的算法学习 Tokitsukaze and All Zero Sequence 问题 思路 读入测试用例数&#xff1a;首先读取一个整数t&#xff0c;表示接下来会有t组数据需要处理。遍…

【达梦数据库】搭建 DM->mysql dblink

DM->mysql dblink 1安装mysql odbc rpm -ivh mysql-connector-odbc-5.3.14-1.el7.x86_64.rpm2mysql创建远程用户与远程数据库 mysql> show databases; ------------------------- | Database | ------------------------- | information_schema | …

【Linux系统编程】第十九弹---进程状态(下)

​​​​​​​ ✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、僵尸进程 2、孤儿进程 3、运行状态 4、阻塞状态 5、挂起状态 6、进程切换 总结 1、僵尸进程 上一弹…

OpenHarmony 3GPP协议开发深度剖析——一文读懂RIL

市面上关于终端&#xff08;手机&#xff09;操作系统在 3GPP 协议开发的内容太少了&#xff0c;即使 Android 相关的学习文档都很少&#xff0c;Android 协议开发书籍我是没有见过的。可能是市场需求的缘故吧&#xff0c;现在市场上还是前后端软件开发从业人员最多&#xff0c…

【Open AI】GPT-4o深夜发布:视觉、听觉跨越式升级

北京时间5月14日1点整&#xff0c;OpenAI 召开了首场春季发布会&#xff0c;CTO Mira Murati 在台上和团队用短短不到30分钟的时间&#xff0c;揭开了最新旗舰模型 GPT-4o 的神秘面纱&#xff0c;以及基于 GPT-4o 的 ChatGPT&#xff0c;均为免费使用。 本文内容来自OpenAI网站…

微服务架构:注册中心 Eureka、ZooKeeper、Consul、Nacos的选型对比详解

微服务架构&#xff08;Microservices Architecture&#xff09;是一种基于服务拆分的分布式架构模式&#xff0c;旨在将复杂的单体应用程序拆分为一组更小、更独立的服务单元。这些服务单元可以独立开发、测试、部署&#xff0c;并使用不同的技术栈和编程语言。它们通过轻量级…

外贸业务中的12个“坑”,你踩到了吗?

在竞争激烈的外贸领域&#xff0c;企业在拓展市场的同时&#xff0c;也面临着各种潜在的陷阱和风险。对于外贸公司而言&#xff0c;如何在复杂的交易过程中识破陷阱&#xff0c;防范潜在风险&#xff0c;成为确保企业长远发展的关键一环。 以下是一些外贸企业可能遇到的陷阱&a…

Nebula街机模拟器 Mac移植版(400+游戏roms)汉化版

nebula星云模拟器是电脑上最热门的街机游戏模拟器之一&#xff0c;玩家可以通过这个小巧的模拟器软件进行多款经典街机游戏启动和畅玩&#xff0c;本次移植的包含400多款游戏roms&#xff0c;经典的三国志、三国战纪、拳皇、街霸、合金弹头、1941都包含在内。 下载地址&#xf…

电感式传感器

电感传感器是基于电磁感应原理&#xff0c;将被测非电量&#xff08;如位移、压力、振动等&#xff09;转换为电感量变化的一种结构性传感器。利用自感原理的有自感式传感器&#xff08;可变磁阻式&#xff09;&#xff0c;利用互感原理的有互感式&#xff08;差动变压器式和涡…

aigc在前端中的应用-CodeGeex

前言&#xff1a;目前市场上优秀的智能编程助手有很多&#xff0c;其中以GitHub Copilot&#xff0c;Tabnine为最&#xff0c;但是目前这两款优质的智能编程助手都是需要付费的。如果不选择花费的话&#xff0c;在这里我们向小伙伴推荐免费的智能编程助手codegeex&#xff0c;性…

嵌入式——AStyle格式化工具

&#x1f3ac; 秋野酱&#xff1a;《个人主页》 &#x1f525; 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 keil配置快捷键配置 AStyle&#xff08;Artistic Style&#xff09;是一个开源的代码自动格式化工具&#xff0c;可以用于自动化代…