TOMCAT基础
tomcat是一个基于Java开发的,开放源代码的web应用服务器。它可以解析html页面中的java代码,执行动态请求,实现动态页面。核心功能是将收到的http请求处理并转发给适当的servlet来处理,然后将响应返回给客户端。
优点
1,免费
2,开源,可以二次封装
3,可配置性强,可以根据需要进行自定义配置,包括端口号,虚拟主机等。
4,安全性:tomcat自带安全机制,可以配置用户认证,授权,加密传输。
5,部署应用非常快捷:tomcat会自动部署,自动运行。
三个核心组件:
1,Web容器,完成web服务器的功能,web应用。在web容器中,封装了一组文件。在这一组文件之中,进行集中化管理。
2,ervlet容器:名字catalina,处理servlet代码。处理web请求(http),以及生成动态内容的java类。
3,jsp:将动态页面翻译成servlet代码,用标准格式展示jsp的静态页面。
Servlet组件
1,处理http请求。
2,生产动态内容,为了和数据库交互。
3,会话管理,跟踪用户在不同请求之间的状态,通过管理,可以在用户访问不同页面时保持用户的状态信息。
4,与数据库交互,servlet可以连接到数据库执行查询和更新操作,这就是servlet能够生成动态内容的原因。Jap是动态页面的开发技术,使用index.jsp标签。在html页面中插入java代码。
功能组件:connector:负责对外接受和响应请求,是tomcat与外界的交通枢纽。监听端口,也接受对外界的请求,交给container处理。
各个模块作用:
Container:负责对内处理业务逻辑。
Engine:引擎,管理虚拟机(service),可以管理多个,但是每个service只能有一个engine;
Host:代表一个虚拟机,也可以叫站点。
Context:web应用,包含多个servlet
Wrapper:封装器,最底层,每一个wrapper都封装着一个servlet,负责对象实例的创建,执行以及销毁。
安装后的文件以及作用:
conf:主要配置文件:主配置文件server.xml。
contex.html:host的默认信息。
tomcat-user.xml:认证用户密码的配置文件
web.xml:配置servlet。
bin:存放启动和关闭tomcat脚本文件。
logs:日志文件。
webapps:web应用部署的默认目录。
work:tomcat的工作目录。存放jsp编码之后的class文件。清除tomcat缓存就是删work目录。
tomcat安装:
jdk安装:
rpm -ivh jdk-8u201-linux-x64.rpm
查看jdk版本
java -version
设置jdk环境变量
vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATHsource /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64:
这个命令设置了一个名为JAVA_HOME的环境变量,它指向Java JDK的安装路径。
这对于告诉系统和其他应用程序Java的安装位置非常重要。你需要将路径替换为你实际安装Java的路径。
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:
这个命令设置了一个名为CLASSPATH的环境变量,它用于指定Java类的搜索路径。
在这个命令中,.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar 表示当前目录(.)
以及Java工具库(tools.jar)和Java远程调试库(dt.jar)的路径。这些库通常包含一些Java开发所需的类。
export PATH=$JAVA_HOME/bin:$PATH:
这个命令将Java可执行文件的路径添加到系统的PATH环境变量中。
这使得你可以在终端中直接运行Java工具,而不需要输入完整的路径。
这将Java的bin目录添加到了PATH中,使得java、javac等命令可以直接运行。
tomcat安装:
tar -xf apache-tomcat-9.0.16.tar.gz
mv apache-tomcat-9.0.16 /usr/local/tomcat
tomcat的开启与关闭:需要进入conf中
开启:./startup.sh
关闭:./shutdown.sh
相关文章:
TOMCAT基础
tomcat是一个基于Java开发的,开放源代码的web应用服务器。它可以解析html页面中的java代码,执行动态请求,实现动态页面。核心功能是将收到的http请求处理并转发给适当的servlet来处理,然后将响应返回给客户端。 优点 1,…...
自动化集装箱码头建设指南
1 总则 1.0.1 为规范和指导自动化集装箱码头建设,提高自动化集装箱码头建设和装卸自动化应用水平,做到技术先进、经济合理、安全可靠、高效节能、绿色环保,制定本指南。 1.0.2本指南适用于新建、改建和扩建自动化集装箱码头的设计࿰…...
为什么要用redis
高性能 就是把你一些复杂操作耗时查出来的结果(用了600ms),如果确定后面不咋变了,然后但是马上还有很多读请求,那么直接结果放缓存(6ms),后面直接读缓存就好了。 这样,性能就提升了100倍 高并发 说白了就是…...
QT qmake解析
...
【TypeScript】this指向,this内置组件
this类型 TypeScript可推导的this类型函数中this默认类型对象中的函数中的this明确this指向 怎么指定this类型 this相关的内置工具类型转换ThisParameterType<>ThisParameterType<>ThisType TypeScript可推导的this类型 函数中this默认类型 对象中的函数中的this…...
MySQL 深度分页优化
MySQL 深度分页优化 理解总结: 分页使用limit ,前提是要排序好的数据,这时候,就推荐使用带索引的字段排序,因为索引是天然有序的,不需要像是无序的字段一样,全表扫描,如果太大的话…...
如何在CSS中水平居中一个元素?
聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 使用 margin: 0 auto⭐ 使用 Flexbox 布局⭐ 使用绝对定位和负边距⭐ 使用表格布局⭐ 使用网格布局⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅…...
生信豆芽菜-ESTIMATE预测免疫评分
网址:http://www.sxdyc.com/immuneEstimateScore 一、ESTIMATE预测免疫评分介绍 ESTIMATE(Estimation of STromal and Immune cells in MAlignant Tumor tissues using Expression data)是一种用于预测肿瘤免疫评分的计算方法。它通过分析基因…...
分享一颗能用在TYPE-C接口取电协议芯片LDR6328Q,方便好用
芯片功能:诱导PD充电器输出最大功率,支持最大诱骗20V电压。支持协议:PD/QC/三星AFC/华为SCP等主流快充协议 芯片封装:QFN16,SOP8多封装选择 芯片应用: 桶形连接器替换(BCR),USB-A和…...
【java】Java与SQLite3数据库类型之间对应关系
引 在开发应用程序时,经常需要将数据存储到数据库中。SQLite3 是一种轻量级的嵌入式数据库,广泛应用于移动设备和嵌入式系统。在使用 SQLite3 数据库时,了解 Java 数据类型与 SQLite3 数据库类型之间的对应关系非常重要,以便正确…...
ELK常见部署架构以及出现的问题及解决方案
ELK常见部署架构以及出现的问题及解决方案 ELK 已经成为目前最流行的集中式日志解决方案,它主要是由Beats 、Logstash 、Elasticsearch 、 Kibana 等组件组成,来共同完成实时日志的收集,存储,展示等一站式的解决方案。本文将会介…...
windows使用vscode配置java开发环境
安装JDK 下载windows版本的JDK,解压到一个目录 openJDK下载地址:Archived OpenJDK GA Releases (java.net) 下载 Microsoft Build of OpenJDK | Microsoft Learn 添加环境变量:JAVA_HOME:JDK的解压目录 编辑PATH:…...
centos系统kubeadm安装K8S_v1.27.x容器使用docker(K8S_v1.24版本以后依然使用docker容器管理)
kubeadm安装K8S_v1.27.x容器使用docker 按照需要的文档点击这里下载 一.环境部署 1.1基础环境配置 主机IP 主机名规划 192.168.186.128 k8s-master01 192.168.186.129 k8s-node01 192.168.186.130 k8s-node02 1.2修改机器名称 #永久修改主机名 hostnamectl set-hostname …...
如何使用索引加速 SQL 查询 [Python 版]
推荐:使用 NSDT场景编辑器助你快速搭建可二次编辑器的3D应用场景 假设您正在筛选一本书的页面。而且您希望更快地找到所需的信息。你是怎么做到的?好吧,您可能会查找术语索引,然后跳转到引用特定术语的页面。SQL 中的索引的工作方…...
Oracle 开发篇+Java通过DRCP访问Oracle数据库
标签:DRCP、Database Resident Connection Pooling、数据库驻留连接池释义:DRCP(全称Database Resident Connection Pooling)数据库驻留连接池(Oracle自己的数据库连接池技术) ★ Oracle开启并配置DRCP sq…...
在安装 ONLYOFFICE 协作空间社区版时如何使用额外脚本参数
ONLYOFFICE 协作空间社区版是免费的文档中心工具,可帮助您将用户与文档聚合至同一处,提高协作效率。 ONLYOFFICE 协作空间主要功能 使用 ONLYOFFICE 协作空间,您可以: 邀请他人,协作和沟通完成工作创建协作房间&…...
ChatGPT在智能家居控制和环境管理中的应用如何?
智能家居控制和环境管理是近年来在科技领域迅速发展的重要领域之一。智能家居技术通过将物联网、人工智能和自动化技术相结合,实现了家居设备的智能化、自动化控制和远程管理。ChatGPT作为强大的自然语言处理模型,在智能家居控制和环境管理方面具有广泛的…...
理解 Go 中的切片:append 操作的深入分析(篇2)
理解 Go 语言中 slice 的性质对于编程非常有益。下面,我将通过代码示例来解释切片在不同函数之间传递并执行 append 操作时的具体表现。 本篇为第 2 篇,当切片的容量 cap 不够时 func main() {// slice1 当前长度为 3,容量大小也为 3slice1 :…...
GPT-4 如何为我编写测试
ChatGPT — 每个人都在谈论它,每个人都有自己的观点,玩起来很有趣,但我们不是在这里玩— 我想展示一些实际用途,可以帮助您节省时间并提高效率。 我在本文中使用GPT-4 动机 我们以前都见过这样的情况——代码覆盖率不断下降的项目——部署起来越来越可怕,而且像朝鲜一样…...
java.lang.NoClassDefFoundError: org/apache/tez/dag/api/TezConfiguration
错误: java.lang.NoClassDefFoundError: org/apache/tez/dag/api/TezConfigurationat org.apache.hadoop.hive.ql.exec.tez.TezSessionPoolSession$AbstractTriggerValidator.startTriggerValidator(TezSessionPoolSession.java:74)at org.apache.hadoop.hive.ql.e…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...
如何应对敏捷转型中的团队阻力
应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...
认识CMake并使用CMake构建自己的第一个项目
1.CMake的作用和优势 跨平台支持:CMake支持多种操作系统和编译器,使用同一份构建配置可以在不同的环境中使用 简化配置:通过CMakeLists.txt文件,用户可以定义项目结构、依赖项、编译选项等,无需手动编写复杂的构建脚本…...
深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向
在人工智能技术呈指数级发展的当下,大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性,吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型,成为释放其巨大潜力的关键所在&…...
MySQL的pymysql操作
本章是MySQL的最后一章,MySQL到此完结,下一站Hadoop!!! 这章很简单,完整代码在最后,详细讲解之前python课程里面也有,感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...
