`

Tomcat相关

阅读更多
Tomcat目录文件

一:Tomcat文件解析


/bin:脚本文件目录。(其中sh文件liux上的启动文件,bat文件windows上的启动文件)
/lib:tomcat的一系列依赖的jar包
/common/lib:存放所有web项目都可以访问的公共jar包(使用Common类加载器加载)。
/conf:存放配置文件,最重要的是server.xml。
/logs:存放日志文件。
/server/webapps:来管理Tomcat-web服务用的。仅对TOMCAT可见,对所有的WEB APP都不可见(使用Catalina类加载器加载)。
/shared/lib:仅对所有WEB APP可见,对TOMCAT不可见(使用Shared类加载器加载)。
/temp:Tomcat运行时候存放临时文件用的。
/webapps:web应用发布目录。
/work:Tomcat把各种由jsp生成的servlet文件放在这个目录下。删除后,启动时会自动创建。


logs存放日志文件:

1.catalina.日期.log
  这个主要是记录tomcat启动时候的信息,类似于我们在eclipse中启动服务的时候在控制台看到的信息。在里面可以看到启动的JVM参数以及操作系统等日志信息。如果没有使用log4j等日志机制,系统的的错误信息与打印语句也在这个日志文件中记录。(linux下所有的日志都在catalina.out中)
2.commons-daemon.日期.log
  这个日期放的估计是利用服务方式启动tomcat作为守护进程的日志记录,因为我的tomcat启动方式是以服务的方式启动的,索引产生这个日志文件记录了服务的启动状态。
3.host-manager.日期.log
  这个估计是放tomcat的自带的manager项目的日志信息的,也没有看到有什么重要的日志信息
4.localhost.日期.log
  这个类似于第一种日志,可是信息没有第一种全
5.localhost_access_log.日期.txt
  这个是存放访问tomcat的请求的所有地址以及请求的路径、时间,请求协议以及返回码等信息(重要)
6.manager.日志.log
  这个估计也是manager项目专有的日志文件,看不出有什么重要的信息
7.tomcat7-stderr.日期.log  
  这个是log4j的错误日志,因此在程序中要合理的捕捉异常。
8.tomcat7-stdout.日期.log  (类似于eclipse的控制台的信息)
  这个是程序中的System语句打印的日志(包括系统抛出的异常),也终于明白了为什么一再强调不能用打印语句进行系统调试




二:tomcat的三种部署项目方式

隐式部署:

1)webapps目录下

显式部署:

1)conf/server.xml中的Host加入一个Context(指定路径和文件地  址)
<Context path="/test" docBase="webdemo" debug="0" reloadable="true" />。docBase目录默认使用appBase="webapps"这个目录。也可以是绝对路径。
2)在conf/Catalina/localhost中创建xml文件(热部署),访问路径为文件名
  
Tomcat启动步骤

Bootstrap -> catalina -> server -> service -> connector、container等


三:Tomcat Server处理一个HTTP请求的过程

1、用户点击网页内容,请求被发送到本机端口8080,被在那里监听的Coyote HTTP/1.1 Connector获得。
2、Connector把该请求交给它所在的Service的Engine来处理,并等待Engine的回应。
3、Engine获得请求localhost/test/index.jsp,匹配所有的虚拟主机Host。
4、Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机),名为localhost的Host获得请求/test/index.jsp,匹配它所拥有的所有的Context。Host匹配到路径为/test的Context(如果匹配不到就把该请求交给路径名为“ ”的Context去处理)。
5、path=“/test”的Context获得请求/index.jsp,在它的mapping table中寻找出对应的Servlet。Context匹配到URL PATTERN为*.jsp的Servlet,对应于JspServlet类。
6、构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet()或doPost().执行业务逻辑、数据存储等程序。
7、Context把执行完之后的HttpServletResponse对象返回给Host。
8、Host把HttpServletResponse对象返回给Engine。
9、Engine把HttpServletResponse对象返回Connector。
10、Connector把HttpServletResponse对象返回给客户Browser。

  
四:tomcat的优化

Tomcat中server.xml优化

1:连接器模式改为NIO模式
NIO模式最大化压榨了CPU,把时间片更好利用起来
NIO适合大量长连接


2:关闭自动重载
<Context  docBase="" reloadable="false"/>
关闭自动重载,默认是true(不同版本中有差异)
自动加载增加运行开销并且很容易内存溢出

3:配置线程池
Executor标签中属性
【namePrefix】线程命名前缀
【maxThreads】最大允许线程数
【minSpareThreads】最少空闲线程,相当于初始化的线程,线程池中的线程
Connector标签中的属性
【executor】对上面Executor标签标签的引用

Tomcat中web.xml优化

Jspservlet开发模式(development)设置为false
SpringBoot中Tomcat优化


Maven中Springboot引入Tomcat
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>

1.设置线程池
server.tomcat.max-threads=1000

2.关闭Accesslog日志
server.tomcat.accesslog=false

当前应用是REST应用(微服务):

servlet优化
1.去掉不必要的资源:JspServlet
2.seesion也可以移除

web.xml优化:
移除掉AccessLogValve
valve实现都需要消耗java应用的计算时间,一般我们可以使用nginx来记录日志



分享到:
评论

相关推荐

    Tomcat 相关操作shell脚本

    而将Tomcat相关的操作封装成shell脚本,是Linux系统管理中的常见实践,能够提高工作效率,便于自动化部署和维护。以下将详细介绍Tomcat在Linux环境下的操作以及如何通过shell脚本来实现这些操作。 一、Tomcat基础...

    myeclipse2015中与tomcat有关的问题的相关问题

    以上就是针对“myeclipse2015中与tomcat有关的问题”的一些知识点,包括配置Tomcat、自定义端口、解决端口冲突、配置服务器、运行和调试项目以及JSP学习相关的内容。希望能够帮助读者在MyEclipse中更好地使用Tomcat...

    可用指标 提供以下与 Tomcat 相关的指标: 线程池指标 会话指标 请求处理器指标 数据库连接池指标 Tomcat 版本信

    提供以下与 Tomcat 相关的指标: 线程池指标 会话指标 请求处理器指标 数据库连接池指标 Tomcat 版本信息 Servlet 响应时间指标 数据库响应时间指标 使用此库 如果你以常规非嵌入式方式运行 Tomcat,我们推荐将以下...

    tomcat相关用法

    【Tomcat相关用法】 Tomcat是一款广泛使用的开源Java应用服务器,特别适合于小型到中型的Web应用程序。以下是一些关于Tomcat使用的重要知识点: 1. **安装与配置**: - 下载Tomcat安装包,解压到指定目录。 - ...

    idea tomcat runner插件

    **Idea Tomcat Runner插件详解** 在Java开发领域,IntelliJ IDEA是一款备受推崇的集成开发环境(IDE),尤其以其...如果你是社区版IDEA的使用者,并且经常需要处理Tomcat相关的任务,那么这个插件无疑是你的好帮手。

    SmartTomcat-3.8.5.zip

    《SmartTomcat插件在IDEA中的安装与使用详解》 SmartTomcat是专为IntelliJ IDEA(简称IDEA)设计的一款强大的Tomcat服务器管理插件...如果你是IDEA用户且经常处理Tomcat相关的项目,那么SmartTomcat将是你的得力助手。

    springboot单独升级Tomcat

    4. 启动后版本没变更:根据控制台打印出的使用的 Tomcat 相关 jar 包,在启动项所在 pom 中添加后重新启动。 知识点 4: 验证是否替换成功 验证是否替换成功需要: 1. 控制台查看 Tomcat 版本:查看控制台打印出的...

    tomcat6 32位系统

    标签“tomact 32”表明这是与Tomcat相关的32位版本,强调了它在32位操作系统上的兼容性。 压缩包子文件的文件名称“apache-tomcat-6.0.47”表明这是Apache Tomcat的6.0.47版本的完整安装包,包含了运行Tomcat所需的...

    Tomcat8.6.31

    【标签】"WEB Tomcat"表明这是一个与Web服务器和Tomcat相关的主题。在Web开发中,Tomcat作为Servlet容器,用于处理HTTP请求并响应动态内容,如JSP页面。它与其他更全面的应用服务器(如IBM WebSphere或Oracle ...

    Tomcat7.zip

    【标签】"tomcat"明确指出该文件主要与Tomcat服务器相关,这意味着文件内容将涉及与Tomcat相关的所有技术细节,如服务器的安装、配置、运行、管理以及与Java应用的集成等。 在【压缩包子文件的文件名称列表】中提到...

    tomcat在ecplise下的插件,方便使用

    总的来说,Tomcat在Eclipse下的插件极大地提高了Java Web开发者的工作效率,使得在Eclipse中进行Tomcat相关的开发和调试工作变得简单且直观。结合Apache Ant这样的构建工具,整个流程更加顺畅,是Java Web开发者的...

    tomcat7.0.68非安装版

    3. 配置环境变量:设置CATALINA_HOME指向Tomcat的根目录,并添加到系统PATH环境变量中,以便在命令行中直接运行Tomcat相关命令。 4. 启动与关闭:通过bin目录下的startup.bat和shutdown.bat脚本启动和关闭Tomcat服务...

    apache-tomcat相关系列

    apache-tomcat-7.0.52 apache-tomcat-5.5.26.zip apache-tomcat-6.0.16.zip apache-tomcat-7.0.50-windows-x86.zip

    Eclipse中导入Tomcat

    如果没有列出Tomcat,点击“Download additional server adapters”链接,搜索并安装Tomcat相关的插件。 5. 选择Apache Tomcat服务器的版本,点击“Next &gt;”,然后指定Tomcat的安装路径。如果Tomcat尚未安装,先下载...

    Java内嵌式Tomcat-TomcatDemo

    在"TomcatDemo"中,可能使用Maven或Gradle来构建和打包应用,它们能自动下载并管理Tomcat相关依赖。 6. **生命周期管理**:内嵌式Tomcat提供了启动、停止和重新加载Web应用的接口,方便在应用运行时进行动态更新。 ...

    tomcat7.0-64位

    【标签】"tomcat"进一步强调了这个压缩包的主要内容,即与Tomcat相关的软件。 【压缩包子文件的文件名称列表】包含两个文件:`apache-tomcat-7.0.75.exe`是Tomcat的安装程序,它包含了运行Tomcat所需的所有组件,如...

    esclipse中tomcat插件

    你会看到一系列与Tomcat相关的插件,如“Tomcat Server Adapter”或“Tomcat Plugin”。 3. **选择并安装插件**:找到适合你的插件,通常推荐的是由Eclipse本身提供的“Tomcat Server Adapter”。点击“Install”...

    windows不能在本地计算机启动Apache Tomcat. 有关更多信息,查阅系统事件日志。如果这是非Microsoft服务,请与服务厂商联系,并参考特定服

    要查看相关的错误信息,用户需要打开事件查看器,找到“Windows日志”下的“应用程序”类别,寻找与Tomcat或Java相关的错误条目。这些条目通常会提供更具体的错误原因,如配置问题、依赖服务未启动、权限不足等。 ...

    3.0 tomcat.rar

    【标题】"3.0 tomcat.rar"是一个与Tomcat相关的压缩包,它很可能包含了Tomcat服务器的3.0版本的安装文件或者源代码。Tomcat是Apache软件基金会的Jakarta项目下的一个开源免费的Java Servlet容器,尤其适用于运行Java...

    Shell kill tomcat process

    在返回的结果中,找到与Tomcat相关的PID(Process ID),通常是`java`进程。PID是进程的唯一标识符。 3. **安全地停止Tomcat**: 通常,Tomcat会监听一个特定的信号来优雅地关闭,可以使用以下命令: ``` kill ...

Global site tag (gtag.js) - Google Analytics