Tomcat

1.Tomcat是什么?

Tomcat 是一个开源的、轻量级的 Servlet 容器,也被称为 Web 服务器,由 Apache 软件基金会的 Jakarta 项目开发,在 Java Web 开发领域应用广泛

1)Servlet 容器:Servlet 是 Java 语言编写的服务器端程序,Tomcat 负责管理 Servlet 的生命周期,接收客户端的请求,将请求分发给相应的 Servlet 进行处理,并将 Servlet 处理后的结果返回给客户端。

2)Web 服务器:它能够处理 HTTP 请求,支持静态资源(如 HTML、CSS、JavaScript 文件等)的访问,也能动态生成网页内容。

如下为其图标)

2.Tomcat的结构

由上图可得tomcat的主目录主要由bin/conf/lib/logs/temp/webapps/work等目录组成

1)bin目录存 tomcat基本命令

bin目录主要是用来存放tomcat的命令,主要有两大类,一类是以.sh结尾的(linux命令),另一类是以.bat结尾的(windows命令)。

很多环境变量的设置都在此处,例如可以设置JDK路径、tomcat路径

startup 用来启动tomcat

shutdown 用来关闭tomcat

修改catalina可以设置tomcat的内存

2)conf目录放置配置文件

conf目录主要是用来存放tomcat的一些配置文件。

server.xml可以设置端口号、设置域名或IP、默认加载的项目、请求编码

web.xml可以设置tomcat支持的文件类型

context.xml可以用来配置数据源之类的

tomcat-users.xml用来配置管理tomcat的用户与权限

在Catalina目录下可以设置默认加载的项目

3)lib目录主要用来存放tomcat运行需要加载的jar包

lib目录主要用来存放tomcat运行需要加载的jar包。

例如,像连接数据库的jdbc的包我们可以加入到lib目录中来。

4)logs目录   存放主动启动tomcat的日志

logs目录用来存放tomcat在运行过程中产生的日志文件,非常重要的是在控制台输出的日志。(清空不会对tomcat运行带来影响)

在windows环境中,控制台的输出日志在catalina.xxxx-xx-xx.log文件中

在linux环境中,控制台的输出日志在catalina.out文件中

5)temp临时文件

temp目录用户存放tomcat在运行过程中产生的临时文件。(清空不会对tomcat运行带来影响)

6)Work文件存放 tomcat编译时产生的文件

 

7)重点是webapps   存放我们写的web项目

webapps目录用来存放应用程序,当tomcat启动时会去加载webapps目录下的应用程序。可以以文件夹、war包、jar包的形式发布应用。

当然,你也可以把应用程序放置在磁盘的任意位置,在配置文件中映射好就行。

当客户端(如浏览器)通过 HTTP 协议向服务器发送请求时,HTTP 服务器接收到请求后,会将请求转发给 Tomcat 服务器。Tomcat 服务器会根据请求的 URL 等信息,找到对应的 Servlet。在 Servlet 中,会通过 ServletRequest 对象获取请求的相关信息,然后调用业务类来处理具体的业务逻辑。业务类处理完逻辑后,将结果返回给 Servlet,Servlet 再通过 ServletResponse 对象将处理结果封装成响应,返回给 HTTP 服务器,最后由 HTTP 服务器将响应发送回客户端。 

 

3.Tomcat的特点:

1)开源免费:基于开源许可协议发布,用户可以自由使用、修改和分发,降低了开发和部署成本。

2)轻量级:对系统资源的占用相对较少,启动速度快,适合在各种规模的项目和不同配置的服务器环境中使用,无论是开发环境还是生产环境都能轻松部署。

3)跨平台:可以在多种操作系统上运行,如 Windows、Linux、macOS 等,只要这些系统安装了 Java 运行环境(JRE)或 Java 开发工具包(JDK)。

4)支持 Servlet 和 JSP:Servlet 和 JSP(JavaServer Pages)是 Java Web 开发的重要技术,Tomcat 为它们提供了完整的支持,开发者可以方便地使用这些技术来构建动态 Web 应用程序。

5)易于扩展:提供了丰富的插件和扩展机制,可以通过添加各种模块来增强其功能,如添加 SSL 支持实现安全的 HTTPS 访问,集成其他第三方组件等。

 4.在tomcat中项目部署方式包括以下三种:

1)直接将项目放到webapps目录下即可;

2)配置conf/server.xml文件;

3)在conf/catlina/localhost创建任意名的xml文件,在文件中编写;

5.在这的项目分成静态项目和动态项目

6.将Java Web 项目部署到Tomcat中的步骤:

1)安装java开发环境,安装Tomcat,准备Java Web项目;

2)打包项目;

3)部署项目到Tomcat;(按以上提到过的三种方式部署项目)

4)最后一步需要停止和关闭项目;

 7.服务器

C/S(Client/Server)架构→APP    客户端APP(前端页面,还有一定的后台内容,但主要数据和代码都放在server服务器端的)在服务器上进行升级服务器

B/S((Browser/server)架构→浏览器  

B/S架构优点:维护比较简单,

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【windows driver】 开发环境简明安装教程

一、下载路径 https://learn.microsoft.com/en-us/windows-hardware/drivers/other-wdk-downloads 二、安装步骤: 1、安装Visual Studio IDE 笔者建议安装最新版本,可以向下兼容。发文截止到目前,VS2022是首选,当前笔者由于项…

长时间目标跟踪算法(3)-GlobalTrack:A Simple and Strong Baseline for Long-termTracking

GlobalTrack的原始论文和源码均已开源,下载地址。 目录 背景与概述 1.1 长期视觉跟踪的挑战 1.2 现有方法的局限性 1.3 GlobalTrack的核心思想 算法原理与架构 2.1 全局实例搜索框架 2.2 Query-Guided RPN(QG-RPN) 2.3 Query-Guided RCNN&a…

使用mermaid查看cursor程序生成的流程图

一、得到cursor生成的流程图文本 cursor写的程序正常运行后,在对话框输入框中输入诸如“请生成扫雷的代码流程图”,然后cursor就把流程图给生成了,但是看到的还是文本的样子,保留这部分内容待用 二、注册一个Mermaid绘图账号 …

MacOS本地部署Deepseek,不联网也可以使用AI,保护隐私

苹果笔记本本地部署deepseek主要用到Ollama与open-webui 1. 安装Ollama “Ollama” 是一个轻量级的 AI 模型运行时环境(runtime),旨在简化在本地部署和使用大语言模型(LLM)的过程。它由 Vicarious 公司开发&#xff…

unity学习62,尝试做第一个小游戏项目:flappy bird

目录 学习参考 1 创建1个unity 2D项目 1.1 2D项目模板选择 1.1.1 2D(built-in-Render pipeline) 1.1.2 universe 2D 1.1.3 这次选择 2D(built-in-Render pipeline) 1.2 创建项目 1.2.1 注意点 1.2.2 如果想修改项目名 2 导入美术资源包 2.1 下载一个flappy bird的…

基于Matlab的多目标粒子群优化

在复杂系统的设计、决策与优化问题中,常常需要同时兼顾多个相互冲突的目标,多目标粒子群优化(MOPSO)算法应运而生,作为群体智能优化算法家族中的重要成员,它为解决此类棘手难题提供了高效且富有创新性的解决…

使用DiskGenius工具来实现物理机多硬盘虚拟化迁移

使用DiskGenius工具来实现物理机多硬盘虚拟化迁移 概述准备工作注意事项实操过程记录1、Win7虚拟机,安装有两个硬盘(硬盘0和硬盘1),各分了一个区,磁盘2是一块未使用的磁盘2、运行DiskGenius程序,记录现有各…

win本地vscode通过代理远程链接linux服务器

时间:2025.2.28 1. win本地下载nmap.exe nmap官网 https://nmap.org/或者 https://nmap.org/download#windows下载win版本并安装。 2. vscode插件Remote-SSH 插件下载Remote-SSH 3. 配置 按照图中顺序配置ssh 1.点击左侧工具栏的“小电视”图标 2.点击ssh的…

yolo初体验

看别人说的好简单,3行代码完成yolo11: from ultralytics import YOLO model YOLO("yolo11x.pt")##第一次运行自动下载 model.predict(source"0",showTrue) 当然代码没错:但是环境不好配: 首先:pip install ultralytics 会主动下载依赖 pytorch pandas-…

TCP 连接故障排查与 SYN 洪泛攻击防御

1 SYN 洪泛攻击防御 1.1 SYN Flood是什么? SYN Flood是互联网上最原始、最经典的DDoS(Distributed Denial of Service,分布式拒绝服务)攻击之一,旨在耗尽可用服务器资源,致使服务器无法传输合法流量。 SYN…

ArcGIS Pro应用指南:如何为栅格图精确添加坐标信息

一、引言 在地理信息系统中,栅格图是一种重要的数据类型。 然而,有时我们从网络上获取的栅格图并不包含坐标信息,这使得它们难以与其他带有坐标信息的数据进行集成和分析。 为了解决这一问题,我们需要对栅格图进行地理配准&…

Spring Boot 与 MyBatis 版本兼容性

初接触Spring Boot,本次使用Spring Boot版本为3.4.3,mybatis的起步依赖版本为3.0.0,在启动时报错,报错代码如下 org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name userMapper…

CSS—text文本、font字体、列表list、表格table、表单input、下拉菜单select

目录 1.文本 2.字体 3.列表list a.无序列表 b.有序列表 c.定义列表 4.表格table a.内容 b.合并单元格 3.表单input a.input标签 b.单选框 c.上传文件 4.下拉菜单 1.文本 属性描述color设置文本颜色。direction指定文本的方向 / 书写方向。letter-spacing设置字符…

Linux之环境变量(超详细版)

前言:各位老铁们好,好久没分享知识了,今天我要和各位老铁分享的是环境变量 ,对于Linux操作系统的学习者,我们会经常使用到环境变量,那么什么是环境变量呢?在讲环境变量之前,先问各位老铁一个问题…

【C语言】联合体 `union` 的妙用

C 语言联合体的妙用:结合 . 和 -> 操作符与 typedef 的深入剖析 在 C 语言中,联合体(union)是一种独特的复合数据类型,因其内存共享特性而在内存优化、类型切换和底层操作中展现出妙用。与结构体(struct)不同,联合体允许同一块内存存储不同类型的数据,提供高效且灵…

macOS - 使用 tmux

文章目录 安装 tmux使用更多快捷键说明 安装 tmux brew install tmux使用 在终端输入 tmux 进入 tmux 界面,然后 输入 Control Option B 进入交互模式 输入 % 左右分栏," 上下分割 上一个窗格:{,下一个:} PS…

构建私有化AI知识库:基于CentOS的Ollama + DeepSeek-R1 +ragflow 整合部署教程

操作系统:CentOS 7.9 CPU:支持 AVX 指令集的 x86_64 处理器 内存:64GB 存储:SSD 1TB 以上 GPU(可选) 一、组件介绍 Ollama Ollama 是一个专为在本地机器上部署和运行大型语言模型(LLM&a…

Goby 漏洞安全通告| Ollama /api/tags 未授权访问漏洞(CNVD-2025-04094)

漏洞名称:Ollama /api/tags 未授权访问漏洞(CNVD-2025-04094) English Name:Ollama /api/tags Unauthorized Access Vulnerability (CNVD-2025-04094) CVSS core: 6.5 风险等级: 中风险 漏洞描述: O…

Linux命令超级汇总

文件和目录操作 命令语法常用选项及说明lsls [选项] [目录名]- -l:以长格式显示文件和目录信息 - -a:显示所有文件,包括隐藏文件 - -h:与 -l 配合,以人类可读的方式显示文件大小 - -R:递归显示子目录内容cd…

Python 爬取唐诗宋词三百首

你可以使用 requests 和 BeautifulSoup 来爬取《唐诗三百首》和《宋词三百首》的数据。以下是一个基本的 Python 爬虫示例,它从 中华诗词网 或类似的网站获取数据并保存为 JSON 文件。 import requests from bs4 import BeautifulSoup import json import time# 爬取…