Tomcat学习总结

一、Tomcat的组成和架构 1、Tomcat目录结构

bin,可执行文件

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站制作、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的长岭网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

conf,配置文件

lib,Tomcat的依赖库,web应用依赖的包也可放这里

logs,Tomcat默认存放日志位置

temp,临时文件夹

webapps,默认应用部署目录

work,供web应用使用,例如jsp编译成的servlet就放这里

2、JVM启动参数

环境变量JAVA_OPTS

-server –Xms512m –Xmx512m

Xms初始堆,

Xmx堆内存,受限于物理内存

一般让两者一样

3、Tomcat架构与配置文件

server.xml配置结构如下:

<Server> <Service> <Connector> </Connector> <Engine> <Host> <Context> </Context> </Host> </Engine> </Service> </Server>

tomcat结构图如下(侵权删):

从里面到Service这一层可以称作Container

Server服务器下可以有多个Service

Service:可以配置多个

Connector:接收用户请求的,可以配置多个

Connector的实现:Coyote,默认BIO Connector阻塞式IO,java传统IO

Engine:是处理Connector接收到的请求,java代码由他处理

Host:虚拟主机

Context:一个Context就是一个应用

Web应用:Context和Web应用可以画等号

Container:由Catalina实现。

Catalina也是Tomcat中实现容器的组件,用来执行Web应用

4、请求处理流程

客户端发出请求,Connector负责解析请求,然后交给Container处理,Container处理请求,例如获取资源,然后让Connector返回相关内容。

二、Tomcat的Connector和线程池配置 1、Connector参数配置

port:端口号

address:服务器上的IP不止一个,如果不配置,默认监听所有地址,可以通address指定监听哪些地址

protocol:协议,默认http1.1

connectionTimeout:连接超时时间,默认单位毫秒

acceptCount:如果系统没有空闲线程能处理请求,请求就要排队,排队默认值100,超过的就不处理了。

maxConnections:支持连接数,与线程池有关,-1表示不限制

2、 线程池和线程池配置

事先创建一定数目的线程,当有任务的时候,从池中取出使用,用完就放回池中。

Tomcat中使用的是弹性线程池。

minSpareThreds:最小空闲线程数

maxThreads:线程数

配置方式:

1、线程池配置项<Executor>

minSpareThreads

maxThreads

2、Connector配置线程池

1)指定依赖的线程池配置,即指定依赖<Executor>

2)直接指定线程池配置参数,在Connector中配置minSpareThreads,maxThreads

3、curl和telnet连接

可以用这两种方式发出请求

三、Tomcat的日志和配置和war包部署 1、tomcat的日志分类

系统运行日志

访问日志:在server.xml中配置

应用日志

2、部署方式

先将项目有打成war包

放置在webapps目录下

启动tomcat

可以看见war包已经被解压在webapps目录下

四、基本配置示例

<?xml version="1.0" encoding="UTF-8"?> <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> <Listener SSLEngine="on" className="org.apache.catalina.core.AprLifecycleListener" /> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> <GlobalNamingResources> <Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase" /> </GlobalNamingResources> <Service name="Catalina"> <!-- Executor线程池配置项,maxThreads线程数,minSpareThreds最小空闲线程数 --> <Executor name="myThreadPool" namePrefix="catalina-exec-" maxThreads="120" minSpareThreads="4" /> <!-- A "Connector" represents an endpoint by which requests are received and responses are returned. Documentation at : Java HTTP Connector: /docs/config/http.html (blocking & non-blocking) Java AJP Connector: /docs/config/ajp.html APR (HTTP/AJP) Connector: /docs/apr.html Define a non-SSL/TLS HTTP/1.1 Connector on port 8080 --> <!-- connectionTimeout单位毫秒,port访问端口号,executor="myThreadPool"设置Connector使用名字叫myThreadPool的线程池配置 当然也可以直接在Connector中直接配置线程池选项maxThreads和minSpareThreads,但是最好配置成线程池配置项,方便多个Connector依赖 --> <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" executor="myThreadPool" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Engine defaultHost="localhost" name="Catalina"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" /> </Realm> <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true"> <!-- directory日志输出路径,可以配置相对路径(相对于tomcat安装的根路径),也可以配置绝对路径 prefix日志文件前缀 suffer日志文件名字 pattern日志格式,下面是tomcat默认日志格式 pattern具体看tomcat文档,这里给出一部分 %m是请求方法 %a是ip %t是时间 %s是状态码 %b是服务端下发字节数 %{User-Agent}i是发起请求的客户端 fileDateFormat="yyyy-MM-dd."时戳 rotatable="true"按照fileDateFormat时戳的改变进行日志滚动(日志切分) --> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log" suffix=".txt" /> <Context docBase="mall" path="/mall" reloadable="true" source="org.eclipse.jst.jee.server:mall" /> </Host> </Engine> </Service> </Server>

文章名称:Tomcat学习总结
文章起源:/article18/cgjedp.html

成都网站建设公司_创新互联,为您提供网站维护用户体验关键词优化品牌网站建设电子商务响应式网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都做网站