«
Tomcat讲解及安装

时间:2022-8-22     作者:李泽信     分类: Tomcat


一、认识Tomcat

二、Tomcat与jdk的关系


解析:
JDK是开发人员开发使用,jre是用来运行java程序,就是java程序的运行环境,jvm是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行;
JDK中包含JRE,在JDK的安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。jdk是java语言编写的,用来给java程序调用的,jvm因为与平台进行交互,是用c/c++和汇编语言编写的;
jdk是java运行和编译的,tomcat是web项目的运行容器,java没有jdk没办法编译运行,java运行必须依赖jdk的环境,所以安装tomcat前必须要安装jdk环境;

注解:
1. Java SE(Java Platform,Standard Edition):Java SE 是做电脑上运行的软件;
2. Java EE(Java Platform,Enterprise Edition):Java EE 是用来做网站的(我们常见的JSP技术);
3. Java ME(Java Platform,Micro Edition):Java ME 是做手机软件的;

三、Tomcat内部工作原理

四、Tomcat配置文件详解


tomcat配置文件

server.xml: Tomcat的主配置文件,包含Service, Connector, Engine, Realm, Valve, Hosts主组件的相关配置信息;
web.xml:遵循Servlet规范标准的配置文件,用于配置servlet,并为所有的Web应用程序提供包括MIME映射等默认配置信息;
tomcat-user.xml:Realm认证时用到的相关角色、用户和密码等信息;Tomcat自带的manager默认情况下会用到此文件;在Tomcat中添加/删除用户,为用户  指定角色等将通过编辑此文件实现;
catalina.policy:Java相关的安全策略配置文件,在系统资源级别上提供访问控制的能力;
catalina.properties:Tomcat内部package的定义及访问相关控制,也包括对通过类装载器装载的内容的控制;Tomcat在启动时会事先读取此文件的相关设置;
logging.properties: Tomcat6通过自己内部实现的JAVA日志记录器来记录操作相关的日志,此文件即为日志记录器相关的配置信息,可以用来定义日志记录的组  件级别以及日志文件的存在位置等;
context.xml:所有host的默认配置信息;



tomcat中支持两种协议的连接器:HTTP/1.1与AJP/1.3
HTTP/1.1协议负责建立HTTP连接,web应用通过浏览器访问tomcat服务器用的就是这个连接器,默认监听的是8080端口;
AJP/1.3协议负责和其他HTTP服务器建立连接,监听的是8009端口,比如tomcat和apache或者iis集成时需要用到这个连接器。

五、Tomcat安装

系统类型 IP 主机名 所需软件
centos7.8 192.168.100.101 localhost apache-tomcat-9.0.10.tar.gz、 jdk-8u171-linux-x64.tar.gz
[root@localhost ~]# tar xf jdk-8u171-linux-x64.tar.gz 
[root@localhost ~]# mv jdk1.8.0_171/ /usr/local/java
[root@localhost ~]# ls /usr/local/java
bin  COPYRIGHT  db  include  javafx-src.zip  jre  lib  LICENSE  man  README.html  release  src.zip  THIRDPARTYLICENSEREADME-JAVAFX.txt  THIRDPARTYLICENSEREADME.txt
[root@localhost ~]# tar xf apache-tomcat-9.0.10.tar.gz 
[root@localhost ~]# mv apache-tomcat-9.0.10 /usr/local/tomcat
[root@localhost ~]# ls /usr/local/tomcat
bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
[root@localhost ~]# vi /usr/local/tomcat/bin/catalina.sh
#!/bin/sh
JAVA_OPTS="-Xms512m -Xmx1024m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=1024m"
export CATALINA_HOME=/usr/local/tomcat
export JRE_HOME=/usr/local/java/jre
export JAVA_HOME=/usr/local/java/jdk1.8.0_171
export TOMCAT_HOME=/usr/local/tomcat
[root@localhost ~]# /usr/local/tomcat/bin/startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@localhost bin]# netstat -utpln |grep 80
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      1617/java           
tcp        0      0 127.0.0.1:8005          0.0.0.0:*               LISTEN      1617/java           
tcp        0      0 0.0.0.0:8009            0.0.0.0:*               LISTEN      1617/java

[root@localhost bin]# mkdir  -p /web/webapp/
[root@localhost bin]#  vi /web/webapp/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
  <head>
     <title>JSP TEST PAGE1 </title>
  </head>
  <body>
     <% out.println("Welcome to test site;http://www.linux1.com");%>
  </body>
</html>
[root@localhost bin]# vi  /usr/local/tomcat/conf/server.xml
 148       <Host name="localhost"  appBase="webapps"
 149             unpackWARs="true" autoDeploy="true">
 150         <Context docBase="/web/webapp" path="" reloadable="false"></Context>

注解:             
unpackWARs="true"                   ##设置自动识别war包
autoDeploy="true"                       ##开启自动部署
Context docBase="/web/webapp"       ##设置项目存放位置
path=""                                 ## tomcat把web应用程序映射为root URI路径reloadable="true"                     ## tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到代码中有class文件被更新的,服务器会自动重新加载Web应用,但是开启会加重服务器负荷,建议设置为false选项为关闭,有可能会出现内存溢出,tomcat服务不正常等异常,建议还是false掉,更新完代码脚本重启tomcat才是王道。;

[root@localhost bin]# /usr/local/tomcat/bin/shutdown.sh
[root@localhost bin]# /usr/local/tomcat/bin/startup.sh