Tomcat服务器学习笔记

您所在的位置:网站首页 tomcat用catalina启动 Tomcat服务器学习笔记

Tomcat服务器学习笔记

2023-01-22 14:26| 来源: 网络整理| 查看: 265

首先展现一个图:

在这里插入图片描述 这就是Tomcat服务器的内部结构,最顶层的容器是Server,代表着整个服务器,整个 Tomcat 的生命周期由Server 控制,一个 Server 至少包含一个 Service(至于最多可以包含多少个 Service,一是看 Tomcat 本身的配置,二是看服务器的硬件配置是否能承载得了) Service 又包含两个主要的部分:Connector 和 Container,这两个组件是 Tomcat 的心脏 Connector 用于接受请求并将请求封装成 Request 和 Response Container 用于封装和管理 Servlet,以及处理具体的 Request 请求 接下来先说一下怎样部署一个项目:使用tomcat部署一个war包: jar包:JAR包是类的归档文件,JAR 文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。 war包:war包是javaWeb程序打的包,war包里面包括写的代码编译成的class文件,依赖的包,配置文件,所有的网站页面,包括html,jsp等等。一个war包可以理解为是一个web项目,里面是项目的所有东西。 首先讲解一下怎样将一个项目打包成war包: 如果是一个maven项目:只需要在pom.xml里面加入: 4.0.0 war MobilPhone org.example MobilPhone 1.0-SNAPSHOT 然后:

请添加图片描述 如果这不是一个maven项目: 1:使用快捷键Ctrl+Alt+Shift+s 或者 鼠标点击选中项目名按F4 打开 Project Structure界面

在这里插入图片描述 2:选择Artifacts,点击右边+,依次选择Web Application:Archive 和 For ‘myPro:war exploded’

在这里插入图片描述 3:[修改名称:可选] 和 注意 war输出的路径

在这里插入图片描述 4:点击下图红色箭头所指+图标,选择Directory Content,添加你的WebRoot目录,然后点击OK

在这里插入图片描述 5:在主界面选择Build – Build Artifacts,找到刚才需要打包的项目名点击build

在这里插入图片描述 部署项目的方式: 1:将项目打出的 war 包直接放到 tomcat/webapps 目录下,那么当 Tomcat 启动时,会自动将 .war 包解压 2:在 conf/context.xml 中进行独立的配置,可以增加如下元素:,启动 Tomcat 后,在浏览器中输入 http://localhost:8080/project/ 就能访问项目了。

请添加图片描述 3:在 Tomcat 中创建 conf/Catalina/localhost 目录,用项目名新建一个 xml 文件,例如 project.xml,然后在 project.xml 中加上类似于第二种方式的内容:,启动 Tomcat 后,在浏览器中输入http://localhost:8080/project/ 就能访问项目了。

请添加图片描述 知识点讲解:网上有很多说第二种部署方法不是在 conf/context.xml 中而是在server.xml中的标签下面,下面简单讲解一下: 在tomcat 5.5之前:Context体现在/conf/server.xml中的Host里的元素,它由Context接口定义。每个元素代表了运行在虚拟主机上的单个Web应用。 元素: path:即要建立的虚拟目录,,注意是/kaka,它指定访问Web应用的URL入口,如http://localhost:8080/kaka/****。 docBase:为实际目录在硬盘上的位置(应用程序的路径或者是WAR文件存放的路径)。 reloadable:如果这个属性设为true,Tomcat服务器在运行状态下会监视在WEB-INF/classes和Web-INF/lib目录CLASS文件的改变,如果监视到有class文件被更新,服务器自动重新加载Web应用,这样我们可以在不重起tomcat的情况下改变应用程序。 一个Host元素中嵌套任意多的Context元素。每个Context的路径必须是惟一的,由path属性定义。另外,你必须定义一个path=“”的context,这个Context称为该虚拟主机的缺省web应用,用来处理那些不能匹配任何Context的Context路径的请求。 2. 在tomcat 5.5之后: 不推荐在server.xml中进行配置,而是在/conf/context.xml中进行独立的配置。因为server.xml是不可动态重加载的资源,服务器一旦启动了以后,要修改这个文件,就得重启服务器才能重新加载。而context.xml文件则不然,tomcat服务器会定时去扫描这个文件。一旦发现文件被修改(时间戳改变了),就会自动重新加载这个文件,而不需要重启服务器。 元素: WEB-INF/web.xml WEB-INF/kaka.xml 监控资源文件,如果web.xml || kaka.xml改变了,则自动重新加载改应用。 表示数据库URL地址 context.xml的三个作用范围: 1. tomcat server级别:

在/conf/context.xml里配置。

2. Host级别:

在/conf/Catalina/${hostName}里添加context.xml,继而进行配置。

3. web app 级别:

在/conf/Catalina/

h

o

s

t

N

a

m

e

{hostName}里添加

hostName里添加{webAppName}.xml,继而进行配置。

给 Tomcat 新增用户,实现输入用户名和密码进入应用管理界面: 打开 conf 目录下的 tomcat-users.xml,添加一行:

请添加图片描述 请添加图片描述 禁用AJP: 修改conf下的server.xml文件,将AJP服务禁用掉即可 禁用前:

请添加图片描述

请添加图片描述 禁用后:

请添加图片描述 请添加图片描述 禁用后还可以访问 知识讲解:Tomcat HTTP协议与AJP协议 Tomcat在server.xml中配置了两种连接器。 HTTP Connector

拥有这个连接器,Tomcat才能成为一个web服务器,但还额外可处理Servlet和jsp。

AJP Connector

AJP连接器可以通过AJP协议和另一个web容器进行交互。

第一个连接器监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。 第二个连接器监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。AJP连接器可以通过AJP协议和一个web容器进行交互。 Web客户访问Tomcat服务器的两种方式:

在这里插入图片描述 AJP13是一个二进制的TCP传输协议,相比HTTP这种纯文本的协议来说,效率和性能更高,也做了很多优化。显然,浏览器并不能直接支持AJP13协议,只支持HTTP协议。所以实际情况是,通过Apache的proxy_ajp模块进行反向代理,暴露成http协议给客户端访问,主要应用场景就是动静分离时,两个服务器之间通信使用。 支持AJP协议的代理服务器可以用这种做法,但是支持AJP代理的服务器非常少,比如目前很火爆的Nginx就没这个模块。因此tomcat的配置大部分都是关闭AJP协议端口的,因为除了Apache之外别的http server几乎都不能反代AJP13协议,没太大用处了


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3