中间件(二)- Tomcat

news2024/11/17 0:54:27

中间件(二)- Tomcat

    • 1. 什么是Tomcat?
    • 2. 安装tomcat(linux)
      • 2.1 下载
      • 2.2 安装
      • 2.3 配置环境变量并启动
      • 2.4 验证tomcat是否安装成功

在这里插入图片描述

1. 什么是Tomcat?

Tomcat是一个开源、免费、轻量级的Web服务器

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web 应用服务器。

官网

什么是Web服务器?

Web服务器是安装在服务端的一款软件,它对HTTP协议的操作进行了封装使得程序员不必直接对协议进行相关操作,让Web开发变得更加便捷。Web服务器的主要功能就是提供网上信息浏览服务,当我们将自己写的Web项目部署道Web服务器上,只要启动Web服务器,就能直接通过浏览器访问我们的Web项目了。

目前比较有名的Web服务器有:Apache、Nginx、ISS。

Tomcat和Apache的联系:

  • Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的
  • Tomcat仅支持JDBC、JSP、Servlet等少量JavaEE规范
  • 因为Tomcat支持Servlet/JSP规范,所以Tomcat也被称为Web容器、Servlet容器。Servlet需要依赖Tomcat才能运行。

Servlet

  • Servlet是 Server Applet 的缩写,译为“服务器端小程序”,是一种使用 Java 语言来开发动态网站的技术

  • Servlet 虽然被称作“小程序”,但是它的功能却异常强大,因为它是基于 Java 的,几乎可以使用所有的 Java API,Java 能做的事情,Servlet 也能做。

  • Java 是一种功能强大的通用型编程语言,可以处理 HTTP 请求,可以访问数据库,可以生成 HTML 代码,您完全可以使用原生 Java 来开发动态网站。但是,使用原生 Java 开发动态网站非常麻烦,需要自己解析 HTTP 请求的报头,需要自己分析用户的请求参数,需要自己加载数据库组件……种种原因导致使用原生 Java 开发动态网站几乎是一件不能被接受的事情。正是基于这种原因,Java 官方后来推出了 Servlet 技术,它对开发动态网站需要使用的原生 Java API 进行了封装,形成了一套新的 API,称为 Servlet API。

  • 使用 Servlet 开发动态网站非常方便,程序员只需要集中精力处理业务逻辑,不需要再为那些基础性的、通用性的功能编写代码,这使得 Servlet 在动态网站开发领域具备了很高的实用性。

  • Servlet 基于 Java,可以使用几乎全部的 Java API,所以它的功能异常强大,完全可以胜任企业级开发,能够处理那些高并发、大吞吐量、业务逻辑复杂的应用场景。

  • 您可以这样理解,Servlet 是 Sun 公司推出的一种基于 Java 的动态网站开发技术。编写 Servlet 代码需要遵循 Java 语法,一个 Servlet 程序其实就是一个按照 Servlet 规范编写的 Java 类。Servlet 程序需要先编译成字节码文件(.class文件),然后再部署到服务器运行。

Web服务器、服务端、服务器的区别和联系:

  • 服务器是一种特殊的计算机,它比普通计算机运行更快、负载更高、价格更贵,属于硬件范畴;
  • 服务端是是指为客户端提供服务的计算机,服务的内容诸如:提供数据的保存、数据的访问……属于硬件范畴;
  • Web服务器是指安装再服务端的一款软件,主要功能是提供网上信息浏览服务,但是只能响应HTTP的请求数据,属于软件范畴。
    能让你写的网站被所有人访问的三要素:服务器+域名+网站

2. 安装tomcat(linux)

2.1 下载

版本关系
在这里插入图片描述

官网下载地址

我们选择 Apache Tomcat® 8.x software 最新的版本8.5.88下载使用
https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.88/bin/

下载完成后上传到linux服务器

2.2 安装

[root@node-251 tomcat]# tar -xzvf apache-tomcat-8.5.88.tar.gz
[root@node-251 tomcat]# mv apache-tomcat-8.5.88 /usr/share/tomcat
[root@node-251 tomcat]# pwd
/usr/share/tomcat
[root@node-251 share]# cd tomcat/
[root@node-251 tomcat]# ll
total 128
drwxr-x--- 2 root root  4096 May 18 19:23 bin
-rw-r----- 1 root root 19992 Apr 15 04:16 BUILDING.txt
drwx------ 2 root root   238 Apr 15 04:16 conf
-rw-r----- 1 root root  6210 Apr 15 04:16 CONTRIBUTING.md
drwxr-x--- 2 root root  4096 May 18 19:23 lib
-rw-r----- 1 root root 57011 Apr 15 04:16 LICENSE
drwxr-x--- 2 root root     6 Apr 15 04:16 logs
-rw-r----- 1 root root  1726 Apr 15 04:16 NOTICE
-rw-r----- 1 root root  3398 Apr 15 04:16 README.md
-rw-r----- 1 root root  7139 Apr 15 04:16 RELEASE-NOTES
-rw-r----- 1 root root 16505 Apr 15 04:16 RUNNING.txt
drwxr-x--- 2 root root    30 May 18 19:23 temp
drwxr-x--- 7 root root    81 Apr 15 04:16 webapps
drwxr-x--- 2 root root     6 Apr 15 04:16 work

2.3 配置环境变量并启动

这里我们配置环境变量的前提是已经安装并配置好了JDK

[root@node-251 bin]# tail -1 /etc/profile
CATALINA_HOME=/usr/share/tomcat
[root@node-251 tomcat]# source /etc/profile
[root@node-251 tomcat]# cd bin/
[root@node-251 bin]# ./startup.sh
Using CATALINA_BASE:   /usr/share/tomcat
Using CATALINA_HOME:   /usr/share/tomcat
Using CATALINA_TMPDIR: /usr/share/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@node-251 bin]# ps -ef|grep tomcat
root      59140      1 13 19:30 pts/0    00:00:02 /usr/bin/java -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/share/tomcat -Dcatalina.home=/usr/share/tomcat -Djava.io.tmpdir=/usr/share/tomcat/temp org.apache.catalina.startup.Bootstrap start
root      59190  54358  0 19:30 pts/0    00:00:00 grep --color=auto tomcat
[root@node-251 bin]# ss -nltp|grep 59140
LISTEN     0      1       [::ffff:127.0.0.1]:8005                  [::]:*                   users:(("java",pid=59140,fd=63))
LISTEN     0      100       [::]:8080                  [::]:*                   users:(("java",pid=59140,fd=54))

提示Tomcat started.则表示启动成功,查看tomcat对外暴露的端口号8080

运行shutdown.sh文件,正常关闭不会造成数据丢失

2.4 验证tomcat是否安装成功

在浏览器中输入:http:\IP地址:8080 如果出现tomcat的主页则代表安装成功
在这里插入图片描述
如果无法访问,可能是因为防火墙、selinux等因素,可以参考笔者其他文章进行配置

尝试下使用这个轻量级的web服务器

[root@node-251 webapps]# mkdir hello
[root@node-251 webapps]# cd hello/
[root@node-251 hello]# echo '123' > 123
[root@node-251 hello]# ll
total 4
-rw-r--r-- 1 root root 4 May 18 19:41 123
[root@node-251 hello]# cat 123
123
[root@node-251 hello]# pwd
/usr/share/tomcat/webapps/hello

在这里插入图片描述

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

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

相关文章

XSS-labs-level1详解

访问题目url 我们分析一下代码层面: 接受名为“name”的GET参数并在页面上显示它。其中包含了一个对alert()的覆盖。当alert()被调用时,它将显示一个确认框提示,然后将页面重定向到“level2.php?keywordtest”的URL,这将把关键字…

Win10和Win11上设置VS(Visual Studio)默认以管理员权限权限启动设置方法

本次管理员权限启动 如果只需要当前启动为管理员权限,方法如下: 1、使用“开始”菜单 2、根据所使用的 Windows操作系统 版本,执行以下步骤之一: 在 Windows 10 中,打开“开始”菜单,然后滚动到 Visual S…

Mysql——SQL语言入门

1.创建数据库表 【1】创建数据库表t_student (1)创建数据库: (2)新建查询 (3)创建数据库表 ##单行注释 /* 多行注释 多行注释 *//* 建立一张用来存储学生信息的表 字段包含学号、姓名、性别、…

chatgpt赋能Python-python30_3__2

Python30-3**2 – 强大的Python解释器的介绍 Python30-32是一个开源的Python解释器,其名称表示30乘以3的平方,即2700,意味着它是Python 3的改进版本。Python30-32由一群志愿者开发,旨在提供一个高效、强大、易于使用的编程工具&a…

【ChatGPT】无需注册,无需科学上网,无需人工验证的速度超快的 ChatGPT

文章目录 一、ChatGPT介绍二、使用ChatGPT时经常遇到的一些问题三、一个让你呼吸顺畅的 ChatGPT 一、ChatGPT介绍 ChatGPT,全称聊天生成预训练转换器(英语:Chat Generative Pre-trained Transformer),是OpenAI开发的人…

【数学建模】矩形桌子能放平(初等模型)

把一把四只脚的椅子往不平的地面上一放,通常只有三只脚着地,放不稳,然而只要稍挪动几次,就可以四脚着地,放稳了。如何解释这种现象? 1 模型假设 椅子四条腿一样长,椅脚与地面接触可视为一个点&…

【MCS-51】定时器原理

时间是我们设计功能模块时一个十分重要的输入或者衡量指标,而51单片机中就为我们提供了两个时域上的模块:定时器和计数器。它们可以帮助我们实现一些非实时性的功能:延迟、计时以及定时等。其中51单片机有两个16位的模块:定时器0&…

SCI论文总重复率29%,单篇重复达到了4%,请问可以了吗?

👉🏻有小伙伴问:SCI论文查重29%,有一篇跟导师之前发表的论文重复达到了4%,请问可以吗?之前重复率是37%,改了好久才改下来,但是感觉29%…

劝你别去外包,干了三年,感觉废了一半....

先说一下自己的情况,大专生,19年通过校招进入杭州某个外包软件公司,干了接近3年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了3年的功…

UWB技术在人员管理上的应用

UWB技术在人员管理上的应用 UWB 技术是一种新型的无线通信技术,主要用于低功耗数据快速传输以及室内静止或移动物体/人的定位跟踪与导航。在人员管理方面,UWB 技术有着广泛的应用,可以实现对人员的实时定位管理、历史轨迹追溯、电子围栏、巡…

ipa文件怎么安装到iPhone手机上?

无需越狱帮你把ipa文件安装到苹果手机上 E86苹果签名简介:点击可查看 很多人都知道apk文件是安卓的app应用程序文件名,但有人知道苹果ios的app应用程序app是什么样的文件名吗? 是ipa文件。 ipa文件由三个部分组成,payload目录下…

基于短核苷酸序列频率构建细菌系统发育树

谷禾健康 目前,原核生物的系统发育分类依赖于16S rRNA基因序列,这种序列在细菌中广泛存在且高度保守,但即使16S rDNA测序的结果显示某些细菌间序列相似性≥99%,但它们仍然不能被归为同一物种。因为基因序列中的一些保守区域并不一…

Doxygen源码分析: 子目录简要介绍

2023-05-18 23:56:46 ChrisZZ imzhuofoxmailcom Hompage https://github.com/zchrissirhcz 文章目录 1. doxygen 版本2. doxygen 目录结构.git 目录.github 目录workflows/build_cmake.ymlworkflows/coverity.ymlworkflows/docer_publish.yml addon 目录doxmlparser 目录doxyap…

金币商城功能迭代. 使用版本号乐观锁解决数据的并发修改问题

前言. 公司的商城模块嵌在微信公众号里面, 商城里面除了少量的现金业务, 大头在金币业务里面, 商城本来就是用来增加客户粘度的, 金币是客户通过某些行为免费获得如注册, 绑定,推荐等 需求. 金币方面之前的设计: 1.金币只有一个流水表,消费为负,获取为正 2.并且…

常用的表格检测识别方法 - 表格区域检测方法(下)

——书接上文 Training 半监督网络的训练分两步进行:a)对标记数据独立训练学生模块,由教师模块生成伪标签;b)结合两个模块的训练,得到最终的预测结果。 伪标签框架 实验 数据集: TableBank是文档分析领域中用于表识别…

Beats:如何在 Docker 容器中运行 Filebeat

今天在这篇博客中,我们将学习如何在容器环境中运行 Filebeat。 为了快速了解 Filebeat 是做什么用的: Filebeat用于转发和集中日志数据它重量轻,小型化,使用的资源更少它作为代理安装在你的服务器上它监视来自指定位置的日志文件…

腾讯云EdgeOne为什么能让客户降本增效?

随着数字化时代的来临,各类线上互动场景不断出现,并成为人们日常工作生活中的一部分。然而,基于互联网提供线上娱乐、线上办公、线上购物等服务的企业,在复杂的全球网络环境下会遇到网络延迟不稳定的情况,海外环境更多…

QGIS安装与简单使用流程

QGIS工具是我们地图业务领域比用的工具之一,理论就先不介绍了,今天主要介绍安装使用等基本操作: 一、下载安装 1、官网下载 Download QGIS 显示页面: 可以选择不同版本。我们以3.28为例,点击进入: 点击…

【hive】hive order、sort、distribute、cluster by区别与联系

​ 1、order by hive中的order by 会对查询结果集执行一个全局排序,这也就是说所有的数据都通过一个reduce进行处理的过程,对于大数据集,这个过程将消耗很大的时间来执行。 2、sort by hive的sort by 也就是执行一个局部排序过程。这可以…

怎么将heic格式转化jpg,5种方法立马学

将HEIC格式转换为JPG格式是非常必要的。首先,HEIC(.heic)格式是苹果最新推出的图像格式。与JPEG相比,HEIC可以存储更多的图像信息,同时还支持透明度、深度和动态范围等功能。但由于HEIC格式相对较新,许多设…