linux tomcat环境变量配置_Tomcat

Tomcat介绍

499ba4559f68033245e7cb3d8084ae10.png

1.Web服务器介绍Web服务器可以解析HTTP协议,收到请求后可以进行响应,比如响应静态资源、进行页面跳转等Web服务器响应可委托给CGI脚本、JSP脚本、ASP脚本、服务器端JS等程序或其它服务器端技术Web服务器通常产生一个html响应以便浏览器浏览2.常见Web服务器Web服务器根据对JavaEE的支持程度分为JavaEE服务器以及Web容器JavaEE服务器
  • 包括WebSphere、WebLogic、JBoss、Geronimo等
  • 特点是重量级、对JavaEE技术规范支持比较全面、功能强大
Web容器(Servlet/JSP容器)
  • 包括Tomcat、Jetty等
  • 仅对Servlet、JSP进行支持,并不支持所有JavaEE技术规范
  • 特点是轻量级、速度快、开源免费
3.Tomcat概述Tomcat是官方推荐的Servlet/JSP容器Servlet/JSP的最新规范都可以在Tomcat的新版本中得到实现4.Tomcat目录

79c424c4fbed869ac17e96de0b0a87a3.png

webapps下有一个ROOT目录,无需在URL加上项目名即可访问其内的资源Tomcat的下载与安装

499ba4559f68033245e7cb3d8084ae10.png

1.Tomcat的下载与安装在Tomcat官网https://tomcat.apache.org/根据自己的JDK的版本选择Tomcat并下载

5e3b09f261c702a354a6ec14a449a3f7.png

直接解压安装2.Tomcat环境变量配置新建CATALINA_HOME环境变量,变量值为Tomcat的解压安装位置新建CATALINA_BASE环境变量,变量值默认与CATALINA_HOME一致,可选在Path环境变量中追加如下配置
%CATALINA_HOME%\bin和%CATALINA_HOME%\lib
在DOS命令行中输入startup并回车,启动Tomcat在浏览器中输入localhost:8080并回车,Tomcat安装成功则出现以下页面

f412ea84fd2a99464e618dbc1d68b087.png

关闭Tomcat窗体或直接ctrl+c即可终止Tomcat服务器3.IDEA中Tomcat的配置打开File->Settings->Build, Execution, Deployment->Application Servers,点击加号

a9008eca0b8ed5f58b101ecf7b238598.png

选择Tomcat Server

6cdac8fcaa31d1ed12e99040545da265.png

Tomcat环境变量设置好之后,Tomcat Home和Tomcat base directory会被自动填好,点击确认

0ffd51656c9940a8399343c1a14c4641.png

这样就在IDEA中配置好了Tomcat

2190580ab90b33ab571633afa8d6f2b6.png

server.xml配置文件

499ba4559f68033245e7cb3d8084ae10.png

1.server.xml配置文件概述server.xml位于Tomcat安装目录下的conf目录下,是Tomcat的主配置文件server.xml提供Tomcat组件的初始配置server.xml说明了Tomcat的结构,使Tomcat通过实例化组件完成自身构建以及启动可以在Tomcat安装目录的webapps\docs\config下查看server.xml配置说明2.server.xml配置详解Server
  • port:监听关闭Tomcat请求的端口
  • shutdown:关闭Tomcat请求需要向监听端口发送的命令字符串
Service
  • name:service的名字
Connector(表示客户端和Service之间的连接,以HTTP/1.1Connector为例,HTTP/2、AJP有所不同)
  • port:服务器监听客户端请求的端口号
  • minProcessors:服务器启动时创建用于处理请求的线程数
  • maxProcessors:可以创建用于处理请求的最大线程数
  • enableLookups:
    • true:可调用request.getRemoteHost()进行DNS查询,得到远程客户端的实际主机名
    • false:不进行DNS查询,直接返回IP地址
    • redirectPort:服务器正在处理HTTP请求时收到一个SSL传输请求后重定向的端口号
    • acceptCount:所有可使用的处理请求线程数都被使用时,可以放到处理队列中的请求数,请求超过这个数则不予处理
    • connectionTimeout:连接超时时间,以毫秒为单位
Engine(表示Service中用于接收和处理来自Connector请求的处理机)
  • defaultHost:指定缺省的请求处理主机名,至少与一个Host元素的name属性一致
Context(表示一个Web应用程序)
  • docBase:应用程序路径或War包路径
  • path:Web应用程序URL的前缀
  • reloadable:设置为true,则可以自动装载新应用程序而无需重启
Host(表示一个虚拟主机)
  • name:主机名
  • appBase:存放应用程序的目录
  • unpackWARS
    • true:Tomcat自动将War包解压
    • false:直接从War包中运行应用程序
Realm(表示存放用户名、密码及role的数据库)
  • className:指定Realm使用的类名,该类须实现org.apache.catalina.Realm接口
Valve(表示记录应用程序的访问信息的日志)
  • className:指定Valve使用的类名,该类须实现org.apache.catalina.AccessLogValve接口
web.xml配置文件

499ba4559f68033245e7cb3d8084ae10.png

1.web.xml配置文件概述web.xml包含了描述整个Web应用程序的信息可以在Tomcat安装目录的webapps\docs\appdev下找到web.xml.txt,查看详细配置说明2.web.xml配置文件部分配置设置欢迎页面,应用程序响应第一个可以找到的欢迎页面
<welcome-file-list>    <welcome-file>欢迎页面1welcome-file>    <welcome-file>欢迎页面2welcome-file>    <welcome-file>欢迎页面3welcome-file>    ...welcome-file-list>
设置报错页面
<error-page>    <error-code>HTTP响应状态码error-code>    <location>报错页面路径location>error-page><error-page>    <exception-type>异常类全类名exception-type>    <location>报错页面路径location>error-page>
设置Session过期时间,单位为分钟
<session-config>    <session-timeout>Session过期时间session-timeout>session-config>
Tomcat部署项目

499ba4559f68033245e7cb3d8084ae10.png

1.静态部署方式一:webapps目录是Tomcat默认的应用目录,服务器启动时会加载这个目录下所有的应用可以将Web项目拷贝到webapps目录下进行部署方式二:War包是具有特殊格式的Jar包,是将一个Web项目中所有内容进行压缩得到可以通过DOS命令行或IDEA将项目打成War包然后将War包放到webapps目录下进行部署方式三:在server.xml配置文件Host元素后面配置应用程序的Context配置
<Context path="Web应用程序URL的前缀" docBase="应用程序路径或War包路径"/>
方式四:在Tomcat安装目录的conf下找到或新建Catalina目录在Catalina目录下找到或新建名称为Web项目所在服务器域名的目录,本地则为localhost新建一个xml文件,名称需要与Web应用程序URL的前缀一致该xml内容如下
<?xml version="1.0" encoding="UTF-8"?><Context path="Web应用程序URL的前缀" docBase="应用程序路径或War包路径"/>
5.动态部署(热部署)Tomcat提供了admin和manager两个管理程序admin用于管理和配置Tomcat服务器manager用于管理Tomcat服务器上的应用程序Tomcat中manager四种角色如下
  • manager-gui
    • allows access to the HTML GUI and the status pages
    • 允许访问html接口(即URL路径为/manager/html/*)
  • manager-script
    • allows access to the text interface and the status pages
    • 允许访问纯文本接口(即URL路径为/manager/text/*)
  • manager-jmx
    • allows access to the JMX proxy and the status pages
    • 允许访问JMX代理接口(即URL路径为/manager/jmxproxy/*)
  • manager-status
    • allows access to the status pages only
    • 允许访问Tomcat只读状态页面(即URL路径为/manager/status/*)
在Tomcat安装目录的conf目录tomcat-user.xml配置文件中添加角色和用户,方式如下
<tomcat-users>    <role rolename="角色1"/>    <role rolename="角色2"/>    ...    <user username="用户1" password="用户1密码" roles="角色1,角色2..."/>    <user username="用户2" password="用户2密码" roles="角色1,角色2..."/>    ...tomcat-users>
重启Tomcat后登录Tomcat管理控制台http://localhost:8080/,点击Manager App

f826beb075c9389593f057a6384dd5e8.png

在弹出框输入配置的用户名和密码,进入Tomcat应用程序管理者页面

5e29f0bbdbe3e4ab25e145826340e1e1.png

通过填写Web项目信息,或者直接上传War包进行部署

669b0540f2882f6e372724a76f14bf27.png

Tomcat架构解析

499ba4559f68033245e7cb3d8084ae10.png

1.Tomcat体系结构

eb3a136cdc33ffb66ec5639836823793.png

2.ConnectorConnector是Tomcat的两大核心组件之一Connector最重要的功能就是接收请求并分配线程然后让Container进行请求处理Connector的设计核心理念是多线程的处理Tomcat有两个经典的Connector,一个侦听浏览器HTTP请求,一个侦听其它WebServer的请求Connector处理请求步骤
  • 在指定的端口上侦听并接收浏览器发来的TCP连接请求
  • 接收请求后创建用于交换数据的Request以及Response对象
  • 创建线程处理请求并将Request和Response对象传给Engine
  • 从Engine获取响应并返回给客户端
3.ContainerContainer是Tomcat的两大核心组件之一,一个Container可对应多个ConnectorContaiiner是容器的父类,由Engine、Host、Context、Wrapper四种容器组件构成

6deec89fe83f56abe66b083e7b836143.png

Wrapper
  • 通常一个Servlet类对应一个Wrapper
  • 如有多个Servlet就定义多个Wrapper
Context
  • 如有多个Wrapper就要定义一个更高级的Container,比如Context
  • Context定义在父容器Host中
Host
  • Host不是必需的
  • 运行War包必须要Host,因为War包里面的web.xml文件解析需要Host
Engine
  • 如有多个Host就要定义一个顶层容器Engine
  • Engine没有父容器,一个Engine代表一个完整的Servlet引擎

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

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

相关文章

一直未运行_【直击一线】延一转三相分离器投运成功,盘活全区生产运行一盘棋...

喜 讯4月30日上午17点30点&#xff0c;新安边作业区延一接转注水站上新更换的三相分离器一次投运成功&#xff0c;这个好消息不胫而走传遍了全区收获获赞声一片&#xff0c;这也是对连日来奋战在施工作业现场的新安边人最大的褒奖。 延一接转注水站全貌延一接转注水站是新安边…

python字符串长度_在python中如何获取字符串的长度

python中如何获取字符串的长度&#xff1f;本篇文章就给大家介绍4种在python中计算并输出字符串长度的方法。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你们有所帮助。 Python中的字符串是Unicode代码点的不可变序列。给定一个字符串&#xff0c…

oracle rowed,oracle bitmap索引内部揭密,欢迎补充

位图(bitmap)索引是另外一种索引类型&#xff0c;它的组织形式与B树索引相同&#xff0c;也是一棵平衡树。与B树索引的区别在于叶子节点里存放索引条目的方式不同。从前面我们知道&#xff0c;B树索引的叶子节点里&#xff0c;对于表里的每个数据行&#xff0c;如果被索引列的值…

asp.mvc 4项目发布文件目录结构_Spring Boot项目搭建与启动

Spring Boot简介Spring Boot是由Pivotal团队提供的全新框架&#xff0c;其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。通过这种方式&#xff0c;Spring Boot致力于在蓬勃发…

windows7系统适合哪个python_Python3.6.4在Windows7系统下安装配置教程

Python3.64在Windows7系统下安装配置教程 工具/原料 Windows7系统 python3.6.4版本 方法/步骤 1 双击应用程序打开如图所示的界面这里是应用程序向导界面 这里建议勾选底部的自动写入path&#xff0c;然后点击自定义选项&#xff08;如图&#xff09;&#xff08;当然你也可以选…

php软删除代码,PHP laeavel软删除以及软删除还原 易错点

PHP laeavel软删除以及软删除还原 易错点PHP laeavel软删除以及软删除还原 易错点首先 数据库字段添加deleted_at字段然后在模型层中引入 SoftDeletes类 并引用use Illuminate\Database\Eloquent\SoftDeletes;控制器正常执行删除代码//软删除public function del(int $id){//$r…

为何控件删除不了_过不好又离不了的婚姻,不如这样去处理

你是否常常感慨&#xff0c;走过了那么长的路&#xff0c;看遍了那么多的繁花&#xff0c;听过了那么多的道理&#xff0c;却依然过不好这一生&#xff1f;明明已经很用心的去生活了&#xff0c;明明已经尽了最大的努力了&#xff0c;生活依然如同一团乱麻&#xff0c;处理不好…

单基因gsea_10个细胞系仅1个表达你的基因

遇到了粉丝的一个超级好的问题&#xff1a;感兴趣的一个基因A&#xff0c;研究它在10种乳腺癌细胞系中的表达情况&#xff0c;跑了western和qpcr 。 发现它只在一种乳腺癌细胞系中表达&#xff0c;其他9种都不表达。 结果是一致的&#xff0c;确认自己的实验没有问题&#xff…

oracle修改成olap模式,的Oracle OLAP Java实现 - 正确源加入

为此&#xff0c;我使用的是默认的模式/例如从Oracle OLAP下载部分GLOBAL 。这是从Oracle OLAP的Java引导代码的修改后的版本&#xff1a;MdmCube unitsCube (MdmCube)mdmDBSchema.getTopLevelObject("PRICE_CUBE_AWJ");MdmBaseMeasure mdmUnits (MdmBaseMeasure)uni…

c 定义结构体时提示应输入声明_C++|了解结构体的内存对齐(成员声明的顺序影响占用空间大小)...

我们使用的电子计算机绝大部分都是冯诺依曼结构的机器&#xff0c;遵循“存储程序”的概念。数据处理以存储为前提&#xff0c;在编程中数据如何“存得进去&#xff0c;取得出来”&#xff0c;并且符合空间、时间效率的要求&#xff0c;在考虑数据结构和算法时&#xff0c;都要…

linux 找不到php命令,bash scp:未找到命令的解决方法

scp命令用于通过ssh在两台服务器之间传输文件。大多数scp用户在系统中已经可以使用scp命令&#xff0c;但它仍然显示“bash:scp:command not found”。因此注意&#xff0c;scp命令必须在本地和远程系统上都可用才可以避免这个问题。安装SCP命令包scp命令来自Red Hat系统上的op…

Redis数据库——键过期时间

一.设置键的生存时间或者过期时间 我们可以在Redis客户端输入命令&#xff0c;可以以秒或者毫秒精度为数据库中的某个键设置生存时间&#xff0c;在指定秒数或者毫秒数之后&#xff0c;服务器会自动删除生存时间为0的键。 1.1 设置过期时间 Redis有四个不同的命令可以用于设置键…

linux 系统配额管理功能,Linux磁盘配额管理

前言&#xff1a;磁盘配额是一种磁盘空间的管理机制&#xff0c;使用磁盘配额可限制用户或组在某个特定文件系统中所能使用的最大空间。Linux系统是多用户任务操作系统&#xff0c;在使用系统时&#xff0c;会出现多用户共同使用一个磁盘的情况&#xff0c;如果其中少数几个用户…

python中的with open读取表格文件_python 使用 with open() as 读写文件

读文件: 要以读文件的模式打开一个文件对象&#xff0c;使用Python内置的open()函数&#xff0c;传入文件名和标示符&#xff1a; >>> f open(E:\python\python\test.txt, r) 标示符r表示读&#xff0c;这样&#xff0c;我们就成功地打开了一个文件。 如果文件不存在…

实用必备xp框架模块_Xposed框架安装、使用以及插件开发

Xposed框架&#xff1a;是一款可以在不修改APK的情况下影响程序运行&#xff08;修改系统&#xff09;的框架服务&#xff0c;基于它可以制作出许多功能强大的模块&#xff0c;且在功能不冲突的情况下同时运作。对原生Launcher替换图标等应用或功能均基于此框架。1、安装xposed…

3D动作绑定_3D动漫制作软件,你知道几个?

最近小编收到很多私信&#xff0c;都是问小编3D动画是靠什么软件制作而成的&#xff1f;小编经过长时间的查询&#xff0c;今天就给大家来讲一讲3D动画到底是靠什么软件制作而成的。首先&#xff0c;先给大家来讲讲3D动画在国内的制作。动画制作是个庞大的工业流程&#xff0c;…

linux set权限,Linux 特殊权限set_uid(示例代码)

特殊权限set_uid默认情况下 , 在新安装好的Linux系统下 , 仅有一个命令是拥有set_uid特殊权限的 .拥有s权限的命令(文件) : 为了确保非所有者用户 , 在使用该命令时,临时拥有所有者的身份 ; 给一个文件设置set_uid特殊权限,前提是该文件是一个可执行的二进制文件(一般都是给命令…

python中如何编写代码输入多个数据并把它们放在一个列表中去_10分钟学习函数式Python...

在这篇10分钟的文章中&#xff0c;您将学习Python中的函数式范型。您还将学习列表推导式。目录函数式范式Python的map函数是如何运行的Python中的lambda表达式Python中的reduce函数filter函数Python中的高阶函数带有函数的部分应用函数编程不是Python化列表推导式任何可迭代对象…

c++ mqtt客户端_MQTT详解及百度物接入连接手机测试(含源码) 秦子帅

MQTT简介MQTT定义MQTT(Message Queuing Telemetry Transport&#xff0c;消息队列遥测传输)是IBM开发的一个即时通讯协议&#xff0c;有可能成为物联网的重要组成部分。该协议支持所有平台&#xff0c;几乎可以把所有联网物品和外部连接起来&#xff0c;被用来当做传感器和制动…

antix linux安装教程,antiX 19.1 发布,轻量级的桌面Linux发行版

antiX是一种轻量级的桌面Linux发行版&#xff0c;以IceWM作为默认窗口管理器&#xff0c;已升级到版本19.1。尽管主要是一个错误修复版本&#xff0c;但新版本还将IceWM更新到版本1.6.3&#xff1a;提供了antiX-19.1错误修复/升级ISO映像。所有新ISO映像都是antiX 19 SysVInit系…