Jdk 和 Tomcat 安装配置详解|学习笔记

简介: 快速学习 Jdk 和 Tomcat 安装配置详解

开发者学堂课程【Tomcat 服务器入门详解Jdk 和 Tomcat 安装配置详解】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/654/detail/10845


七、配置文件

文件名

说明

server.xml

主配置文件

web.xml

每个 webapp 只有“部署”后才能被访问,它的部署方式通常由 web.xml进行定义,其存放位置为 WEB-INF/ 目录中;此文件为所有的 webapps 提供

默认部署相关的配置

context.xml

每个 webapp 都可以专用的配置文件,它通常由专用的配置文件contextxml 来定义,其存放位置为 WEB-INF/ 目录中;此文件为所有的 webapps 提供默认配置

tomcat-users.xml

用户认证的账号和密码文件

catalina.policy

当使用 -security 选项启动 tomcat 时,用于为 tomcat 设置安全策略

catalina.properties

Java 属性的定义文件,用于设定类加载器路径,以及一些与 JVM 调优相关参数

logging.properties

 日志系统相关的配置。log4j

 

八、启动查看 tomcat

1. 输入 bin/startup.sh

图片18.png

2.查看端口输入 ss -tanl

8080是需要访问的 http 端口,8005是本地的

3.在网页输入网址进行访问

http://192.168.142.151:8080//

图片19.png

其页面是带管理功能的,是在 index.jsp 页面所决定的,可以添加按钮等功能,可以开放一些功能进行主机管理、app监控等。

4.(1)搜索 tomcat:ps aux I grep tomcat

图片20.png

可以看到运行的是 /user/local/tomcat 文件,并且装载了很多包,但是是 root用户,并不太好,可以选择安装官方 tomcat,安装后将 servers 复制修改即可;亦或是选择脚本运行,选择在权限比较低的用户上。

(2)如何选择权限低的用户?

首先修改本身用户,因为本身是 root 用户,想要创建新用户必须修改后才有足够权限创建。

chown -R java.java ./*

su -java -c "/usr/local/tomcat/bin/catalina.sh start"

再次查询即可:ps aux I grep tomcat

查询到用户为 java,就可以使用这个身份直接使用,将 Java 运行起来,安全性更高,所以在自己写脚本时将核心语句加进去即可。

图片21.png


九、Tomcat 内部组成

1. 主配置文件 输入 vim conf/server.xml

(1)server 可以理解为 tomcat

(2)service 提供服务

(3)Connector 端口

(4)Engine 引擎

(5)Host 虚拟主机 以及对应目录中的内容

2. 组件分类—其实是 Java 背后不同的类

(1)顶级组件

Server,代表整个 Tomcat 容器

(2)服务类组件

Service,组织 Engine 和 Connector,里面只能包含一个 Engine

(3)连接器组件

Connector,有 HTTP、HTTPS、AJP 协议的连接器

(4)容器类

Engine、Host、Context 都是容器类组件,可以嵌入其它组件,内部配置如何运行应用程序。

(5)内嵌类

可以内嵌到其他组件内,valve、logger、realm、loader、manager 等。以 logger 举例,在不同容器组件内定义。

(6)集群类组件

listener、cluster

图片22.png

3.看图更易记忆!!!
(1)首先最外层配置 Server 是 Tomcat 示例,黑边框只有一个,这说明 server 在tomcat 中只能配置一个。

(2)engine 管虚拟主机,而虚拟主机可以有好几个,配置虚拟多站点,engine 在service 下,其实连接器就是链接的端口,就是用一个类来实现监听端口。

IP在网络层是实现路由用的,所以用 ip 可以找到主机。但是主机有很多,并不能直接俄找到想要的主机,这个时候就需要端口来寻找,所以 IP 地址+端口才能和应用程序进程对应起来。

(3)http 协议想要请求一个主机,通过引擎对象,将 url 中的内容提取出来,靠虚拟主机的运营,找到主机。

(4)service 更像是一种容器,装着连接器和 engine,一个 service 只能有一个engine,每个 engine 可以监听多个不同端口。使用应用程序用 engine 处理,将二者包含在一起,典型的一对多的关系。即每一个 service 里面都要使得 engine 和连接器之间建立联系。一个 server 中可以创建多个 service,但一般只配置一个service,虽然可以但我们很少做。

(5)当 engine 和连接器对应好后,对应请求的 url 的协议必须是 http,是 http后找到8080端口,将其交给 engine,engine 背后是一个类,这个类会处理url的数据,通过数据处理找到主机,这个时候主机已经获得路径,再通过路径找到context,context 里面配置了路经,url 逻辑路径应该找到物理路径。如果通过路径没有找到 context 就是404。

(6)找到 context 之后里面就是 web Application,即你写的网页,里面可能会运行,Servlet、JSP、HTML,原则上支持静态页面,但是若想动静分离,那么页面只有 Servlet、JSP,没有 HTML。

4.说明:

名称

说明

Server

Tomcat 运行的进程实例

Connector

负责客户端的 HTTP、HTTPS、AJP 等协议的连接。一个 Connector 只属于某一个 Engine

Service

用来组织 Engine 和 Connector 的关系

Engine

响应并处理用户请求。一个引擎上可以绑定多个 Connector

Host

虚拟主机

Context

应用的上下文,配置路径映射 path=>directory

AJP(Apache Jserv protocol) 是一种基于 TCP 的二进制通讯协议。

5.核心组件

(1)Tomcat 启动一个 Server 进程。可以启动多个 Server,但一般只启动一个

(2)创建一个 Service 提供服务。可以创建多个 Service,但一般也只创建一个

①每个 Service 中,是 Engine 和其连接器 Connector 的关联配置

(3)可以为这个 Server 提供多个连接器 Connector,这些 Connector 使用了不同的协议,绑定了不同的端口。其作用就是处理来自客户端的不同的连接请求或响应

(4)Service 内部还定义了 Engine,引擎才是真正的处理请求的入口,其内部定义多个虚拟主机 Host

①Engine 对请求头做了分析,将请求发送给相应的虚拟主机

②如果没有匹配,数据就发往 Engine上 的 defautHost 缺省虚拟主机

③Engine 上的缺省虚拟主机可以修改

(5)Host 定义虚拟主机,虚拟主机有 name名称,通过名称匹配

(6)Context 定义应用程序单独的路径映射和配置

以上为逻辑路径和物理路径之间的映射关系

核心配置代码,是最简单的配置,连接器是http 的(port=”8080”、二进制的(protocol="AJP/1.3"redirectPort="8443"),协议版本已告知(protocol=”HTTP/1.1”);两个端口的数都会交给 engine 处理,将数据交给唯一的虚拟主机。

6.举例:

假设来自客户的请求为: http://localhost:8080/test/index.jsp(首先要做 DNS 网络解析)

(1)浏览器端的请求被发送到服务端端口8080,Tomcat 进程监听在此端口上。通过侦听的 HTTP/1.1 Connector 获得此请求。

(2)Connector 把该请求交给它所在的 Service 的 Engine 来处理,并等待 Engine 的响应

(3)Engine 获得请求 localhost:8080/test/indexjsp,匹配它所有虚拟主机 Host

(4)Engine 匹配到名为 localhost 的 Host。即使四配不到也把请求交给该 Host处理,因为该 Host 被定义为该 Engine 的默认主机

(5)localhost Host 获得请求 /test/index.jsp,匹配它所拥有的所有 Context Host 匹配到路径为 /test 的 Context

(6)path=/test 的 Context 获得请求 /indexisp,在它的 mappingtable 中寻找对应的 servlet!!1此点较为重要

(7)Context 匹配到 URLPATTERN为*.jsp 的 servlet,对应于 JspServlet

类构造 HttpServletRequest 对象和 HttpServletResponse 对象,作为参数调用IspServlet 的 doGet 或 doPost 方法。

(8)Context 把执行完了之后的 HttpServletResponse 对象返回给 Host。

(9)Host 把 HttpServletResponse 对象返回给 Engine

(10)Engine 把 HttpServletResponse 对象返回给 Connector。

(11)Connector 把 HttpServletResponse 对象返回给浏览器端

相关文章
|
1天前
|
IDE Java Shell
02|手把手教你安装JDK与配置主流IDE
02|手把手教你安装JDK与配置主流IDE
6 0
|
3天前
|
IDE Java 应用服务中间件
JDK1.6.0+Tomcat6.0的安装配置(配置JAVA环境)
JDK1.6.0+Tomcat6.0的安装配置(配置JAVA环境)
14 1
|
3天前
|
Java Shell 开发者
都2024年了!你还不知道在Docker中安装jdk?
都2024年了!你还不知道在Docker中安装jdk?
|
3天前
|
存储 Cloud Native Java
Anolis安装Jdk保姆级教学
Anolis安装Jdk保姆级教学
|
4天前
|
Java 开发工具
2023全网最详细的银河麒麟操作系统,Java运行环境【jdk】安装
2023全网最详细的银河麒麟操作系统,Java运行环境【jdk】安装
|
8天前
|
Oracle Java 关系型数据库
windows 下 win11 JDK17安装与环境变量的配置(配置简单详细,包含IJ中java文件如何使用命令运行)
本文介绍了Windows 11中安装JDK 17的步骤,包括从官方网站下载JDK、配置环境变量以及验证安装是否成功。首先,下载JDK 17的安装文件,如果没有Oracle账户,可以直接解压缩文件到指定目录。接着,配置系统环境变量,新建`JAVA_HOME`变量指向JDK安装路径,并在`Path`变量中添加。然后,通过命令行(cmd)验证安装,分别输入`java -version`和`javac -version`检查版本信息。最后,作者分享了如何在任意位置运行Java代码,包括在IntelliJ IDEA(IJ)中创建的Java文件,只需去掉包声明,就可以通过命令行直接运行。
|
12天前
|
弹性计算 运维 Java
一键安装二进制JDK
【4月更文挑战第30天】
10 0
|
12天前
|
关系型数据库 MySQL 应用服务中间件
centos7在线安装jdk1.8+tomcat+mysql8+nginx+docker
现在,你已经成功在CentOS 7上安装了JDK 1.8、Tomcat、MySQL 8、Nginx和Docker。你可以根据需要配置和使用这些服务。请注意,安装和配置这些服务的详细设置取决于你的具体需求。
38 2
|
17天前
|
XML Java 应用服务中间件
Tomcat_servlet部署、编译、配置、打包
Tomcat_servlet部署、编译、配置、打包
21 0
|
1月前
|
运维 Java 应用服务中间件
Tomcat详解(二)——tomcat安装与配置
Tomcat详解(二)——tomcat安装与配置
21 1