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

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

安防监控视频平台智能边缘分析一体机视频存储系统客流统计检测算法

智能边缘分析一体机的客流统计检测算法是一种基于人工智能与边缘计算技术的解决方案&#xff0c;专门设计用来实时、准确地统计通过特定区域的人流量。这项技术广泛应用于零售、交通、场馆管理、智慧城市等领域&#xff0c;以帮助管理者更好地理解顾客行为、优化资源配置、提升…

RS232/RS485信号转12路模拟信号 YL34隔离D/A转换器 4-20mA/0-5V/0-10V/0-20mA/0-25mA

特点&#xff1a; ● RS-485/232接口&#xff0c;隔离转换成12路标准模拟信号输出 ● 可选型输出4-20mA或0-10V控制其他设备 ● 模拟信号输出精度优于 0.2% ● 可以程控校准模块输出精度 ● 信号输出 / 通讯接口之间隔离耐压3000VDC ● 宽电源供电范围&#xff1a;10 ~ …

什么是控制,什么是控制系统?复杂的动态系统怎么被控制的?

在汽车研发中或者购买新能源汽车中&#xff0c;通常能提到什么EPS控制、ABS控制、智能域控等等各种说法&#xff0c;听起来让人觉得非常不一般&#xff0c;但是&#xff0c;这控制究竟是什么&#xff1f;控制的又是什么&#xff1f;其实很好理解&#xff01; 关注我&#xff0c…

Unity Mirror 从入门到入神(一)

Mirror从入门到成神 文章目录 Mirror从入门到成神简介NetworkClientRegisterPrefabConnect (string address)Disconnect ()activeactiveHost NetworkServerSpawn 简介 Mirror是一个unity网络同步框架&#xff0c;基于MonoBehaviour生命周期的回调的基础上进行数值的同步&#…

HTML+CSS练习小项目——百叶窗

前言&#xff1a;在学习完HTML和CSS之后&#xff0c;我们就可以开始做一些小项目了&#xff0c;本篇文章所讲的是新手可以练习的小项目——百叶窗 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客 先让我们看一下效果&#xff1a…

python怎么安装matplotlib

1、登陆官方网址“https://pypi.org/project/matplotlib/#description”&#xff0c;下载安装包。 2、选择合适的安装包&#xff0c;下载下来。 3、将安装包放置到python交互命令窗口的当前目录下。 4、打开windows的命令行窗口&#xff0c;通过"pip install"这个命令…

K8S认证 | CKA题库 + 答案 | 权限控制RBAC

1、权限控制RBAC 您必须在以下Cluster/Node上完成此考题&#xff1a; Cluster Master node Worker node k8s master …

如何加密电脑文件夹?重要文件夹怎么加密?

文件夹可以帮助我们管理电脑数据&#xff0c;而文件夹并不具有安全保护功能&#xff0c;很容易导致数据泄露。因此&#xff0c;我们需要加密保护电脑文件夹。那么&#xff0c;如何加密电脑文件夹呢&#xff1f;下面我们就来了解一下。 EFS加密 EFS加密是Windows提供的数据加密…

普通人也能创业!轻资产短视频带货项目,引领普通人实现创业梦想

在这个信息爆炸的时代&#xff0c;创业似乎成为了越来越多人的梦想。然而&#xff0c;传统的创业模式 keJ0277 往往伴随着高昂的资金投入和复杂的管理流程&#xff0c;让许多普通人望而却步。然而&#xff0c;现在有一种轻资产短视频带货项目正在悄然兴起&#xff0c;它以其低…

.net下使用cap实现消息异步处理

介绍 github地址 CAP 是一个基于 .NET Standard 的 C# 库&#xff0c;它是一种处理分布式事务的解决方案&#xff0c;同样具有 EventBus 的功能&#xff0c;它具有轻量级、易使用、高性能等特点。 新建项目 新建.net7web项目 安装依赖包 安装软件 安装redis和Sql Server …

MyBatis操作数据库(动态SQL)

1 动态SQL 动态SQL是MyBatis的特征之一&#xff0c;能够完成不同条件下不同的SQL拼接 1.1 <if>标签 在注册用户的时候&#xff0c;可能会有这样一个问题&#xff0c;由于注册分为两种字段&#xff1a;必填字段和非必填字段&#xff0c;如果在添加用户的时候有不确定的…

一个简单的webservice客户端demo

首先我们是客户端&#xff0c;我们要找一个服务端来配合我们调试&#xff0c;可以在这个网址里找个你喜欢的免费服务WEB服务&#xff08;Web Servicrs&#xff09;| 免费WEB服务 | 商业WEB服务 | XML Web Servicrs - WEBXML 比如下面这个查手机号归属地的&#xff1a; 我们新建…

文字游侠AI丨简直是写作神器,头条爆文一键生成稳定赚米!附渠道和详细教程(只需四步)!

在数字时代的浪潮中&#xff0c;人们不断寻求网络空间中的商机&#xff0c;期望在互联网的浩瀚海洋里捕捉到稳定的财富。随着人工智能技术的突飞猛进&#xff0c;越来越多的AI工具被融入到各行各业&#xff0c;开辟了新天地&#xff0c;带来了创新的盈利模式。 其中&#xff0c…

算法day07

第一题 30. 串联所有单词的子串 上题题意如下&#xff1a; 将w数组里面的字符串随机排列&#xff0c;只要在s字符串中找到相对应的w组成的字符串&#xff0c;则返回s中对应字符串首位元素的第一个下标&#xff1b; 有上述题意所知&#xff0c;解题思路如上一题故事&#xff0c…

在澳门写代码;技术入股2次融资被踢;现在只想做独立开发

本期我们邀请的程序员是Albert&#xff0c;先后在广州、澳门、珠海、香港工作过&#xff0c;打工上班、合伙创业、远程工作、独立开发&#xff0c;工作经历丰富&#xff0c;如果你想知道哪些程序员踩过的坑&#xff0c;请别错过他的故事。 广州&#xff1a;第一份工作2000块一…

代码随想录-算法训练营day41【动态规划04:01背包问题-滚动数组、分割等和子集】

代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 第九章 动态规划part04● 01背包问题,你该了解这些! ● 01背包问题,你该了解这些! 滚动数组 ● 416. 分割等和子集 正式开始背包问题,背包问题还是挺难的,虽然大家可能看了很多背包问题模板代码,感觉挺简单,…

【附poc】H5 云商城漏洞

漏洞描述 H5 云商城 file.php 文件上传,攻击者可通过此漏洞上传恶意脚本文件&#xff0c;对服务器的正常运行造成安全威胁&#xff01;漏洞可在圈子中获取&#xff0c;8000陆续更新中&#xff01; 漏洞复现 语法及其界面 1、fofa&#xff08;会员可在圈子获取&#xff09; b…

Java JDK下载安装教程(2024年)

博主介绍&#xff1a;✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…

这10款安卓APP,简直好用到爆!

AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频http://AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频 1.追书——追书神器 追书神器是小说追新大神&#xff0c;全网实…

520告白好物有哪些?收下这份清单不迷茫!

在这个充满爱意的日子里&#xff0c;你是否正在为如何向心仪的人表达深情而犯愁&#xff1f;别担心&#xff0c;我们为你精心准备了一份520告白好物清单都是一些实用的礼品&#xff0c;为你提供多样化的选择&#xff0c;助你轻松传达爱意&#xff0c;让告白不再迷茫。快来看看吧…