Tomcat基础

tomcat安装及环境变量配置

1.在Tomcat官网下载安装包并解压

2.右键计算机->属性->高级系统设置->环境变量

3.在系统变量中

(1)新建->变量名”TOMCAT_HOME”,变量值”C:\VO\apache-tomcat-7.0.35”,即Tomcat的安装目录

(2)新建->变量名”CATALINA_HOME”,变量值”C:\VO\apache-tomcat-7.0.35”,即Tomcat的安装目录

(3)新建->变量名”CATALINA_BASE”,变量值”C:\VO\apache-tomcat-7.0.35”,即Tomcat的安装目录

(4)编辑->变量名”CLASSPATH”,在后面加上”;%TOMCAT_HOME%\lib\servlet-api.jar”

(4)编辑->变量名”Path”,在后面加上”;%CATALINA_HOME%\bin;%CATALINA_HOME\bin”

4.进入Tomcat安装目录的bin目录下,双击startup.bat,。打开浏览器输入http://localhost:8080,若出现Tomcat的欢迎页面,即启动成功。

5.在Tomcat中布置工程

将工程的文件夹复制到webapps文件夹下即可。

什么是tomcat

Tomcat是一个HTTP服务器,同时也是一个Servlet容器(可以执行Servlet文件,JSP、JSF会被转换成Servlet),支持多种功能,因此采用了分层、模块化的设计。 Tomcat主要实现了Java EE中的Servlet、JSP规范,同时也提供HTTP服务。

以Tomcat-8.5为例,分析下各个目录都有哪些文件、有哪些作用。

image.png | center | 593x251

bin:主要存放tomcat的操作命令,根据操作系统可以分为两大类:一是以.bat结尾(Windows);二是以.sh结尾(Linux)。比如可以通过startup启动,shutdown关闭Tomcat。

conf:全局配置文件
    一个策略文件:catalina.policy 定义了安全策略。
    两个属性文件:catalina.properties 和 logging.properties 。
    四个XML配置文件:
        server.xml:Tomcat的主要配置文件,配置整个服务器信息,如修改连接器端口号(默认为8080)。不能动态重加载,文件修改之后必须重启服务器才能生效。
        web.xml:全局的web应用程序部署描述文件,如可以设置tomcat支持的文件类型。
        context.xml:Tomcat的一些特定配置项,针对所有应用程序生效。
        tomcat-users.xml:配置Tomcat的用户名、密码,管理身份验证以及访问控制权限。

lib:Tomcat运行依赖的一些Jar文件,比如常见的servlet-api.jar、jsp-api.jar。所有的应用程序可用,可以放置一些公用的Jar文件,如MySQL JDBC驱动(mysql-connector-java-5.1.{xx}-bin.jar)。
logs:运行中产生的日志文件。包含引擎(engine)日志文件 Catalina.{yyyy-mm-dd}.log,主机日志文件localhost.{yyyy-mm-dd}.log,以及一些其他应用日志文件如manager、host-manager。访问日志也保存在此目录下。

temp:临时文件目录,清空不会影响Tomcat运行

webapps:默认的应用程序根目录,Tomcat启动时会自动加载该目录下的应用程序,可以以文件夹、war包、jar包的形式发布(启动时会自动解压成相应的文件夹)。也可以把应用程序放置在其他路径下,需要在文件中配置路径映射。
work:用来存放tomcat在运行时的编译后文件,如JSP编译后的文件。清空work目录,然后重启tomcat,可以达到清除缓存的作用。

注意事项

下面内容部分网上摘抄。谢谢原作者无私的奉献。

                             个人分类:                                                                 云服务                                                                                                 

环境搭建完之后,就是需要tomcat的配置了,那先了解下tomcat是什么,可以干嘛。

Tomcat 是由 Apache 开发的一个 Servlet 容器,实现了对Servlet 和 JSP 的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。

由于 Tomcat 本身也内含了一个 HTTP 服务器,它也可以被视作一个单独的 Web 服务器。但是,不能将 Tomcat 和 Apache HTTP 服务器混淆,ApacheHTTP 服务器是一个用 C 语言实现的 HTTP Web 服务器;这两个 HTTPweb server 不是捆绑在一起的。Tomcat 包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。

B/S工作流程

上面主要可以看到分两个部分,一个是HTTP请求,一个是HTTP响应。

请求分两种:动态请求和静态请求。

动态请求:jsp、cgi、asp、php

静态请求:html、htm

什么是WEB容器:处理动态请求,可以直接连接数据库。

1.1 tomcat主要目录

/bin – Tomcat: 脚本存放目录(如启动、关闭脚本)。 *.sh 文件用于 Unix 系统; *.bat 文件用于 Windows 系统。

/conf – Tomcat: 配置文件目录。

/lib–Tomcat:tomcat服务器所需要的各个库文件

/logs – Tomcat: 默认日志目录。

/webapps – Tomcat:web应用程序存放的目录,web项目保存到此目录即可发布。

/work-- Tomcat:临时文件夹,生成所有的临时文件(.java、.class)

1.2 Web工程发布的目录结构

|-- myWebApp# 站点根目录

|-- META-INF # META-INF 目录

| `–MANIFEST.MF # 配置清单文件

|-- WEB-INF # WEB-INF 目录

| |-- classes# class文件目录

| | |–*.class # 程序需要的class 文件

| | `-- *.xml# 程序需要的xml 文件

| |-- lib # 库文件夹

| | `-- *.jar# 程序需要的jar 包

| `-- web.xml # Web应用程序的部署描述文件

|-- # 自定义的目录

|-- # 自定义的资源文件

myWebApp:工程发布文件夹。其实每个 war 包都可以视为 myWebApp的压缩包。

META-INF:META-INF 目录用于存放工程自身相关的一些信息,元文件信息,通常由开发工具,环境自动生成。

WEB-INF:Java web应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。

/WEB-INF/classes:存放程序所需要的所有 Java class 文件。

/WEB-INF/lib:存放程序所需要的所有 jar 文件。

/WEB-INF/web.xml:web 应用的部署配置文件。它是工程中最重要的配置文件,它描述了 servlet和组成应用的其它组件,以及应用初始化参数、安全管理约束等。

查看服务是否已经安装好,先测一下。在浏览器输入你的公网ip:8080,出现下面网页表示安装成功。

1.3 server.xml 配置

server.xml的结构:

注意:Service中可以有多个Connector元素,Host中可以有多个Context元素。

1.3.1 Server元素

Server 元素表示整个 Catalina servlet 容器。

因此,它必须是 conf/server.xml 配置文件中的根元素。它的属性代表了整个 servlet 容器的特性。

表 2‑1 Server属性表

属性 描述 备注
className 这个类必须实现org.apache.catalina.Server接口。 默认 org.apache.catalina.core.StandardServer
address 服务器等待关机命令的TCP / IP地址。如果没有指定地址,则使用localhost。
port 服务器等待关机命令的TCP / IP端口号。设置为-1以禁用关闭端口。
shutdown 必须通过TCP / IP连接接收到指定端口号的命令字符串,以关闭Tomcat。

1.3.2 Service元素

Service元素表示一个或多个连接器组件的组合,这些组件共享一个用于处理传入请求的引擎组件。Server 中可以有多个 Service。

表2‑ 2‑2 Service属性表

属性 描述 备注
className 这个类必须实现org.apache.catalina.Service接口。 默认 org.apache.catalina.core.StandardService
name 此服务的显示名称,如果您使用标准 Catalina 组件,将包含在日志消息中。与特定服务器关联的每个服务的名称必须是唯一的。

实例 - conf/server.xml 配置文件示例

<?xml version="1.0" encoding="UTF-8"?>

<Serverport="8080"shutdown=“SHUTDOWN”>

<Servicename=“xxx”>

1.3.3 Executor元素

Executor表示可以在Tomcat中的组件之间共享的线程池。

表2‑3 Executor 属性表

属性 描述 备注
className 这个类必须实现org.apache.catalina.Executor接口。 默认 org.apache.catalina.core.StandardThreadExecutor
name 线程池名称。 要求唯一, 供Connector元素的executor属性使用
namePrefix 线程名称前缀。
maxThreads 最大活跃线程数。 默认200
minSpareThreads 最小活跃线程数。 默认25
maxIdleTime 当前活跃线程大于minSpareThreads时,空闲线程关闭的等待最大时间。 默认60000ms
maxQueueSize 线程池满情况下的请求排队大小。 默认Integer.MAX_VALUE

<Servicename=“xxx”>

<Executor name=“tomcatThreadPool” namePrefix="catalina-exec-"maxThreads="300"minSpareThreads=“25”/>

1.3.4 Connector元素

Connector代表连接组件。Tomcat 支持三种协议:HTTP/1.1、HTTP/2.0、AJP。

表2‑4Connector属性表

属性 说明 备注
asyncTimeout Servlet3.0规范中的异步请求超时 默认30s
port 请求连接的TCP Port 设置为0,则会随机选取一个未占用的端口号
protocol 协议. 一般情况下设置为 HTTP/1.1,这种情况下连接模型会在NIO和APR/native中自动根据配置选择
URIEncoding 对URI的编码方式. 如果设置系统变量org.apache.catalina.STRICT_SERVLET_COMPLIANCE为true,使用 ISO-8859-1编码;如果未设置此系统变量且未设置此属性, 使用UTF-8编码
useBodyEncodingForURI 是否采用指定的contentType而不是URIEncoding来编码URI中的请求参数

以下属性在标准的Connector(NIO, NIO2 和 APR/native)中有效:

表2‑5标准的Connector属性表

属性 说明 备注
acceptCount 当最大请求连接maxConnections满时的最大排队大小 默认100,注意此属性和Executor中属性maxQueueSize的区别.这个指的是请求连接满时的堆栈大小,Executor的maxQueueSize指的是处理线程满时的堆栈大小
connectionTimeout 请求连接超时 默认60000ms
executor 指定配置的线程池名称
keepAliveTimeout keeAlive超时时间 默认值为connectionTimeout配置值.-1表示不超时
maxConnections 最大连接数 连接满时后续连接放入最大为acceptCount的队列中. 对 NIO和NIO2连接,默认值为10000;对 APR/native,默认值为8192
maxThreads 如果指定了Executor, 此属性忽略;否则为Connector创建的内部线程池最大值 默认200
minSpareThreads 如果指定了Executor, 此属性忽略;否则为Connector创建线程池的最小活跃线程数 默认10
processorCache 协议处理器缓存Processor对象的大小 -1表示不限制.当不使用servlet3.0的异步处理情况下: 如果配置Executor,配置为Executor的maxThreads;否则配置为Connnector的maxThreads. 如果使用Serlvet3.0异步处理, 取maxThreads和maxConnections的最大值

1.3.5 Context元素

Context元素表示一个Web应用程序,它在特定的虚拟主机中运行。每个Web应用程序都基于Web应用程序存档(WAR)文件,或者包含相应的解包内容的相应目录,如Servlet规范中所述。

属性 说明 备注
altDDName web.xml部署描述符路径 默认 /WEB-INF/web.xml
docBase Context的Root路径 和Host的appBase相结合, 可确定web应用的实际目录
failCtxIfServletStartFails 同Host中的failCtxIfServletStartFails, 只对当前Context有效 默认为false
logEffectiveWebXml 是否日志打印web.xml内容(web.xml由默认的web.xml和应用中的web.xml组成) 默认为false
path web应用的context path 如果为根路径,则配置为空字符串(""), 不能不配置
privileged 是否使用Tomcat提供的manager servlet
reloadable /WEB-INF/classes/ 和/WEB-INF/lib/ 目录中class文件发生变化是否自动重新加载 默认为false
swallowOutput true情况下, System.out和System.err输出将被定向到web应用日志中 默认为false

1.3.6 Engine元素

Engine元素表示与特定的Catalina服务相关联的整个请求处理机器。它接收并处理来自一个或多个连接器的所有请求,并将完成的响应返回给连接器,以便最终传输回客户端。

表2‑6 Engine元素

属性 描述 备注
defaultHost 默认主机名,用于标识将处理指向此服务器上主机名称但未在此配置文件中配置的请求的主机。 这个名字必须匹配其中一个嵌套的主机元素的名字属性。
name 此引擎的逻辑名称,用于日志和错误消息。 在同一服务器中使用多个服务元素时,每个引擎必须分配一个唯一的名称。

1.3.7 Host元素

Host元素表示一个虚拟主机,它是一个服务器的网络名称(如“www.mycompany.com”)与运行Tomcat的特定服务器的关联。

属性 说明 备注
name 名称 用于日志输出
appBase 虚拟主机对应的应用基础路径 可以是个绝对路径, 或 C A T A L I N A B A S E 相 对 路 径 x m l B a s e 虚 拟 主 机 X M L 基 础 路 径 , 里 面 应 该 有 C o n t e x t x m l 配 置 文 件 可 以 是 个 绝 对 路 径 , 或 {CATALINA_BASE}相对路径 xmlBase 虚拟主机XML基础路径,里面应该有Context xml配置文件 可以是个绝对路径, 或 CATALINABASExmlBaseXML,Contextxml,{CATALINA_BASE}相对路径
createDirs 当appBase和xmlBase不存在时,是否创建目录 默认为true
autoDeploy 是否周期性的检查appBase和xmlBase并deploy web应用和context描述符 默认为true
deployIgnore 忽略deploy的正则
deployOnStartup Tomcat启动时是否自动deploy 默认为true
failCtxIfServletStartFails 配置为true情况下,任何load-on-startup>=0的servlet启动失败,则其对应的Contxt也启动失败 默认为false

1.3.8 Cluster元素

由于在实际开发中,我从未用过Tomcat集群配置,所以没研究。

1.4 部署方式

这种方式要求本地必须安装 Tomcat 。

将打包好的 war 包放在 Tomcat 安装目录下的 webapps 目录下,然后在 bin 目录下执行 startup.bat (windows)或 startup.sh(linux) ,Tomcat 会自动解压 webapps 目录下的 war 包。

成功后,可以访问 http://公网IP:8080/xxx (xxx 是 war 包文件名)。

注意:

以上步骤是最简单的示例。步骤中的 war 包解压路径、启动端口以及一些更多的功能都可以修改配置文件来定制 (主要是 server.xml或 context.xml 文件)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值