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 对象返回给浏览器端

相关文章
|
5月前
|
存储 Ubuntu 安全
在Ubuntu 16.04上安装openjdk-6/7/8-jdk的步骤
在整个安装过程中,你可能需要管理员权限,因此你可能要使用 `sudo` 来获取必要的权限。记得做完每一个步骤后,都要检查输出,以确保没有发生错误,并且每项操作都成功完成。如果在安装过程中遇到问题,查看 `/var/log/` 下的日志文件对于问题的解决可能是有帮助的。
386 21
|
5月前
|
IDE Ubuntu Java
在Ubuntu18.04安装兼容JDK 8的Eclipse集成开发环境的指南。
完成以上步骤后,您将在Ubuntu 18.04系统上成功安装并配置了Eclipse IDE,它将与JDK 8兼容,可以开始进行Java开发工作。如果遇到任何问题,请确保每一步骤都正确执行,并检查是否所有路径都与您的具体情况相匹配。
260 11
|
4月前
|
Ubuntu Java Android开发
在Ubuntu 18.04上安装与JDK 8兼容的Eclipse版本的步骤。
安装过程结束后,您就可以开始使用Eclipse来开发您的Java项目了,并且确保它与JDK 8兼容无误。这个过程涉及的是一个基本的安装流程,针对使用Java 8的用户,Eclipse的其他配置和插件安装根据个人开发环境和需求来定制。
347 0
|
7月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
537 17
|
7月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
170 18
|
7月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
487 11
安装JDK18没有JRE环境的解决办法
安装JDK18没有JRE环境的解决办法
1312 141
|
7月前
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
421 41
|
8月前
|
Oracle Java 关系型数据库
Tomcat和JDK的详细安装、下载和环境配置指南
以上就是JDK和Tomcat的下载、安装和环境配置的详细步骤。希望这个指南能帮助你顺利完成设置。
570 32
|
9月前
|
Java Linux 应用服务中间件
在Rocky Linux 9上安装JDK并配置环境变量!
本教程介绍在Rocky Linux 9上安装JDK并配置环境变量的完整步骤。首先更新系统,清理旧版本JDK相关包及残留文件,确保环境干净。接着搜索并安装所需版本的JDK(如OpenJDK 17),验证安装是否成功。然后查找JDK安装路径,配置全局环境变量`JAVA_HOME`和`PATH`,最后验证环境变量设置。按照此流程操作,可顺利完成Java开发环境搭建,支持多版本切换(如JDK 8/11/17)。生产环境请谨慎操作,避免影响现有服务。
1500 21