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,一经查实,立即删除!

相关文章

desktop docker 无法卸载_Docker容器无法停止或移除-权限被拒绝错误

问题 &#xff1a;无法停止泊坞窗容器&#xff0c;每当我尝试停止容器时&#xff0c;都会收到以下错误消息&#xff0c;ERROR: for yattyadocker_web_1 cannot stop container: 1f04148910c5bac38983e6beb3f6da4c8be3f46ceeccdc8d7de0da9d2d76edd8: Cannot kill container 1f04…

oracle crs 命令,ORACLE RAC CRSCTL 命令使用 及 执行的用户

oracle rac crsctl命令使用查看crs资源状态[griddb1 ~]$ crs_stat -tName Type Target State Host------------------------------------------------------------ora.DATA.dg ora....up.type ONLINE ONLINE db1ora.FRA.dg ora....up.type ONLINE ONLINEdb1ora....ER.…

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

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

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

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

python的py文件打包成exe_将python项目.py文件打包成.exe文件

安装pyinstaller包pip3 install pyinstaller如果不行pip3 install pyinstaller -i https://pypi.doubanio.com/simple准备一个你要打包的.py文件&#xff0c;cd到该文件路径下&#xff0c;打开cmd在命令行中输入&#xff1a;pyinstaller -F xxx.py或者pyinstaller.exe -F xxx.p…

python处理字典的方法_python字典的常用操作方法小结

Python字典是另一种可变容器模型(无序)&#xff0c;且可存储任意类型对象&#xff0c;如字符串、数字、元组等其他容器模型。本文章主要介绍Python中字典(Dict)的详解操作方法,包含创建、访问、删除、其它操作等,需要的朋友可以参考下。 字典由键和对应值成对组成。字典也被称作…

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

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

linux 谷歌浏览器设置代理_linux下chrome+Proxy Switchy+ssh和firefox+autoproxy+ssh | 学步园...

继之前firefoxautoproxytorprivoxy失效之后&#xff0c;找到了更简单更快速的ssh代理方法&#xff1a;chromeProxy Switchyssh和firefoxautoproxyssh。两种方法都需要一个ssh用户&#xff0c;到这里免费申请&#xff1a;http://www.cjb.net/cgi-bin/shell.cgi?actionsignup。1…

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

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

主成分分析碎石图_主成分分析大全

1 背景主成分分析法是数据挖掘中常用的一种降维算法,是Pearson在1901年提出的,再后来由hotelling在1933年加以发展提出的一种多变量的统计方法&#xff0c;其最主要的用途在于“降维”&#xff0c;通过析取主成分显出的最大的个别差异,也可以用来削减回归分析和聚类分析中变量的…

oracle中删除表字段 sql语句怎么写,oracle使用sql语句增加字段示例(sql删除字段语句)...

添加字段的语法&#xff1a;alter table tablename add (column datatype [default value][null/not null],….);修改字段的语法&#xff1a;alter table tablename modify (column datatype [default value][null/not null],….);删除字段的语法&#xff1a;alter table table…

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

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

ios 获取沙河文件夹_iOS开发之获取沙盒路径

iOS开发之沙盒机制(SandBox)详细讲解了沙盒的一些机制。在开发中&#xff0c;我们需要对沙盒进行操作&#xff0c;所以我们需要获取到沙盒路径。沙盒里的文件夹包括Documents、Library、tmp。这三个文件夹的作用请点击这里。接下来我们来讲解如何获取Documents、Library、tmp的…

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;处理不好…

oracle命令行原理,Oracle命令行操作方式

(1) 进入sqlplus界面 sqlplus user/passworddbname (2)进入sqlplus界面 sqlplus /nolog SQL>conn sys/jiaxiaoaiorcl as sysdba; (4)查看当前所有的数据库 select * from v$database; 或 select name from v$database; (5)查看哪些用户拥有sysdb…

编辑器eslint格式_ESlint 代码格式大坑vscode vetur,eslint 冲突

解决冲突&#xff1a;① vscode 设置页面设置需要使用 ESlint 的格式化&#xff0c;就要将 vscode 编辑器默认的格式化去掉、把 vetur 插件的格式化改写JSON"vetur.validation.template": false // 把 vetur 扩展的 template 格式化去掉"editor.formatOnSave…

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

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

大数据学情分析_多分学情大数据分析

多分学情大数据分析云上大数据仓库解决方案阿里云为企业提供稳定可靠离线数仓和实时数仓的解决方案&#xff0c;包括数据采集、数据存储、数据开发、数据服务、数据运维、数据安全、数据质量、数据地图等完整链路。离线数仓基于Serverless的云上数据仓库解决方案。架构特点开箱…

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…