4.1 tomcat基础,4.1tomcat基础
4.1 tomcat基础,4.1tomcat基础
Java基础概念
-
Java与JDK
Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。
Java分为三个体系:
JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)
JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版)
JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)。
2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名以取消其中的数字"2":J2EE更名为Java EE, J2SE更名为Java SE,J2ME更名为Java ME。
JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。Java Runtime Environment(JRE)是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。JVM是Java Virtual Machine(Java虚拟机)的缩写,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序。
JDK(Java Development Kit)
JDK是Java开发工具包,是Sun Microsystems针对Java开发员的产品。JDK中包含JRE,在JDK的安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。
JDK是整个JAVA的核心,包括了Java运行环境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。
Java Runtime Environment(JRE)
是运行基于Java语言编写的程序所不可缺少的运行环境。也是通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。JRE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,这些是运行Java程序的必要组件。
与大家熟知的JDK不同,JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器),只是针对于使用Java程序的用户。
JVM(java virtual machine)
就是我们常说的Java虚拟机,它是整个java实现跨平台的最核心的部分,所有的Java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。
只有JVM还不能成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib,而jre包含lib类库。
JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
-
jsp和servlet
JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
普通的 HTML 通信流程
因为 JSP 包含了 java 程序代码段,因此 JSP 在 web server 里面就要有个更多的处理步骤
web服务器习惯处理静态页面,所以需要一个程序来帮忙处理动态请求(如当前时间)。Web服务器程序会将动态请求转发给帮助程序,帮助程序处理后,返回处理后的静态结果给web服务器程序。这样就避免了web服务器程序处理动态页面。Servlet的本质是一个帮助程序。
tomcat基础概念
Tomcat 是由 Apache 开发的一个 Servlet 容器,实现了对 Servlet 和 JSP 的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。
由于 Tomcat 本身也内含了一个 HTTP 服务器,它也可以被视作一个单独的 Web 服务器。但是,不能将 Tomcat 和 Apache HTTP 服务器混淆,Apache HTTP 服务器是一个用 C 语言实现的 HTTP Web 服务器;这两个 HTTP web server 不是捆绑在一起的。Tomcat 包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。
-
tomcat结构
由于 tomcat 是由 Java 语言编写,所以它高度模块化,通过各个组件实现各种功能。
其中, Tomcat主要组件有:服务器 Server,服务 Service,连接器 Connector、容器 Container。连接器 Connector 和容器 Container 是 Tomcat 的核心。
一个 Container 和一个或多个 Connector 组合在一起,加上其他一些支持的组件共同组成一个Service服务,有了Service服务便可以对外提供能力了,但是Service服务的生存需要一个环境,这个环境便是 Server,Server 组件为 Service 服务的正常使用提供了生存环境, Server 组件可以同时管理一个或多个 Service 服务。
server是顶级类,一个server算是一个tomcat实例,在此层次中可定义tomcat服务的监听端口。
service是server下的子组件,用于封装绑定connector和containor,并为它们提供一个名称属性。有了service就可以提供相关的服务,如监听TCP连接请求、处理http请求。注意server是管理整个tomcat实例的层次,它和提供服务没有关系。
connector是连接器,定义http协议(默认)以及该协议的监听端口。连接器用于接收客户端请求并将containor处理的数据返回给客户端。
containor称为容器,它和connector进行绑定。该容器内有4个子容器,包括:engine容器、host容器、context容器、Wrapper容器。容器用于分析、处理请求,并构建响应给connector以发送给客户端。
engine容器定义servlet引擎,用于定义引擎的名称、默认的虚拟主机。引擎用于分析http请求并将请求转发给对应的虚拟主机。
host容器用于定义虚拟主机。
context容器用于定义webapp,一个context定义一个webapp。它是真正管理servlet容器的层次。
wrapper容器对应的是真正的servlet容器,一个wrapper代表一个servlet,它负责管理一个Servlet,包括的Servlet的装载、初始化、执行以及资源回收。Wrapper是最底层的容器,一个context只能包含一个wrapper。在配置文件中,无法配置该容器的属性。
-
tomcat环境搭建与安装
安装JDK
1、在 oracle 官网中下载需要的 JDK 安装包 JDL下载地址
[root@CentOS74 ~]# ll jdk-10.0.2_linux-x64_bin.rpm
-rw-r--r-- 1 root root 320862420 Jul 18 10:52 jdk-10.0.2_linux-x64_bin.rpm
2、使用 rpm 命令安装 JDK
[root@CentOS74 ~]# rpm -ivh jdk-10.0.2_linux-x64_bin.rpm
Preparing... ################################# [100%]
Updating / installing...
1:jdk-10.0.2-2000:10.0.2-ga ################################# [100%]
Unpacking JAR files...
plugin.jar...
javaws.jar...
...
...
查看 /usr/java/ 目录
[root@CentOS74 ~]# ll /usr/java/
total 0
lrwxrwxrwx 1 root root 16 Jul 18 10:57 default -> /usr/java/latest #默认链接至最新版本
drwxr-xr-x 9 root root 128 Jul 18 10:57 jdk-10.0.2 #JDK程序所在目录
lrwxrwxrwx 1 root root 20 Jul 18 10:57 latest -> /usr/java/jdk-10.0.2 #最新版本链接至JDK目录
3、修改 PATH 变量,添加 JAVA_HOME 变量
export JAVA_HOME=/usr/java/latest/
export PATH=$JAVA_HOME/bin:$PATH
安装tomcat
1、在 apache 官网下载需要的 tomcat 程序 tomcat 官方站点
[root@CentOS74 ~]# ll -h apache-tomcat-8.0.53.tar.gz
-rw-r--r-- 1 root root 9.1M Jul 18 10:57 apache-tomcat-8.0.53.tar.gz
2、解压至任意目录下,为了方便管理,我解压在了 /usr/local/ 目录下,并创建软连接 tomcat 至程序目录
[root@CentOS74 ~]# tar xf apache-tomcat-8.0.53.tar.gz -C /usr/local/
[root@CentOS74 ~]# ln -s /usr/local/apache-tomcat-8.0.53/ /usr/local/tomcat
3、创建系统用户 tomcat,并修改特定文件的权限
[root@CentOS74 ~]# cd /usr/local/tomcat/ #进入tomcat软件所在的目录中
[root@CentOS74 tomcat]# useradd -r tomcat #创建一个系统用户tomcat
[root@CentOS74 tomcat]# chown -R tomcat logs/ temp/ work/ #将特定目录及其中的文件的所有者改为tomcat
[root@CentOS74 tomcat]# chgrp -R tomcat * #将软件所有文件的所属组改为tomcat
[root@CentOS74 tomcat]# ll
total 92
drwxr-xr-x 2 root tomcat 4096 Jul 18 11:07 bin
drwxr-xr-x 2 root tomcat 182 Jun 29 22:44 conf
drwxr-xr-x 2 root tomcat 4096 Jul 18 11:07 lib
-rw-r--r-- 1 root tomcat 57011 Jun 29 22:44 LICENSE
drwxr-xr-x 2 tomcat tomcat 6 Jun 29 22:42 logs
-rw-r--r-- 1 root tomcat 1446 Jun 29 22:44 NOTICE
-rw-r--r-- 1 root tomcat 6794 Jun 29 22:44 RELEASE-NOTES
-rw-r--r-- 1 root tomcat 16258 Jun 29 22:44 RUNNING.txt
drwxr-xr-x 2 tomcat tomcat 30 Jul 18 11:07 temp
drwxr-xr-x 7 root tomcat 81 Jun 29 22:44 webapps
drwxr-xr-x 2 tomcat tomcat 6 Jun 29 22:42 work
[root@CentOS74 tomcat]# cd conf/
[root@CentOS74 conf]# chmod 640 * #赋予tomcat组对conf目录的执行权限及目录中配置文件的读权限
[root@CentOS74 conf]# ll
total 216
-rw-r----- 1 root tomcat 13852 Jun 29 22:44 catalina.policy
-rw-r----- 1 root tomcat 7499 Jun 29 22:44 catalina.properties
-rw-r----- 1 root tomcat 1577 Jun 29 22:44 context.xml
-rw-r----- 1 root tomcat 3387 Jun 29 22:44 logging.properties
-rw-r----- 1 root tomcat 6458 Jun 29 22:44 server.xml
-rw-r----- 1 root tomcat 2164 Jun 29 22:44 tomcat-users.xml
-rw-r----- 1 root tomcat 2634 Jun 29 22:44 tomcat-users.xsd
-rw-r----- 1 root tomcat 169566 Jun 29 22:44 web.xml
4、修改 PATH 变量,添加 CATALINA_BASE 变量
export CATALINA_BASE=/usr/local/tomcat/
export PATH=$CATALINA_BASE/bin:$PATH
执行 tomcat 软件中 bin/ 下的 catalina.sh 脚本启动 tomcat 服务
[root@CentOS74 bin]# catalina.sh --help #查看catalina.sh的执行选项和帮助
Using CATALINA_BASE: /usr/local/tomcat/
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat//temp
Using JRE_HOME: /usr/java/latest/
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat//bin/tomcat-juli.jar
Usage: catalina.sh ( commands ... )
commands:
debug Start Catalina in a debugger #调试模式启动
debug -security Debug Catalina with a security manager
jpda start Start Catalina under JPDA debugger
run Start Catalina in the current window #运行tomcat
run -security Start in the current window with security manager #-security使用/usr/local/tomcat/conf/catalina.policy中定义的安全策略
start Start Catalina in a separate window #启动tomcat
start -security Start in a separate window with security manager
stop Stop Catalina, waiting up to 5 seconds for the process to end #5秒以后关闭tomcat
stop n Stop Catalina, waiting up to n seconds for the process to end #指定秒数以后关闭tomcat
stop -force Stop Catalina, wait up to 5 seconds and then use kill -KILL if still running #强制关闭
stop n -force Stop Catalina, wait up to n seconds and then use kill -KILL if still running
configtest Run a basic syntax check on server.xml - check exit code for result #配置文件愈发检查
version What version of tomcat are you running? #当前tomcat运行环境及其版本
Note: Waiting for the process to end and use of the -force option require that $CATALINA_PID is defined
[root@CentOS74 bin]# catalina.sh start #使用start参数,启动tomcat服务
Using CATALINA_BASE: /usr/local/tomcat/
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat//temp
Using JRE_HOME: /usr/java/latest/
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat//bin/tomcat-juli.jar
Tomcat started.
[root@CentOS74 bin]# ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 100 :::8080 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
LISTEN 0 1 ::ffff:127.0.0.1:8005 :::*
LISTEN 0 100 :::8009 :::*
尝试访问 tomcat 服务器
通过yum仓库安装JDK与tomcat
通过查看 apache 官网了解 tomcat 软件版本与 JDK 版本之间的关系,并结合将要在服务器上运行的 jsp 来确定安装的版本。
[root@CentOS174 ~]# yum install java-1.8.0-openjdk.x86_64 #安装指定版本的OpenJDK
[root@CentOS174 ~]# yum install tomcat tomcat-webapps tomcat-admin-webapps tomcat-docs-webapp #安装tomcat及其相关工具包
-
tomcat软件内容
以由 apache 官方网站下载并展开的 tomcat 软件为例(通过 yum 仓库安装的 tomcat 同样有相同的内容,可以使用 rpm -ql tomcat 查看)
[root@CentOS74 tomcat]# ll
total 92
drwxr-xr-x 2 root tomcat 4096 Jul 18 11:07 bin #主程序目录
drwxr-xr-x 3 root tomcat 198 Jul 18 12:12 conf #配置文件目录
drwxr-xr-x 2 root tomcat 4096 Jul 18 11:07 lib #tomcat类库
-rw-r--r-- 1 root tomcat 57011 Jun 29 22:44 LICENSE
drwxr-xr-x 2 tomcat tomcat 197 Jul 18 12:12 logs #日志文件目录
-rw-r--r-- 1 root tomcat 1446 Jun 29 22:44 NOTICE
-rw-r--r-- 1 root tomcat 6794 Jun 29 22:44 RELEASE-NOTES
-rw-r--r-- 1 root tomcat 16258 Jun 29 22:44 RUNNING.txt
drwxr-xr-x 2 tomcat tomcat 30 Jul 18 11:07 temp #临时文件目录
drwxr-xr-x 7 root tomcat 81 Jun 29 22:44 webapps #web应用程序根目录
drwxr-xr-x 3 tomcat tomcat 22 Jul 18 12:12 work #jsp编译后文件存放目录
查看 webapps 目录
[root@CentOS74 tomcat]#⮀⮀ll webapps/
total 4
drwxr-xr-x 14 root tomcat 4096 Jul 18 11:07 docs
drwxr-xr-x 6 root tomcat 83 Jul 18 11:07 examples
drwxr-xr-x 5 root tomcat 87 Jul 18 11:07 host-manager
drwxr-xr-x 5 root tomcat 103 Jul 18 11:07 manager
drwxr-xr-x 3 root tomcat 306 Jul 18 11:07 ROOT #主站点存放目录
相关文章
- 暂无相关文章
用户点评