17站长网

17站长网 首页 网站 服务器 查看内容

Tomcat与maven的安装与使用教程

2022-12-4 12:25| 查看: 5266 |来源: 互联网

大家好,现在小编来为大家解答以上问题。Tomcat与maven的安装与使用教程相信很多人还不知道,现在让我们一起来看看吧!Tomcat 谈到 “汤姆猫”,大家可能更多想到的是大名鼎鼎的猫和老鼠 事实上,Java 世界中的

大家好,现在小编来为大家解答以上问题。Tomcat与maven的安装与使用教程相信很多人还不知道,现在让我们一起来看看吧!

Tomcat

谈到 “汤姆猫”,大家可能更多想到的是大名鼎鼎的猫和老鼠

事实上,Java 世界中的 “汤姆猫” 完全不是一回事,但是同样大名鼎鼎

Tomcat 是一个 HTTP 服务器

  • HTTP 协议就是 HTTP 客户端和 HTTP 服务器之间的交互数据的格式
  • 同时也通过 ajax 和 Java Socket 分别构造了 HTTP 客户端
  • HTTP 服务器我们也同样可以通过 Java Socket 来实现,而 Tomcat 就是基于 Java 实现的一个开源免费,也是被广泛使用的 HTTP 服务器

HTTP 协议我们也可以认为是基于 TCP
HTTP 服务器,就是在 TCP 服务器的基础上,加上了一些额外的功能:
能够解析请求中的 HTTP 报文,把请求转换成结构化数据(对象),也能很方便的构造 HTTP 响应
HTTP 服务器提供了一组 API,方便程序猿直接调用,来操作 HTTP 协议,从而简化程序猿的开发工程

HTTP 服务器,是属于很大的类别
这个分类下面,其中包含着很多很多具体的实现,Tomcat 只是其中的一种 (Java 圈子里,最知名的一种) 还有 Nginx

Tomcat HTTP 服务器,按照 HTTP 协议的格式来解析请求,,调用用户指定的相关代码,并且按照 HTTP 响应的格式来构造返回数据

1、下载

Tomcat 官网:Apache Tomcat

Apache 是一个组织,就是开发维护 Tomcat 的那个组织,Apache 是开源社区中一个非常有影响力的组织

org 也是一个常见的顶级域名,org 后缀的都表示是一个非营利组织的域名,咱们平时看到的都是 .com… .cn

Tomcat 的版本,会和 JDK 以及 Servlet 的版本都是密切绑定在一起的,我们使用 Tomcat 8 的版本

解压缩:

2、重要目录

bin:启停脚本

  • .bat 后缀的文件,是 windows 的批处理文件。.sh 后缀的文件,是linux 的 shell 脚本的文件
  • 都是属于一双击就能运行的程序
  • 要想启动 tomcat 就可以直接双击这个 startup.bat
  • 既然这里包含了startup.sh,是否意味着当前咱们下载的这个压缩包,在 linux 上也能直接运行呢??

答案是肯定的!!
Tomcat 其实是基于 Java 实现的,Java跨平台

conf:Tomcat 的配置文件

  • 是通过 xml 的格式来组织的

比如想修改下 tomcat 的端口号,tomcat 默认绑定的是 8080 端口

logs :日志

  • 这个目录中记录了很多的日志
  • 日志其实就是表示了 Tomcat 运行中的一些具体过程细节,日志其实就是通过类似于 printIn 这样的代码打印出来的结果

webapps:

  • 这个目录中放的是咱们部署的 servlet 程序
  • 每个 servlet 程序,都是一个 war后缀的文件 (也是一种压缩包格式),tomcat 会自动把这个 war 解压缩,得到一个目录
  • 每个 war 其实就对应了一个 webapp (相当于是一个网站)
  • 一个Tomcat 上,允许你同时部署多个 webapp (多个网站)

正因为,一个 Tomcat 上面可以同时部署多个 Servlet 程序,所以,也可以把 Tomcat 称为 "Servlet 的容器”,或者简称为 “容器”
网上称:Tomcat是一个容器 container… (经常会见到的)

容器1:Java 集合类 => C++就称为容器 => 间接的导致了有些 Java 程序猿也管集合类叫做容器

容器2:Tomcat 是 Servlet 的 容器,一个 Tomcat 上面可以承载多个webapp

容器3:Spring 可以管理很多很多个 Bean 对象,Spring 也可以称为Bean 的容器

容器4:Docker 也是涉及到容器的概念,Docker 可以认为是轻量级的虚拟机 (软件模拟出来的一个计算机),一个 docker 程序里,可以有多个 “轻量虚拟机”,每个轻量虚拟机里面又可以包含很多程序,就把这个轻量虚拟机称为容器,进一步的也把 docker 也称为容器了……

…….

所以未来看到容器这个词的时候,一定要擦亮眼睛,仔细的结合上下文,来分析分析,当前这个"容器" 到底是啥,不要把不同的容器混为一谈!

3、使用 Tomcat

3.1、启动 Tomcat

运行 startup.bat

看到这句话,说明你的 tomcat 启动成功

中间的乱码,是由于统一编码方式
Tomcat 内部使用的编码方式,是 utf8 (utf8 就是咱们当下最主流的编码方式)
但是,咱们使用的 windows 是 "简体中文版” 默认的字符集是 GBKcmd 这个程序,也是跟随了系统的字符集
数据是按照 utf8 来构造的,但是 cmd 在显示的时候按照了 GBK 的方式来解析,势必就会出现乱码!!!

把 cmd 字符编码改成 utf8 并不容易,cmd 自身没有提供设置字符集的功能,需要修改电脑的注册表

Windows 系统的总的配置中心(总指挥部),谨慎修改!!!

Tomcat 还有其他的方式:
  • 结合 IDEA来使用
  • 在 Linux 上使用

闪退原因:

(1) 原因1 环境变量的问题

Tomcat 要想能运行,得能够找到 JDK !!!
如何才能找到 JDK? 你的 JDK 到底安装在系统的哪个位置上了

靠咱们之前最开始的时候配置的 “环境变量”

就是在描述当前咱们把JDK给装到哪里去了~~,得让Tomcat 找到JDK的位置,才能去调用嘛

如何解决这个问题? 需要能看到报错提示!! 闪退了如何看到报错提示???
方案就是把双击运行的脚本直接拖到 cmd 中来运行

如果这里的这一组环境变量,某个有问题,就会告诉你,是谁有问题

不一定是配一个就能好!!! 再重复上述步骤,看接下来报啥错

类似于上述环境变量,其实 tomca 自身就在尝试配置,一般来说,tomcat 就自动配好了,但是不排除有些情况下 tomcat 自动配置不生效,这个时候就可以手动配置了

(2) 原因2 端口号被占用了

Tomcat 是一个 HTTP 服务器,启动的时候要绑定端口,一般是绑定两个端口号:8080,8005
如果这个端口已经被其他程序占用了,此时你启动肯定是失效的!!(闪退)
最典型的情况:你已经启动了一个 tomcat,你再尝试启动第二个,第二个 tomcat 妥妥的失败

第二个情况是很可能电脑上有别的程序占用了 8080 / 8005
比如 web 开发,配置 windows 自带的 IIS 服务器 (这个服务器默认端口也是 8080 ),如果 IIS 在运行中,tomcat 大概率启动不了的,找到是哪个程序占用了 8080 / 8005,cmd 输入 ,关闭对应的程序或者给 tomcat 换个端口

3.2、使用浏览器访问 Tomcat

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KfT9PUki-1655171538703)(C:\Users\Gwen\Desktop\4e54eaf098194c2dad75cc911f2aab4d.png)]

一般你装上了 tomcat 就会带有这个欢迎页面,127.0.0.1:8080 ,看到这个页面就说明tomcat 已经成功启动了
光看看欢迎页面,没什么意思,需要自己在 \webapps\ROOT 部署一些页面到 tomcat 上去

通过 Tomcat 访问:

是可以让别人访问你的 html 的,就是做网站的初衷

通过本地文件访问:

这个方式仅限于,使用自己的主机来访问,别人的主机想通过这种方式访问你的 html 是做不到

那么此时能否让别人访问我的页面?不能,这是因为 NAT => IPv4,内网ip 和 外网ip 结合

此时我的 ip是 192.168.178.1,以

  • 10.*
  • 172.16.* - 172.31*
  • 192.168.*

开头的都是内网ip,内网IP 只能在局域网内部使用,不能被其他局域网直接访问
除非你连上我的路由器,在同一个局域网里你才能访问我的主机

因此,要想让 tomcat 真正做到让页面被外面的人访问,就需要能够搞一个外网IP,买一个云服务器,就有了一个外网IP !!!

当前 chrome 会把所有的不是 HTTPS 的都标记成 “不安全”,
咱们的 tomcat 也是当然支持 HTTPS (需要额外配置,尤其是你得申请证书

3.3、通过 webapps 目录部署页面

虽然咱们部署了页面到 tomcat 上,但是这里还有个问题,当前如果页面简单还好,直接放到 ROOT 就行了

如果当前页面比较复杂,(若干个 HTML,还依赖了一些 css,图片,js…) 如果全都堆在这个 ROOT 目录里,就非常不优雅了

因此更好的做法,是在 webapps 里单独创建一个目录,把你的页面部署到这个目录中

将博客系统的代码全部复制进来

出现 404,一般就是你访问的资源不存在

  • 请求的路径不对
  • 路径虽然对,但是资源没被服务器加载起来 [此处的原因,重启下服务器才能加载资源]

通过这个 http://127.0.0.1:8080/blog102/blog_list.html,就会看到我们的博客页面

压缩这个 blog102,通过服务器,就可以让别人访问自己的页面

以上内容,都是基于 tomcat 来部署 “静态页面”

页面内容,是固定不变的
后面还需要学习基于 Tomcat 来生成动态页面 (根据用户输入的不同,会得到不同的结果)
像搜狗主页这种页面就是静态页面
像搜狗的搜索结果页,这种页面就是动态页面,用户输入不同的词,得到的结果是不同的

web 开发主要的工作,其实还是在动态页面这边

接下来重点学习的,就是动态页面的构造
学习 Tomcat 给程序猿提供的这组用来操作 HTTP 的 API => Servlet

这里的 API 和 HTTP 协议紧密相关

正式学习 Servlet 之前,需要先学点前置知识 (HTTP 和 Tomcat 也算是 Servlet 的前置知识)

Maven

1、什么是 Maven ?

maven 是一个 Java 世界中,非常知名的 “工程管理工具” / “构建工具”

核心功能:

1.管理依赖

  • 就是指进行一个 A 操作 之前,要先进行一个 B 操作。例如你要结婚,先要有女朋友
  • 再比如,editor.md,就依赖了 jquery,得先让页面加载 jquery,再加载 editor.md

2.构建 / 编译(也是在调用 jdk )

3.打包

  • 把 java 代码给构造成 jar 或者 war
  • jar 就是一个特殊的压缩包,类似于 rar,里面就是把各种 .class 文件放到一起了

Java 中常见的程序发布方式

maven 存在的意义就是能够直接把这些操作串起来,一气呵成

咱们写代码,也是有很多的依赖的 (当前阶段,依赖的东西不多)

  • 经常会依赖标准库
  • 经常依赖一些第三方库,引入的一些其他 jar 包~~

比如前面写 JDBC 代码的时候,当时就下载了一个 mysql 的驱动包~~ 写代码的时候,也可能是有关系很复杂的依赖~~
A-> B -> C ->D

如果你是手动管理这个依赖,这个过程就会相当蛋疼!!! 不光你得研究清楚,每个库都依赖哪些其他库
而且还得研究清楚,这些依赖之间的版本是怎么关联的

为了解决上述的依赖问题,很多编程语言都引入了自己的包管理工具 (自动解决依赖)

Java:Maven Gradle
Python:pip
JS:npm
各种语言都有…
但是除了 C++ … 目前为止,C++ 官方还没有提供这样的一个包管理工具,第三方的包管理工具是有,但是问题都很多… 没有一个像Maven 这种这么成熟的工具~~
咱们当前用的 maven,隔壁 C++ 的小孩们都馋哭了~~

如何下载安装 maven ?
网上有很多下载安装 maven 的教程,大家千万不要去参考!!!
咱们的做法其实就是啥也不干就行了 ( IDEA 内置了现成的 maven )
“不打等于上分”

2、使用 Maven

2.1、创建项目

搭配 IDEA 的使用方式:选择 maven 的方式来创建项目

这几个东西的用途就是,如果你写了一个程序,你要发布到 maven 中央仓库上,这三个参数就是你这个程序在中央仓库的身份标识

下载 mysql 的驱动包,就是从 中央仓库 搞的呀~~
Java 圈子里有很多的大佬实现了很多的第三方库~~ 这么多第三方库,组织形式就是把他们统一放到一个中央仓库这里,方便用户去查找

这个是创建好的项目的目录结构~~
src/main/java 这个目录用来放咱们的 java 代码~~

src/main/resources 这个目录用来放一些依赖的资源

src/test/java 这个目录用来放单元测试的代码~~ (暂时不涉及)

pom.xml 这个是maven 项目的核心配置文件,一个 maven 项目的司令部~~
——文件是使用 xml 这种格式来组织~~

创建好项目后,如何使用?

右标签菜单,如果没有,在 View-Tool Windows-Maven
这里罗列的这些内容,其实都是可以通过 maven 来进行操作的

咱们用的最多的打包
打包不仅仅是完成打包,会执行上面的所有操作~~
这里的打包结果一般是一个 jar 或者是一个 war

2.2、maven 管理依赖

使用 maven 帮我们下载并安装第三方库~~

以 mysql 驱动包为例

  • 中央仓库上,找到 mysql 驱动包 Maven Repository MySQL Connector/J 5.1.47 版本
  • 把这里的 maven 标签页下的这个 xml 配置给复制下来~~

把这个内容粘贴到 pom.xml

dependencies 标签中,可以放多个 dependency 标签,一个项目可以引入多个依赖

初始情况下的 pom.xml 可能没有这个标签,就需要手动创建一下

一般来说,maven 就会自动从中央仓库那里来下载依赖了~~
—般会在右下角这里显示一个下载的状态~~

第一次使用的时候,可能会下载比较久,一旦下载好了之后,后续就能直接用了
(第一次使用的时候,mysql 和 版本啥的这几个字是红色的)

如果 idea 没有自动触发下载,手动点 maven 右上角的刷新按钮

由于中央仓库,服务器在国外~~ 下载速度可能会比较慢!!! 默认的源在国外,是不太稳定的,如果你实在不行,也可以手动的把 maven 仓库给配置成使用国内的源 (使用国内的中央仓库),能用默认的源,就用默认的,默认的源大部分情况下是好的

出现了这条: Cannot resolve plugin org.apache.maven.plugins:maven-resources-plugin:2.6,把所有的文件删除掉,再次执行更新就能够解决这个问题,这次终于成功了!

如果看到了下图这个库,说明就是引入成功了!!!

如果没有这个库,尝试点击右上角的那个刷新按钮,你要注意右下角的下载的进度条~~

无论是 maven 还是其他的库,都是通过同样的方式来引入的,只要把对应的 xml 片段(坐标) 拷贝到你的 pom.xml 中即可~~

以上Tomcat与maven的安装与使用教程就是小编为大家收集整理的全部内容了,希望对大家有所帮助。如果您喜欢这篇文章,可以收藏或分享给您的小伙伴们吧!欢迎持续关注我们的后续更新。

本文最后更新于 2022-12-4 12:25,某些文章具有时效性,若有错误或已失效,请在网站留言或联系站长:17tui@17tui.com
·END·
站长网微信号:w17tui,关注站长、创业、关注互联网人 - 互联网创业者营销服务中心

免责声明:本站部分文章和图片均来自用户投稿和网络收集,旨在传播知识,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系我们及时修正或删除。谢谢!

17站长网微信二维码

始终以前瞻性的眼光聚焦站长、创业、互联网等领域,为您提供最新最全的互联网资讯,帮助站长转型升级,为互联网创业者提供更加优质的创业信息和品牌营销服务,与站长一起进步!让互联网创业者不再孤独!

扫一扫,关注站长网微信

大家都在看

  • 当我们在共享网络访问的时候,可能会遇到提示指定的网络名不再可用的问题,这可能是由于我们的共享网络出现了错误,也可能是被共享的对象所拒绝了。指定的网络名 ......

    故障排除 2023-03-10
  •   文/曹杨  原标题:谁还看电视?  爸爸戴一副老花镜,妈妈戴一副近视镜,一人坐在沙发,一人躺在床上,各自刷着自己关注的博主更新的短视频。电视也许开着,但只是背景。  这样的画面,几乎成了洛奇家的常 ...

    站长 2020-12-09
  • 图片来源于简书  文/郭开森 杨帆  陆玖财经准备开新栏目了,每周一创始人郭开森和杨帆合体郭德帆,对行业进行一些观察和评论,第一篇我们仍是打算写社区团购,这是当下最火的话题。  来过陆玖财经做客的朋友们...

    热议 2020-12-07
  • 一、软件冲突1、首先确认是否是应用程序冲突导致的。2、查看是否只有特定几个游戏或应用会导致该问题。3、如果是应用冲突,那么只要卸载这些app就可以解决了。二 ......

    软件教程 2022-12-27
  • 1、首先进入到“百度”软件中, 2、然后在其中输入“百度识图”, 3、之后点击图中的“开始使用”按钮, 4、紧接着点击右下角的“相册”功能, 5、在相册下 ......

    软件教程 2023-02-17
  • 电脑端:1、大家可以点击右边链接进入网页版的百度网盘,进入之后点击“去登录”。https://pan.baidu.com/2、之后正确的输入账号密码进行登录就好啦。手机端:1 ......

    软件教程 2022-12-27
  • 在填写一些项目申请书中,总是免不了要选择一些数字,但是在方框中如何插入数字,该怎么办呢?那么下面就由学习啦小编给大家分享下word在方框里输入数字的技巧, ......

    Word教程 2023-04-27
  • 8月15日消息 上周,有媒体报道前身为百度图片的“榴莲”APP含有大量不雅视频内容被用户举报。对此,百度图片官方进行了回应,百度图片表示已经对报道中所涉及的“生吃旋风哥”等争议内容进行了下线处理。 此外,百度...

    站长 2016-08-15
  • 一、N100对比intel i3 1、N100的跑分达到了147210分,这个数据可以达到i3的七代级别。 2、在跑分上也是超越了大部分的I3七代CPU,不过比I3八代要弱势一些。 3 ......

    硬件知识 2023-04-26
  • WPS Office手机版怎么加横线?很多用户还不知道WPS Office手机版怎么加横线,WPS Office手机版怎么加横线,WPS Office手机版怎么打横线,WPS Office手机版怎么弄 ......

    WPS教程 2023-03-31
  • 一、内容特权。 1、半价点播。 许多站内视频都需要付费观看,而大会员用户可以直接半价享受; 购买成功后的48h内无限次观看。有部分的内容是只限在中国大陆内观 ......

    软件教程 2023-05-05
  • 迅雷前缀是什么 答:迅雷前缀是(magnet:?xt=urn:btih:)括号里的就是了。 我们只要在这段文字之后输入后续的内容,就可以创建下载链接了。 1、磁力链接不基于文 ......

    软件教程 2023-06-03
  • 1、首先打开小米运动的“实验室功能”。 2、接着点击“门卡模拟”。 3、然后点击“我知道了”。 4、最后贴近就可以刷卡成功了。...

    硬件知识 2023-05-17
  • 1、打开手机轻颜相机app,点击“我的”,点击“设置”,2、点击“帮助与反馈”,3、点击右下角“在线咨询”即可联系客服,询问自己的问题啦!...

    软件教程 2023-03-16
  • 答:华为P系列: 华为p40,华为p40plus,华为p50,华为p50e,华为p60 华为mate系列: 华为mate40,华为mate50,华为mate50e,华为mate60 华为nova系列: 华为n ......

    鸿蒙系统 2023-04-24
  • 近期有用户反映,电脑在更新Windows 11 Insider Preview 25252.1000后,出现了应用和已压缩的文件点击毫无反应,拖拽都不行,只能从开始菜单打开的情况,这是怎 ......

    windows11 2022-12-13
  •   文/黎明  一场针对中国互联网巨头的反垄断风暴正在酝酿,而且这次动真格了。  11月10日,国家市场监管总局发布《关于平台经济领域的反垄断指南(征求意见稿)》,要加大对互联网巨头涉嫌垄断的调查和监管。 ...

    热议 2020-11-14
  • 答:骁龙8+更好。 骁龙7+gen2实际上就是骁龙8+的低配版本。 在一些其他的核心架构方面都是保持一致的,比如说CPU的架构、GPU的架构等等。 骁龙7+和骁龙8+具体 ......

    硬件知识 2023-04-06
  • 可见单元格就是不包括隐藏或者筛选筛选后隐藏起来的单元格区域。方法:筛选或隐藏数据,复制需要粘贴的值,在目标单元格区域左上角的第一个单元格处右击,选择【 ......

    WPS教程 2022-12-10
  • win11系统如何释放掉系统默认保留的存储空间?一般情况下,Windows会保留一些存储空间,以便设备获得良好性能和成功更新。但是当出现系统盘储存空间不足时,我们会将几个G的保留空间释放出来,以解燃眉之急。本期教...

    windows11 2022-11-17
  • 文件被win10系统误报病毒自动删除了如何进行恢复?有用户下载了某些破解软件却被Win10系统误认为是病毒文件而自动删除,当然系统自带杀毒软件其实挺不错的,就是有时候会误报,大家遇到这种情况的时候就希望把误删的...

    windows10 2022-11-20
  • win11系统快速跳过联网创建本地管理账户3种方法?现在市面上销售的品牌笔记本和台式机基本上都预装Windows11家庭中文版正版操作系统,联网后系统会自动激活。当用户拿到新机器后还需要按照cortana(小娜)的提示一步...

    windows11 2022-11-13
  • 罗技g304dpi灯颜色代表什么:1、蓝色:这种情况是正常工作的显示,如果说是常亮或者闪烁,那都没有问题这是在正常工作呢。2、红色:如果说是红灯闪烁的话那就是 ......

    硬件知识 2023-03-16
  • 答:在3DMark压力测试当中,显卡需要超高97%才能够算合格,证明显卡的稳定性是过关的。 1、一般的默认情况下在2500~3000分就算很正常的了。 2、分数越高说明显卡 ......

    软件教程 2023-06-01
  • 相信有非常多使用过笔记本的用户都听说过独显直连这个词,但很多用户并不了解独显直连是什么,又有什么用处,那么下面就和小编一起来看看什么是独显直连和开启这 ......

    其它 2022-12-15
  • 背景 有时候我们需要获取文件的创建时间。 例如: 我在研究 《xtrabackup 原理图》的时候,想通过观察确认 xtrabackup_log 是最早创建 并且是 最晚保存的 ......

    服务器 2022-10-17
  • win11系统开机总是自动登录OneDrive如何关闭?win11系统开机的时候,会自动启动OneDrive,不想要启动,该怎么操作呢?下面我们就来看看详细的教程。 在OneDrive界面点小齿轮按钮,下拉菜单中点【设置】。 单击【...

    windows11 2022-11-15
  • 假设有 A、 B 两台 Linux 服务器,我们希望能够从其中一台服务器通过 SSH 免密码登录到另一台服务器。 两台服务器的信息如下:  ......

    服务器 2022-10-14
  • 答:性能上差不多是和天玑9000以及骁龙8+处于差不多的水平。 也可以看成是骁龙8+的降配版本 骁龙7+处理器介绍 1、高通称这款芯片为“骁龙史上最强 7 系平台” ......

    硬件知识 2023-04-06
  • 1、首先确认手机型号是否支持无线充电功能,(可以在品牌官网找到手机信息查看)2、查看充电板的指示灯是否亮起。指示灯不亮检查充电器、数据线、电源之间连接是 ......

    硬件知识 2023-03-10

热门排行

    最近更新

      返回顶部