【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…...
Codeforces Round #851 (Div. 2)(A~D)
A. One and Two给出一个数组,该数组仅由1和2组成,问是否有最小的k使得k位置的前缀积和后缀积相等。思路:计算2个数的前缀和即可,遍历判断。AC Code:#include <bits/stdc.h>typedef long long ll; const int N 1…...
内存保护_1:Tricore芯片MPU模块介绍
上一篇 | 返回主目录 | 下一篇 内存保护_1:Tricore芯片MPU模块介绍1 何为MPU2 MPU相关的硬件子系统2.1 基于地址范围保护逻辑说明2.1.1 地址范围寄存器2.1.2 读、写、执行权限寄存器2.1.3 保护集设置位2.1.4 内存保护功能使能位2.1.5 核的内存保护范围获取说明2.1.6…...
Vue3 -- PDF展示、添加签名(带笔锋)、导出
文章目录笔锋签名方案一实现要点实现过程组件引用页面元素添加引用实现代码效果展示缺点方案二修改页面元素替换引用修改代码效果展示完整代码地址实现功能的时候采用了两个方案,主要是第一个方案最后的实现效果并不太理想,但实现起来比较简单࿰…...
行测-判断推理-图形推理-样式规律-属性规律-曲直性
左边的图全是由曲线构成的选C1 3 5全是由曲线构成的2 4 6全是由直线构成的第三行的图形有曲有直选A1 3 5有曲有直2 4 6全是直线选D图形有曲有直,排除B D外曲内直->内曲外直->外曲内直->内曲外直->外曲内直->内曲外直所以问号出的图形应该是内曲外直选…...
idea集成Alibaba Cloud Toolkit插件
idea集成Alibaba Cloud Toolkit插件 使用该插件主要是简化打包、上传、启动服务的相关操作。 很早之前的方式是使用开发工具(eclipse,idea),使用maven命令完成项目打包(这里指jar),然后通过shell工…...
Win11 文件夹打开慢或卡顿解决方案
问题 目前是 2023/2/27, 我的 Win11 系统点开一个文件夹要等待 2-3 秒才能加载出来, 使用体验极差。网上查阅大量资料, 有些人在系统更新后这个情况就消失了, 但是我这一直存在, 系统也是当前的最新版, 没有修复。 目前得出的结论是, 因为 Win11 的工具栏占用了过多的资源, 需…...
【PostgreSQL的idle in transaction连接状态】
在平时查询pg_stat_activity这个视图的时候,每一行包含了一个进程的相关信息,包含当前正在执行的SQL,或者会话的状态等等,state字段表示当前进程的状态。在PostgreSQL数据库里,其实代码里总共定义了7种BackendState&am…...
cityengine自定义纹理库资源
背景 cityengine虽然可以将shp生成带纹理的三维模型,但是纹理不一定满足我们的要求,这时候我们就想用我们自己制作的纹理 粗略了解规则文件 了解Building_From_Footprint.cga这个规则文件,具体文件位置默认在 “C:\Users[电脑用户名:如Administrator]\Documents\CityEng…...
taobao.top.secret.bill.detail( 服务商的商家解密账单详情查询 )
¥免费必须用户授权 服务商的商家解密账单详情查询,仅对90天内的账单提供SLA保障。 公共参数 请求地址: HTTP地址 http://gw.api.taobao.com/router/rest 公共请求参数: 公共响应参数: 请求参数 响应参数 点击获取key和secret 请求示例 TaobaoClient…...
2023软件测试金三银四常见的软件测试面试题-【抓包和网络协议篇】
八、抓包与网络协议 8.1 抓包工具怎么用 我原来的公司对于抓包这块,在App的测试用得比较多。我们会使用fiddler抓取数据检查结果,定位问题,测试安全,制造弱网环境; 如:抓取数据通过查看请求数据,请求行&…...
做社群的网站有哪些/社交网络推广方法
传送门 咱先膜一下\(GXZ\)再说 我们先把序列从小到大排序,然后分情况讨论 无解是不存在的,从小到大输出所有数肯定可行 情况一,如果\(a[mid]a[mid1]\),因为最终的中位数也是它们,那么我们可以让中位数一直等于\(a[mid]…...
做网站+利润/百度推广关键词排名规则
在控件的KeyPress事件中编写如下代码: if (e.KeyChar (char)13) {e.Handled true;SendKeys.Send("{TAB}"); }转载于:https://www.cnblogs.com/swtseaman/archive/2011/05/05/2037184.html...
做网站的公司首选智投未来/av手机在线精品
人生路上甜苦和喜忧愿与你分担所有难免曾经跌倒和等候要勇敢的抬头谁愿常躲在避风的港口宁有波涛汹涌的自由愿是你心中 灯塔的守候在迷雾中让你看透阳光总在风雨后乌云上有晴空珍惜所有的感动每一份希望在你手中阳光总在风雨后请相信有彩虹风风雨雨都接受我一直会在你的左右...
邢台贴吧/搜索引擎网站推广如何优化
编辑基于this帖子,一个比我上一个更好的解决方案可能是:import matplotlib.pylab as plimport matplotlibimport numpy as nppl.close(all)x np.linspace(0.019, 0.021, 4)y np.linspace(0.09, 0.10, 4)s np.random.randint(10, 200, 4)fig pl.figur…...
西部数码注册域名/快手seo软件下载
【Arclist 标记】 这个标记是DedeCms最常用的一个标记,也叫自由列表标记,其中 hotart、coolart、likeart、artlist、imglist、imginfolist、specart、autolist 这些标记都是由这个标记所定义的不同属性延伸出来的别名标记。 功能说明:获取指定…...
邯郸市城乡住房建设局网站/网站模板搭建
F#的class赋予了F#面向对象的编程能力,也是F#连接.net中其它面向对象语言的桥梁。其基本形式如下: // Class definition:type [access-modifier] type-name [type-params]( parameter-list ) [ as identifier ] [ class ] [ inherit base-…...