tomcat基础知识

常用的Web容器

Tomcat、Jetty、Weblogic、Nginx、JBoss、IIS、WebSphere,在Java中常用的Web容器是:Tomcat、Jetty、Weblogic、Nginx

tomcat安装

windows下安装

安装tomcat需要注意的点:1 确定系统版本,下载对应的tomcat版本(X86[32位],X86_64(64位的版本)) 2 确定本地安装的jdk版本是否与当前tomcat版本兼容

  1. apache官网上面下载对应的tomcat版本
    a. 确定本地安装的jdk版本是否有当前tomcat版本兼容
    下载Tomcat
    根据如下内容可以看到Tomcat版本所要求的的JDK所支持的版本。
    在这里插入图片描述

tomcat目录结构说明

tomcat目录结构

bin目录
在这里插入图片描述

bin目录
tomcat所有可执行文件的存放目录,这个目录下的文件主要是linux和windows系统可操作的文件,tomcat性能调优的文件
startup.bat/startup.sh : windows/linux系统下启动tomcat
shutdown.bat/shutdown.sh: windows/linux系统下关闭tomcat
catalina.bat/catalina.sh: 设置tomcat内存参数
conf目录
tomcat配置文件目录
lib目录
tomcat运行需要的依赖jar
logs目录
tomcat运行操作过程中产生的日志,如果后续tomcat出现错误,可以到此文件下查看运行日志
temp目录
临时文件存储目录
webapps目录
web项目部署目录
work目录
jsp文件文件运行时编译一些文件存放的工作目录
RUNNING.txt文件
该文件是tomcat使用说明文件,可以通过该说明文件配置tomcat,例如 配置环境变量、高级配置-配置多个tomcat实例、常见的故障排除方法

测试tomcat能否正常运行

  1. 启动tomcat服务器=>点击安装目录下**/bin/startup.bat**
    在这里插入图片描述
    如果启动时,出现异常如:闪退,一般原因为:1 本地没有安装jdk 2 本地安装的jdk版本与tomcat服务不兼容 3 端口号冲突,如果检查以上,还是没有发现问题,可以查看tomcat安装目录下logs/catlina.log文件
    2 在tomcat的webapps中发布一个项目
    • 在webapps中创建一个myapp目录下面创建一个简单的html页面
    • 直接启动tomcat服务器访问http://localhost:8080/myapp/my.html
      在这里插入图片描述

tomcat整体架构

在这里插入图片描述
Server服务器就相当于tomcat安装目录下/conf/server.xml的根节点
在这里插入图片描述
一个Server服务器由多个Service服务组成,Service服务的主要作用是:为外部访问的客户端来提供服务的;Service服务主要是由Connector、Container、Jasper、Naming、Session、Logging、JMX组成

主要的组件

在这里插入图片描述

  • Engine:没有父容器,一个Engine代表一个完整的Servlet引擎,它接收来自Connector的请求,并决定传给哪个Host来处理,Host处理完请求后,将结果返回给Engine,Engine再将结果返回给Connector。
  • Host:Engine可以包含多个Host,每个Host代表一个虚拟主机,这个虚拟主机的作用就是运行多个应用,它负责安装和展开这些应用,并且标识这个应用以便能够区分它们,每个虚拟主机对应一个域名,不同Host容器接受处理对应不同域名的请求。
  • Context: Host可以包含多个Context,Context是Servlet规范的实现,它提供了Servlet的基本环境,一个Context代表一个运行在Host上的Web应用
  • Wrapper: Context可以包含多个Wrapper,Wrapper代表一个Servlet,它负责管理一个Servlet,包括Servlet的装载、初始化、执行以及资源回收。Wrapper是最底层的容器,它没有子容器,所以调用它的addChild将会报错。

Tomcat的执行过程

在这里插入图片描述
假设来自客户的请求为:http://localhost:8080/myapp/my.jsp

  1. 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector获得
  2. Connector把该请求交给它所在的Service的Engine来处理,并等待Engine的回应
  3. Engine获得请求localhost:8080/myapp/my.jsp,匹配它所有虚拟主机Host
  4. Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机)
  5. localhost Host获得请求/myapp/my.jsp,匹配它所拥有的所有Context
  6. Host匹配到路径为/myapp的Context(如果匹配不到就把该请求交给默认路径名为“”的Context去处理)
  7. path=“/myapp”的Context获得请求/my.html,在它的mapping table中寻找对应的servlet(Context里维护了一个map集合)
  8. Context匹配到URL PATTERN为*.jsp的servlet,对应于JspServlet类
  9. 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或doPost方法
  10. Context把执行完了之后的HttpServletReeponse对象返回给Host
  11. Host把HttpServletResponse对象返回给Engine
  12. Engine把HttpServletResponse对象返回给Connector
  13. Connector把HttpServletResponse对象返回给客户browser (浏览器)
    在这里插入图片描述
    tomcat找到web.xml的路径如下:它会先去WEB-INF/web.xml去找,如果找不到就去tomcat安装目录默认的web.xml 路径:/conf/web.xml,如果项目中的web.xml某些项没有配置,就去使用默认的/conf/web.xml
    在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值