tomcat 我不是女神ヾ 2022-01-17 12:06 93阅读 0赞 tomacat : Apache Tomcat最早是由Sun Microsystems开发的一个Servlet容器,在1999年被捐献给ASF(Apache Software Foundation),隶属于Jakarta项目,现在已经独立为一个顶级项目。Tomcat主要实现了Java EE中的Servlet、JSP规范,同时也提供HTTP服务,是市场上非常流行的Java Web容器。 目录结构 以Tomcat-8.5为例,分析下各个目录都有哪些文件、有哪些作用。 ![tomcat][] 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是一个HTTP服务器,同时也是一个Servlet容器(可以执行Servlet文件,JSP、JSF会被转换成Servlet),支持多种功能,因此采用了分层、模块化的设计。 查看conf文件夹中的server.xml文件,可以发现上图的层次结构。 <?xml version='1.0' encoding='utf-8'?> <Server> <Service> <Connector/> <Engine> <Host></Host> </Engine> </Service> </Server> 1 2 3 4 5 6 7 8 9 Server Server是一个顶级组件,代表了一个Tomcat实例,一个JVM进程中只能有一个Server实例。Tomcat提供了一个实现了 org.apache.catalina.Server接口的 org.apache.catalina.core.StandardServer默认类,读取Server元素配置。 <Server port="8005" shutdown="SHUTDOWN"></Server> 1 Server是配置文件中的最外层元素,支持以下属性: className:指定要使用的实现类(必须实现org.apache.catalina.Server接口)名称。如果不指定,默认使用标准实现类StandardServer。 address:等待shutdown命令的服务器IP地址,默认是localhost。 port:等待shutdown命令的监听端口,如果设置为-1,表示关闭shutdown端口。 shutdown:指定终止Tomcat服务器运行时,发给Tomcat服务器的shutdown监听端口的字符串.该属性必须设置 。 启动Tomcat,打开命令行工具,通过telnet命令:telnet localhost 8005 连接服务器 输入SHUTDOWN命令,即可关闭Tomcat Service Server元素中可以有一个或多个Service,每个Service关联了多个Connector和一个Engine。 <Service name="Catalina"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Engine name="Catalina" defaultHost="localhost"></Engine> </Service> 1 2 3 4 5 6 Service支持两个属性: className:指定要使用的实现类(必须实现org.apache.catalina.Service接口)名称。如果不指定,默认使用标准实现类StandardService。 name:Service的名称,在同一个Server元素中必须唯一,默认是Catalina。 Connector Connector主要用来处理客户端发来的请求,一个Connector与一个TCP端口绑定,Service中默认包含两个Connector。 HTTP/1.1:处理HTTP请求,此连接器使Tomcat可以作为HTTP服务器使用。 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <!-- port:属性指定监听端口,默认8080端口,可修改为1024-65535间的任意一个端口 protocol:支持协议 connectionTimeout:定义连接器等待时间,默认20秒 redirectPort:SSL请求会重定向到8443端口 \--> 1 2 3 4 5 6 7 AJP/1.3:Apache JServ 协议处理Tomcat与Apache之间的通信。Tomcat核心功能是解析Servlet,html和图片解析功能相对其他HTTP服务器较弱(如Apache HTTP Server),所以,一般都是集成使用,Apache处理静态页面请求,Tomcat处理Servlet/JSP请求。 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 1 Container Tomcat中的容器包括:Engine、Host、Context、Cluster,层级最高的容器是Engine,最低的是Context。 Engine Engine中可以包含一个或者多个Host,可以配置默认主机。Engine容器会从HTTP Connector接收HTTP请求,并且会根据主机名/IP地址交由相应的主机处理请求。 <Engine name="Catalina" defaultHost="localhost"></Engine> 1 Host 一个Host元素代表了一个虚拟主机,默认主机名为localhost,支持多个Context。 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"></Host> <!-- appBase:定义了应用程序的根目录,默认是webapps unpackWARS:定义了是否解压webapps中的WAR文件,如果指定为“false”,会从WAR文件直接运行程序,执行较慢 autoDeploy:把应用程序直接拖到webapps目录下,是否自动运行 \--> 1 2 3 4 5 6 Context Host元素定义了虚拟主机,Context则是虚拟主机下的具体应用。Tomcat启动后,webapps目录下的所有应用程序都会自动运行,访问某个具体项目需要在URL中指定项目名称,如 [http://localhost:8080/examples/][http_localhost_8080_examples] ,ROOT目录除外。想要通过 [http://localhost:8080][http_localhost_8080] 来访问自定义项目,可以把应用程序直接放到ROOT目录中(让ROOT做为项目的根目录),也可以通过Context来配置映射。 <Context path="" docBase="webapps/examples" reloadable="false"/> <!-- path:访问项目时的URL,加在localhost:8080后 docBase:path对应的项目目录 reloadable:监视 /WEB-INF/classes/ 和 /WEB-INF/lib目录中的类文件,更改后自动重载应用程序, 生成环境不建议使用,默认为“false” \--> 1 2 3 4 5 6 7 更改server.xml文件后,重新启动Tomcat,在浏览器中输入 [http://localhost:8080][http_localhost_8080] 即可访问examples应用。 注意修改元素的appBase的属性为空 appBase="" ,否则Tomcat启动时,exmaples应用会被加载两次。 Cluster Cluster可以解决应用之间session共享、上下文属性共享,以及在集群内共同部署应用程序的问题。元素可以包含在或者元素下。 转载于:https://blog.51cto.com/13718453/2392296 [tomcat]: https://s1.51cto.com/images/blog/201905/10/096ce0990e28937bd48319fc6184f66f.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk= [http_localhost_8080_examples]: http://localhost:8080/examples/ [http_localhost_8080]: http://localhost:8080
相关 tomcat 1. c/s: 客户端和服务端 : 例如QQ; 安全, 升级比较麻烦 b/s: 浏览器和服务端: 只需要编写服务端; 不安全 2. web资源介绍: 灰太狼/ 2022年06月14日 08:49/ 0 赞/ 67 阅读
相关 tomcat Tomcat 1.概述 通过上面的讲解大家对JSP与Servlet已经有所理解,最起码知道它们是做什么的,说到底它们都是程序设计语言,是帮助我们更好的编写程序。大家都知 缺乏、安全感/ 2022年06月11日 07:55/ 0 赞/ 409 阅读
相关 Tomcat Tomcat简介 WEB服务器与应用服务器的概念 WEB服务器:专门处理HTTP请求,提供WEB信息浏览服务。 应用服务器:可解析运行后台代码,为应用 客官°小女子只卖身不卖艺/ 2022年06月07日 03:07/ 0 赞/ 254 阅读
相关 Tomcat 1.基本调优 bin/catalina.sh 加一行 JAVA\_OPTS='-Xms128m -Xmx512m -XX:PermSize=128m' 2.设置脚本开机启 r囧r小猫/ 2022年05月31日 22:48/ 0 赞/ 210 阅读
相关 tomcat 一、安装Tomcat5.5.20 1、下载安装包 <table> <tbody> <tr> <td><span><strong>代码:</stro 一时失言乱红尘/ 2022年05月11日 12:16/ 0 赞/ 112 阅读
相关 tomcat 前文: 对tomcat的构的初步解析 一、web服务器 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_te 偏执的太偏执、/ 2022年03月19日 16:58/ 0 赞/ 78 阅读
相关 tomcat tomcat结构 模块组成结构 Tomcat的核心组件就Connector和Container,一个Connector+一个Container(Engine)构成一个 ﹏ヽ暗。殇╰゛Y/ 2022年03月16日 07:51/ 0 赞/ 121 阅读
相关 Tomcat [Tomcat][] Tomcat运行在JVM之上,它和HTTP服务器一样,绑定IP地址并监听TCP端口,同时还包含以下指责: 1. 管理Servlet程序的生命周期 左手的ㄟ右手/ 2022年01月28日 13:21/ 0 赞/ 160 阅读
相关 Tomcat tomcat目录层次结构 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6L 我会带着你远行/ 2021年11月17日 09:02/ 0 赞/ 219 阅读
相关 Tomcat Tomcat文件目录 |-bin: 存放tomcat的命令。 |- conf: 存放tomcat的配置信息。其中server.xml文件是核心的配置文件。 ゝ一世哀愁。/ 2021年09月11日 05:40/ 0 赞/ 327 阅读
还没有评论,来说两句吧...