【Tomcat与Servlet篇1】认识Tomcat与Maven
目录
一、什么是Tomcat
二、Tomcat的几个重要目录
conf文件编辑
Server.xml
logs文件
Webapps目录
三、如何使用Tomcat
但是,如果出现了点击之后进行闪退的情况,那又是怎么回事呢?
原因1:环境变量没有配置
原因2:Tomcat服务器默认的端口被占用
如何查看Tomcat的运行效果
四、认识maven
五、idea搭配maven的使用
第一步:新建一个maven项目
pom.xml
第二步:使用maven
maven管理依赖
一、什么是Tomcat
Tomcat其实就是一个HTTP服务器。
在这一篇文章当中,我们提到了:HTTP协议的传输层大部分是基于TCP协议来实现的
【网络原理7】认识HTTP_革凡成圣211的博客-CSDN博客
https://blog.csdn.net/weixin_56738054/article/details/129148515?spm=1001.2014.3001.5502因此,HTTP服务器,其实就是在TCP服务器的基础上面,新增了一些额外的功能:例如
解析请求当中的HTTP报文
也就是把用户(前端)提交的数据转化为对象;
或者把服务器的响应转化为对象返回。
二、Tomcat的几个重要目录
首先去Tomcat官网下载一个Tomcat服务器。
Apache Tomcat® - Welcome!
https://tomcat.apache.org/
可以自行选择下载8版本或者9版本。
当下载到本地磁盘当中之后,首先找到bin目录,然后找到这个文件(startup):

conf文件
conf文件大部分都是tomcat的配置文件,很多都是.xml文件。

Server.xml
这一个文件就位于conf目录当中。通过这个文件可以修改tomcat的端口号信息。
点击,使用记事本打开,就可以看到Connector port的信息了。
Tomcat默认绑定的端口为8080端口,也就是tomcat服务器启动时候绑定的端口。

logs文件

这一个文件,就是tomcat上面的一些日志。
这一个日志记录了Tomcat运行过程当中的一些细节,有可能是服务器启动启动时候的信息,也有可能是Tomcat运行当中出现的一些异常等。

它默认都是按照最后记录的时间进行排序的。
Webapps目录

这一个目录当中存放的就是一些具体的JavaWeb项目。这里存放的都是需要部署的servlet程序,每一个servlet程序都是一个war后缀的文件。
如果把其中一个war部署到云服务器上面,那么每一个war相当于是一个webapp,也就是相当于一个网站。
在上图当中,一个webapps下面有多个项目,那么说明一个tomcat支持同时部署多个项目。
三、如何使用Tomcat
找到bin目录,然后找到start-up.bat。

双击,就可以运行了。

但是,如果出现了点击之后进行闪退的情况,那又是怎么回事呢?
原因1:环境变量没有配置
Tomcat如果想要运行,首先需要寻找到JDK,因为Tomcat服务器是基于Java语言开发的。
那怎样才能让Tomcat寻找到JDK的安装路径呢?
这就需要配置环境变量了。
右键:我的电脑,选择属性->高级系统设置。

进入之后,点击环境变量。

在下面的系统变量当中,配置一下JDK的安装目录,并且命名:JAVA_HOME

一般情况下,Tomcat都会自动配置环境变量。
原因2:Tomcat服务器默认的端口被占用
如果此时tomcat启动想要占用的端口:8080已经被本电脑上面的其他应用程序给占用了,那么也不可以正常启动。
可以在cmd当中输入:netstat-ano来查看端口占用情况。
如何查看Tomcat的运行效果
打开任意一个浏览器,在URL地址栏当中输入:
http://localhost:8080/
如果查看到Tomcat的欢迎页面,说明此时Tomcat已经可以正常运行了。

后续,在webapps下面部署的项目,都可以直接在本地访问了。
但是,如何让webapps下面的项目被所有的人都可以访问到呢?后面的文章会提到,如何在云服务器上面部署Java项目。
四、认识maven
maven主要负责下面的几个工作:
1:管理依赖:此处的依赖指的是一般是第三方的jar包。例如spring框架/jdbc的驱动jar包
2:构建/编译:也是调用jdk来进行编译的。
3:打包:指的是把项目打包成jar包。一般打包成jar包之后需要发送到云服务器上面进行部署。
关于第1点:如果像之前一样手动导入依赖的jar包,例如前面学习jdbc的时候,是通过从网上下载的jar包,然后复制、黏贴到项目文件夹当中的方式的。那么也就意味着:
问题1:不同的jar包版本之间需要兼容;
问题2:你必须反复从网上下载jar包,操作十分冗余。
引入了maven之后,就可以很有效地解决上述的两个问题。
五、idea搭配maven的使用
第一步:新建一个maven项目

在左上角的文件当中选择新建一个项目,然后找到Maven。
创建好之后,可以看到,这是刚刚创建好这个项目的一组项目结构目录:

还有一个最最核心的文件:
pom.xml
类似于一个maven项目的司令部。一切和这个项目有关的依赖jar包,都在这个pom.xml文件当中可以找到。下面我们点开看一下:

这个说明,此处使用的jdk版本是8版本。
第二步:使用maven
点击项目右边的"maven“。

右侧罗列的内容,都是可以通过maven来进行管理操作的。
其中有一项就是package,这个就是把项目进行打包的按钮。一般都是打包成一个jar包或者war包。
maven管理依赖
首先,需要在idea当中创建<dependencies> </dependencies>的标签
然后,在上述标签当中,就可以定义多个<dependency> </dependency>

以mysql的驱动jar包为例子:
首先,需要寻找到maven的中央仓库:
https://mvnrepository.com/
点开这个网页之后,在搜索框内输入:mysql

然后,点进去,找到版本:
再点开需要的版本:

然后把红色方框的内容,复制到依赖当中:

此时还没有导入,然后点击右上角的按钮:
就可以把jar包导入进来了。

相关文章:
【Tomcat与Servlet篇1】认识Tomcat与Maven
目录 一、什么是Tomcat 二、Tomcat的几个重要目录 conf文件编辑 Server.xml logs文件 Webapps目录 三、如何使用Tomcat 但是,如果出现了点击之后进行闪退的情况,那又是怎么回事呢? 原因1:环境变量没有配置 原因2&#…...
C++类和对象:拷贝构造函数和运算符重载
目录 一. 拷贝构造函数 1.1 什么是拷贝构造函数 1.2 编译器默认生成的拷贝构造函数 1.3 拷贝构造函数特性总结 二. 运算符重载 2.1 运算符重载概述 2.2 比较运算符重载(> > < <) 2.2.1 >运算符的重载 2.2.2 运算符的重载 2.…...
【IntelliJ IDEA】idea plugins搜索不出来,如何找到插件的解决方案
一、背景描述安装好IDEA后,想下载一些插件来使用,因为IDEA非常方便的一点就是插件使用非常的方便,但是经常会发现进入到插件市场无法搜索到插件的情况,这个时候就有点烦人了。那么怎么解决这个问题呢?以下会把我能想到…...
移动端自动化测试(一)appium环境搭建
自动化测试有主要有两个分类,接口自动化和ui自动化,ui自动化呢又分移动端的和web端的,当然还有c/s架构的,这种桌面程序应用的自动化,使用QTP,只不过现在没人做了。 web自动化呢,现在基本上都是…...
5 逻辑回归及Python实现
1 主要思想 分类就是分割数据: 两个条件属性:直线;三个条件属性:平面;更多条件属性:超平面。 使用数据: 5.1,3.5,0 4.9,3,0 4.7,3.2,0 4.6,3.1,0 5,3.6,0 5.4,3.9,0 . . . 6.2,2.9,1 5.1,2.5…...
技术干货 | Modelica建模秘籍之状态变量
在很多领域都有“系统”这个概念,它描述的往往是一些复杂关系的总和。假如我们将系统看做一个黑箱,那么,在系统的作用下,外界的输入有时会产生令人意想不到的输出,“蝴蝶效应”就是其中的典型案例。图1 一只南美洲亚马…...
LeetCode 2574. 左右元素和的差值
给你一个下标从 0 开始的整数数组 nums ,请你找出一个下标从 0 开始的整数数组 answer ,其中: answer.length nums.length answer[i] |leftSum[i] - rightSum[i]| 其中: leftSum[i] 是数组 nums 中下标 i 左侧元素之和。如果不…...
rollup环境配置
VUE2.x源码学习笔记 1. rollup环境配置 首先在VScode中新建文件夹vue_sc,然后终端打开定位到打开的文件夹,输入“npm init -y”初始化配置项,运行成功之后文件夹新增package.json文件 继续在终端运行"npm install babel/preset-env ba…...
二分查找与二分答案、递推与递归、双指针、并查集和单调队列
二分查找与二分答案 文章目录二分查找与二分答案应用总结例题木材加工题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示数据规模与约定思路代码递归与递推应用总结[NOIP2003 普及组] 栈题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示思…...
如何进行域名购买,获取免费ssl证书,使用springboot绑定ssl证书
前言 小编我将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注一下!也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远!让我们在成长的道路上互相学习&#…...
LabVIEW网络服务安全2
LabVIEW网络服务安全2在客户端应用程序中创建签名对请求进行签名要求您具有能够从客户端的编程语言调用的MD5摘要算法以及SHA256加密摘要算法的实现。这两种算法通常都可用于大多数平台。还需要:1. 要使用的HTTP方法的字符串(“GET”、“POST”、“PUT”…...
java动态代理
目录儿一、代理模式的作用二、实现代理的方式三、动态代理的实现3.1 jdk动态代理3.2 cglib动态代理一、代理模式的作用 功能增强: 基于某个功能,再增加一些功能。 (比如目标类只负责核心功能,其他附属功能通过代理类完成。代理类的方法名与目…...
Python 简单可变、复杂可变、简单不可变、复杂不可变类型的copy、deepcopy的行为
copy模块:copy:浅拷贝deepcopy:深拷贝简单可变类型、复杂可变的copy()、deepcopy():简单不可变、复杂不可变类型的copy()、deepcopy():结论:对于简单类型的可变类型copy是深拷贝,改变了该拷贝变…...
QML Item
在QML中所有的可视项目都继承自Item,虽然Item本身没有可视化的外观,但它定义了可视化项目的所有属性。 Item可以作为容器使用: Item{Rectangle{id:retc}Rectangle{id:retc1}Rectangle{id:retc2}Rectangle{id:retc3}} item拥有children属性…...
使用xca工具生成自签证书
本文使用 xca 生成自签证书。 概述 之前使用 openssl 生成证书,在 golang 中测试,发现客户端连接失败,经查发现是Subject Alternative Name不支持导致的。因虚拟机 openssl 版本较低,有个功能无法实现,且升级麻烦&…...
Unity IOS 通过命令行导出IPA
新建一个文件然后输入如下内容 #!/usr/bin/env sh /Applications/Unity/Hub/Editor/2020.1.5f1c1/Unity.app/Contents/MacOS/Unity -quit -batchmode -projectPath /Users/zyt/Test -executeMethod Test.BuildEditor.BuildApp cd /Users/zyt/Test/Xcode/unity-xcode xcodebuil…...
「架构」全链路异步模式
总结自尼恩的全链路异步:网关纯异步化网关层的特点:不需要访问业务数据库只做协议转换和流量转发特点是 IO 密集型,特别适合纯异步的架构,可以极大的节省资源。如何进行网关异步化?使用高性能的通信框架Nettyÿ…...
CleanMyMac4.20最新版新增功能及电脑清理垃圾使用教程
CleanMyMac4.20作为知名的Mac清理工具,仅需一键即可快速而安全地清理系统垃圾,释放磁盘空间,因此一直深受Mac用户的喜爱。在不断更新的版本中,CleanMyMac已经不仅仅满足于只做简单的Mac清理工具,而是为Mac用户提供更多…...
Vue2的tsx开发入门完全指南
本篇文章尽量不遗漏重要环节,本着真正分享的心态,不做标题党 下面进入正题: 由于现在vue的官方脚手架已经非常完善我们就不单独配置webpack了,节省大量的时间成本。 首先使用vue/cli创建一个vue模版项目(记得是vue/…...
GLSL shader学习系列1-Hello World
这是GLSL shader系列第一篇文章,本文学习目标: 安装编辑工具编写hello world程序 安装插件 我使用VSCode编写shader代码,在VSCode上有两个好用的插件需要先装一下: Shader languages support for VS Code glsl-canvas…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
