Tomcat

Tomcat


Java体系

Java 平台有三个版本,这使软件开发人员、服务提供商和设备生产商可以针对特定的市场进行开发:

01

Java SE(Java Platform,Standard Edition)

Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。

Java EE(Java Platform,Enterprise Edition)

这个版本以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。

Java ME(Java Platform,Micro Edition)

这个版本以前称为 J2ME。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。


Java技术体系的优点

  • 拥有一门结构严谨、面向对象的编程语言
  • 跨平台(摆脱硬件平台的约束) ----“Write once,Run anywhere”主8要由字节码支持。因为Java源代码默认编译结果为平台通用的字节码。
  • 安全性优越 ---提供了一种相对安全的内存管理和访问机制,避免了绝大部分的内存泄露和指针越界问题
  • 多线程
  • 分布式
  • 完善的应用程序接口
  • 大量的第三方类库

Java技术体系所包含的内容

02

JDK与JRE的关系:

JDK:支持Java程序开发的最小环境。JDK = Java程序设计语言 + Java虚拟机 + Java API类库。

JRE:支持Java程序运行的标准环境。JRE = Java虚拟机 +Java API类库中的Java SE API子集 。


运行jsp的web容器

jsp技术将java代码嵌入html文件中,建立了一种动态网页的编写标准,它的技术基础是serverlet技术,当用户请求一个jsp文件时,jsp会将代码转换成serverlet(即标准的java代码),java代码再交由低层的jdk执行。常见的容器有websphere,weblogic,tomcat。


中间件

中间件(英语:Middleware),又译中间件、中介层,是一类提供系统软件和应用软件之间连接、便于软件各部件之间的沟通的软件,应用软件可以借助中间件在不同的技术架构之间共享信息与资源。中间件位于客户机服务器的操作系统之上,管理着计算资源和网络通信。

中间件的好处

中间件能给客户带来什么?为上层应用软件的开发提供便捷的、开箱即用的服务交互和计算的能力,缩短开发周期;屏蔽底层runtime的差异;节省应用本身的系统资源,减少运行成本。

常用基础中间件

  • 路由与web服务器:处理和转发其他服务器通信数据的服务器。 如被业界广泛使用的阿里基于 Nginx 研发的 Tengine、阿里内部的集中式路由服务 VipServer

  • RPC框架:微服务时代的远程服务调用框架。如grpc, Thrift, 阿里的 HSF, Dubbo, SOFA-RPC

  • 消息中间件:支持在分布式系统之间发送和接收消息的软件。 如 Apache kafka, Apache RabbitMQ, NSQ, 阿里孵化开源的 Apache RocketMQ

  • 缓存服务: 分布式的高速数据存储层,一般是内存存储。如 阿里 Tair,业界的 Redis, Memcached, Ehcache

  • 配置中心:用来统一管理各个项目中所有配置的系统。如 阿里 Nacos、携程 Apollo、百度 Disconf

  • 分布式事务:事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。 如 阿里 seata、腾讯 DTF

  • 任务调度:分布式环境下提供定时、任务编排、分布式跑批等功能的系统。如 阿里 SchedulerX、业界 xxl-job、当当 elastic-job、有赞 TSP

  • 数据库层 用于支持弹性扩容和分库分表的 TDDL,数据库连接池 Driud, Binlog 同步的 Canal 等。


Tomcat简介

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP 程序的首选。

Tomcat就是传说中的中间件之一,Tomcat本身是一个容器,专门用来运行Java程序,Java语言开发的网页.jsp就应该运行于tomcat中。而tomcat本身的运行也依赖于jdk环境。


Tomcat结构图

10

Tomcat主要组件:服务器Server,服务Service,连接器Connector、容器Container。

连接器Connector和容器Container是Tomcat的核心。一个Container容器和一个或多个Connector组合在一起,加上其他一些支持的组件共同组成一个Service服务,有了Service服务便可以对外提供能力了,但是Service服务的生存需要一个环境,这个环境便是服务器Server,Server组件为Service服务的正常使用提供了生存环境,Server组件可以同时管理一个或多个Service服务。


Tomcat项目部署

Java环境安装

//安装jdk环境
[root@tomcat ~]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel

//查看安装的版本
[root@tomcat ~]# java -version
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)

Tomcat部署

//下载tomcat
[root@tomcat ~]# cd /usr/src/
[root@tomcat src]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-10/v10.0.6/bin/apache-tomcat-10.0.6.tar.gz

//解压部署
[root@tomcat src]# ls
apache-tomcat-10.0.6.tar.gz  debug  kernels
[root@tomcat src]# tar xf apache-tomcat-10.0.6.tar.gz -C /usr/local/
[root@tomcat src]# cd /usr/local/
[root@tomcat local]# ln -s apache-tomcat-10.0.6/ tomcat
[root@tomcat local]# ll
total 0
drwxr-xr-x. 9 root root 220 May 13 15:49 apache-tomcat-10.0.6
drwxr-xr-x. 2 root root   6 Aug 12  2018 bin
drwxr-xr-x. 2 root root   6 Aug 12  2018 etc
drwxr-xr-x. 2 root root   6 Aug 12  2018 games
drwxr-xr-x. 2 root root   6 Aug 12  2018 include
drwxr-xr-x. 2 root root   6 Aug 12  2018 lib
drwxr-xr-x. 2 root root   6 Aug 12  2018 lib64
drwxr-xr-x. 2 root root   6 Aug 12  2018 libexec
drwxr-xr-x. 2 root root   6 Aug 12  2018 sbin
drwxr-xr-x. 5 root root  49 Dec 30 15:15 share
drwxr-xr-x. 2 root root   6 Aug 12  2018 src
lrwxrwxrwx. 1 root root  21 May 13 15:49 tomcat -> apache-tomcat-10.0.6/

//写一个hello world的java页面
[root@tomcat ~]# mkdir /usr/local/tomcat/webapps/test
[root@tomcat ~]# vim /usr/local/tomcat/webapps/test/index.jsp
<html>
<head>
        <title>test page</title>
</head>
<body>
        <%
            out.println("Hellow World");
        %>
</body>
</html>

//关闭防火墙
[root@tomcat ~]# systemctl disable --now firewalld
[root@tomcat ~]# sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/sysconfig/selinux
[root@tomcat ~]# setenforce 0

//启动tomcat
[root@tomcat ~]# /usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@tomcat ~]# ss -antl
State     Recv-Q    Send-Q            Local Address:Port       Peer Address:Port    
LISTEN    0         128                     0.0.0.0:22              0.0.0.0:*       
LISTEN    0         100                           *:8080                  *:*       
LISTEN    0         128                        [::]:22                 [::]:*       
LISTEN    0         1            [::ffff:127.0.0.1]:8005                  *:*       

访问页面

1

访问测试页面

2


访问Host Manager页面

3

#Host Manager
//修改配置文件
[root@tomcat ~]# vim /usr/local/tomcat/conf/tomcat-users.xml
#在最后面添加以下内容
······
<role rolename="admin-gui"/>
<user username="tomcat" password="s3cret" roles="admin-gui"/>
</tomcat-users>

[root@tomcat ~]# vim /usr/local/tomcat/webapps/host-manager/META-INF/context.xml
······
         #添加网段或主机
         allow="192\.168\.100\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
······

//重启tomcat
[root@tomcat ~]# /usr/local/tomcat/bin/catalina.sh stop
[root@tomcat ~]# /usr/local/tomcat/bin/catalina.sh start

重新访问 http://192.168.100.1:8080/host-manager/html

用户名:tomcat

密码:s3cret

4

访问成功

5


访问Server Status和Manager App页面

6

#Server Status
#Manager App
//修改配置文件
[root@tomcat ~]# vim /usr/local/tomcat/conf/tomcat-users.xml
#在最后面添加以下内容
······
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="tomcat" password="s3cret" roles="admin-gui,manager-gui"/>
</tomcat-users>

[root@tomcat ~]# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
······
         #添加网段或主机
         allow="192\.168\.100\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
······

//重启tomcat
[root@tomcat ~]# /usr/local/tomcat/bin/catalina.sh stop
[root@tomcat ~]# /usr/local/tomcat/bin/catalina.sh start

重新访问 http://192.168.100.1:8080/manager/status

用户名:tomcat

密码:s3cret

7

访问成功

8

此时Manager App页面也可以访问

http://192.168.100.1:8080/manager/html

9

posted @ 2021-05-13 17:51  Serein)  阅读(133)  评论(0编辑  收藏  举报