IDEA的使用(四)创建不同类型的工程(IntelliJ IDEA 2022.1.3版本)
1. 创建Java工程
创建之后,src下是空的。可以在src下创建软件包Package,命名采用域名倒序。在软件包下再创建Java类。Java类运行后出现中文乱码,就到控制台和文件编码这两个地方设置编码。
2. 创建JavaWeb工程
2.1 在win11和IDEA中配置Tomcat
windwos10上安装tomcat(详细步骤)_tomact 10.1-CSDN博客
首先按照网上搜索的安装(不一定是上面链接,下面的资源绑定里也有)方法在win11或win10安装最新版本的Tomcat(我安装的是Tomcat 9.0.41)。然后在IDEA中设置。
2.2 创建JavaWeb工程
在项目上右键创建新模块,
在这个模块上右键,点击添加框架支持(add Framework Support),勾选Web Application,选择版本4.0,勾选创建web.xml。
得到如下:
2.3 把当前JavaWeb工程配置到Tomcat中
运行栏选择编辑配置,添加新配置本地Tomcat,选择部署Deployment中的添加工件Artifact。
得到工件如下所示,修改应用程序上下文(决定浏览器显示的访问路径工程名叫什么。一般删去“_war_exploded”)。如果需要多个模块使用Tomcat,可以把Tomcat实例的名称修改为模块名,以作区分。点击应用。
然后修改Sever服务器,确认浏览器和打开路径、端口号。
启动Tomcat:
如果Tomcat控制台乱码
Tomcat 9.0.41在IDEA中乱码问题(IntelliJ IDEA 2022.1.3版本)_时时师师的博客-CSDN博客
2.3.1 进行Tomcat热部署:
执行更新操作时:
更新资源:修改jsp文件保存后,点击刷新浏览器页面就可以看到效果。
更新类和资源:修改java代码和jsp文件保存后,点击刷新浏览器页面就可以看到效果。
重新部署:每次更新,重新打包工件Artifact部署。
重启服务器:更新就重启一次Tomcat。
示例中,我们暂时把下面两个都选择更新资源。
重启Tomcat,然后看到标题和内容都没变,修改标题和内容并保存,刷新页面看到修改内容,证明已经热部署成功了。
2.3.2 启动时一起启动tomcat内的预装项目
关于tomcat配置,如果要在启动时一起启动tomcat内的预装项目,而不仅仅是当前部署项目,需要勾选端口配置右侧两个多选框的第一个,也就是部署tomcat实例中配置的应用程序。
3. 创建Maven的Java工程
Maven的安装和配置 (win11)-CSDN博客
https://blog.csdn.net/qq_41915723/article/details/115561058?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22115561058%22%2C%22source%22%3A%22qq_41915723%22%7D
(网上找找Maven的安装配置就能找到很多的)
下面直接整合Maven:
3.1 选择自己的Maven目录,和settings文件,然后配置仓库repository。
3.2 创建Maven的Java工程:
指明当前maven工程的名称,模板等信息。这里要求一个项目组的JDK版本必须一致。
(我使用的是JDK17)创建过程要保证是一个联网的状态
3.3 IDEA配置maven没问题
那么创建成功之后,会自动运行package,出现
没有报错信息。且文件目录是:
3.4 IDEA配置maven出错
运行程序,先查看是否配置正确能正常启动。
或者
虽然启动成功出现:
但是还出现了一个警告信息:
检查发现配置这里配置错了。进行了重新配置:
并删除这个文件,重新创建maven。
3.5 删除不必要文件,main下新建资源目录resources
测试下也要创建一个测试资源根目录(或者在普通文件创建之后,选择标记为资源根目录)。
还可以删除pom文件中的内容,只保留如下:
3.6 编写代码及测试
pom文件引入依赖:
如果依赖项中没有,需要点击刷新。
编写Test测试代码:
运行结果:
运行一次之后会自动生成target(目标)文件,里面有自解码文件.class文件。
3.7 Maven侧边栏介绍
生命周期:
clean:清空并删除编译好的target中的自解码文件,并生成新的target文件夹和自解码文件。
compole:编译模块中的类。
test:执行带有@Test类的测试方法。
package:打包
install:安装。如果当前编写的程序模块需要被其他程序依赖,就可以使用install。
会把打包好的jar包放进本地仓库中,E:\programmingSoftware\JetBrains\Maven\repo4maven\com\study\maven\module04_maven_java01\1.0-SNAPSHOT\module04_maven_java01-1.0-SNAPSHOT.jar
3.8 pom.xml文件中搜索、引入依赖,出现红色异常
新建的maven中出现这个异常:
是因为版本不对。复制artifactId(工件ID)名称去官网搜索依赖:
仓库服务
或 Maven Repository: org.apache.maven.plugins
引入依赖,修改版本号为3.4.5。然后刷新。
4. 创建Java Web工程
4.1 创建Java Web工程
父项选择需要自己去maven专项课程中学习。这里作为示例,暂时不做选择。
4.2 进入Run/Debug Configuration进行Tomcat配置:
新建一个Tomcat,命名为module04_maven_web_01,部署中添加工件,修改应用程序上下文。
进行热部署、浏览器选择、JDK选择。
注意这里没有选择C盘下的JDK17.0.4,而是选择了(OracleOpenJDK version 17.0.4)。
4.3 运行Tomcat:
4.4 开发JSP需要的依赖jar包
<dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2.1-b03</version><scope>provided</scope></dependency>
这里是2.1.3-b03不是06。
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" %>
添加依赖之后,就有提示啦:
相关文章:

IDEA的使用(四)创建不同类型的工程(IntelliJ IDEA 2022.1.3版本)
1. 创建Java工程 创建之后,src下是空的。可以在src下创建软件包Package,命名采用域名倒序。在软件包下再创建Java类。Java类运行后出现中文乱码,就到控制台和文件编码这两个地方设置编码。 2. 创建JavaWeb工程 2.1 在win11和IDEA中配置Tomca…...
Mac上brew切换国内源【极简方案】
前言 下载一些开源包如telnet时,通过brew下载经常由于网络不通,导致下载失败。所以mac用户最好一次性设置brew为国内源。 方案 极简四步,换Homebrew的镜像源为阿里云镜像,依次在终端执行以下几步: 1、cd “$(brew …...

计算机网络面试常问问题--保研及考研复试
前言: Hello大家好,我是Dream。今年保研上岸山东大学人工智能专业 (经验贴),现在将我自己的专业课备考知识点整理出来,分享给大家,希望可以帮助到大家!这是重点知识总结,…...

elasticsearch 8.5.3问题记录
一:解决 elasticsearch 高版本 warning: ignoring JAVA_HOMEC:\Program Files\Java\jdk-11; using bundled JDK if defined JAVA_HOME (set JAVA_HOME%JAVA_HOME%; )示例版本Elasticsearch 8.5.3 可以与 JDK 11 兼容,但不支持 JDK 17。确保选…...
【Ubuntu虚拟机】
Ubuntu虚拟机配置samba 转载知乎 samba: 安装samba服务 sudo apt-get install samba 2.确定是否确实安装了 samba --version 输入这个命令,确实安装的话,会打印出samba的版本 3.创建一个samba服务的共享目录,并配置该目录为最高权限 sudo …...
江苏服务器有哪些特点
江苏服务器具有以下特点: 高性能:江苏服务器采用高性能的处理器和大内存,能够快速、流畅地处理网络请求和数据,确保网络的高效运行。高防性:江苏服务器通常具有高防性,能够抵御各种DDoS攻击和CC攻击&#…...
acwing算法基础之基础算法--求逆序对的数目
目录 1 知识点2 模板 1 知识点 合并两个有序数组,对于有序数组[l,mid]和有序数组[mid1,r],将i指向前者,将j指向后者。在将每一个j插入最终有序数组中时,计算 s j m i d − i 1 s_jmid-i1 sjmid−i1,此为(x,nums[j…...

uni-app 实现考勤打卡功能
一、在页面中引入地图组件 <map id"map" style"width: 100%; height: 100%" :latitude"myLatitude" :longitude"myLongitude" :circles"circles" :markers"markers"> </map>属性名类型说明longitudeN…...

Jenkins发布失败记录
Exception when publishing, exception message [Exec exit status not zero. Status [127]] 见链接:Jenkins发布时常见异常(持续更新...)_exception when publishing, exception message [exec_码农StayUp的博客-CSDN博客 The remote end hu…...

【算法|双指针系列No.6】leetcode LCR 179. 查找总价格为目标值的两个商品
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…...

python flask接口字段存在性校验函数(http接口字段校验)(返回提示缺少的字段信息)validate_fields()
文章目录 字段存在性校验示例 字段存在性校验 from flask import Flask, request, jsonifyapp Flask(__name__)def validate_fields(data, fields):missing_fields [field for field in fields if field not in data]if missing_fields:return False, f"缺少以下字段: …...

Linux文件-内存映射mmap
mmap定义为:Linux通过将一个虚拟内存区域与一个磁盘上的对象(object)关联起来,以初始化这个虚拟内存区域的内容,这个过程称为内存映射(memory mapping)。 在LINUX中我们可以使用mmap用来在进程虚拟内存地址空间中分配地址空间,创…...
linux 查看当前正在运行的端口和监听的端口的工具及命令
在Linux系统中,你可以使用多种工具和命令来查看当前正在运行的端口和监听的端口。以下是一些常用的工具和命令: netstat命令: Netstat(Network Statistics)是一个用于查看网络连接、路由表和接口统计信息的命令行工具…...

保护互联网数据安全:关键方法与最佳实践
在当今数字化时代,互联网数据安全已经成为个人、企业和组织的首要任务之一。随着信息技术的迅猛发展,网络威胁也不断演进,因此保护互联网数据安全变得尤为关键。本文将介绍一些关键方法和最佳实践,帮助您确保互联网数据的安全性。…...

分布式数据库HBase(林子雨慕课课程)
文章目录 4. 分布式数据库HBase4.1 HBase简介4.2 HBase数据模型4.3 HBase的实现原理4.4 HBase运行机制4.5 HBase的应用方案4.6 HBase安装和编程实战 4. 分布式数据库HBase 4.1 HBase简介 HBase是BigTable的开源实现 对于网页搜索主要分为两个阶段 1.建立整个网页索引…...
矩阵求导的本质与分子布局、分母布局的本质
大佬讲解的实在太吊了。 就拿大佬的总结说明一下: 矩阵求导结果,无非就是分子的转置、向量化,分母的转置、向量化,它们的各种组合而已。 1、分子布局的本质:分子是标量、列向量、矩阵向量化后的列向量;分母…...

【广州华锐互动】VR建筑施工事故体验:提高工人安全意识和责任感
VR建筑施工事故体验的意义在于通过模拟真实场景和情况,帮助人们更好地理解建筑施工中的安全问题,并提供一种安全、有效的方式来学习和掌握安全技能。 建筑施工是一项高风险的工作,涉及各种复杂的工作环境和操作过程。在现实中,建筑…...

HSRP热备份路由器协议的解析和配置
HSRP的解析 个人简介 HSRP hot standby router protocol 热备份路由协议(思科私有协议) HSRP v1 version 1 HSRP v2 version 2 虚拟一个HSRP虚拟IP地址 192.168.1.1 开启HSRP的抢占功能 通过其他参数 人为调整谁是主 谁是从 ! 查…...
kotlin实现ArrayDeque
Deque双端队列,一直在使用,却从未了解过源码。 内部逻辑其实很简单 可扩容数组循环队列,循环栈扩容倍数1.5,sizesize(size shr 1)只从两端存取元素 fun main() {val deque MyArrayDeque()repeat(16) {deque.addLast(it)}while …...
java时间格式化
1,CST时间格式化,这个一般是返回值的类型为 Date 类型,如果不做处理,返给前端的就是时间戳,当然也可以更改返回值类型为 String,这样就不用处理了。方法如下: /*** 格式化时间* param date Thu…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?
在工业自动化持续演进的今天,通信网络的角色正变得愈发关键。 2025年6月6日,为期三天的华南国际工业博览会在深圳国际会展中心(宝安)圆满落幕。作为国内工业通信领域的技术型企业,光路科技(Fiberroad&…...

Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...