zoukankan      html  css  js  c++  java
  • tomcat安装

     Tomcat简介

    Tomcat最初是由Sun公司架构师James Duncan Davidson开发,名为"JavaWebServer",作为Servlet容器的参考实现。1999年,该项目与Apache软件基金会下的JServ项目合并,就是现在的Tomcat。

    Tomcat项目发展至今,已经是一款成熟的Servlet容器,并且作为JBoss等应用服务器产品内嵌的Servlet容器。

    Tomcat各个版本的要求

    版本(更新) 6.x(6.0.47) 7.x(7.0.72) 8.x(8.0.38) 8.x(8.5.6) 9.x(9.0.0.M11)
    Servlet 2.5 3.0 3.1 3.1 4.0
    JDK ≥5.0 ≥6.0 ≥7.0 ≥7.0 ≥8.0
    JSP 2.1 2.2 2.3 2.3 2.3
    EL 2.1 2.2 3.0 3.0 3.0
    WebSocket N/A 1.1 1.1 1.1 1.1

    Tomcat新特性

    8.0版本以后,默认的HTTP、AJP链接器为NIO(Tomcat 7之前的版本使用BIO),8.5版本以后移除了BIO。

    8.0版本以后,链接器新增支持 JDK 7 的NIO2和HTTP/2协议。

    默认采用了异步日志处理

    Tomcat安装过程

    获取安装包

    下载地址:https://tomcat.apache.org/download-80.cgi

    历史版本可以从如下链接获取:https://archive.apache.org/dist/tomcat/tomcat-8/安装版本/bin

    这里安装8.5.6版本,该版本是中间版本,是为了弃用8.0并且兼容9.0的新特性

    安装jdk

    $ mkdir packages
    $ mkdir softwares
    
    [test@localhost packages]$ ll
    total 206636
    -rw-r--r--. 1 test test   9304958 Jun  1  2021 apache-tomcat-8.5.6.tar.gz
    -rw-r--r--. 1 test test 191753373 Dec 16  2018 jdk-8u191-linux-x64.tar.gz
    
    
    $ tar xfz jdk-8u191-linux-x64.tar.gz -C ../softwares/
    
    ## 修改环境变量
    
    $ sed -i.ori '$a export JAVA_HOME=/home/test/softwares/jdk1.8.0_191
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
    export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar' ~/.bash_profile
    
    $ . ~/.bash_profile
    
    ## 验证
    $ java -version
    java version "1.8.0_191"
    Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
    Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

    安装tomcat

    $ tar xfz apache-tomcat-8.5.6.tar.gz -C ../softwares/
    
    ## 修改环境变量
    $ sed -ri.bak -e '/JAVA_HOME=/a export $CATALINA_HOME=/home/test/softwares/apache-tomcat-8.5.6' -e '/export PATH=/s@(.*)@1:$CATALINA_HOME/bin@' ~/.bash_profile
    
    $ . ~/.bash_profile

     启动tomcat

    1、使用自带的脚本启动

    $ $CATALINA_HOME/bin/startup.sh

    2、Debug启动

    该方式主要依赖于JDK提供的JPDA(Java Platform Debugger Architecture,Java平台调试体系结构)。用于生成环境部署的应用调试,解决在开发环境无法复现的BUG

    $ catalina.sh jpda start

    启动后,会在日志中输出如下信息:

    Listening for transport dt_socket at address: 8000

    3、通过unit单元文件(systemctl)管理

    [root@tomcat ~]# vim /usr/lib/systemd/system/tomcat.service 
    [unit]
    Description=Tomcat server
    After=syslog.target network.target
    [Service]
    Type=forking          ##用notify会卡住
    User=test
    Group=test
    PIDFile=/home/test/softwares/apache-tomcat-8.5.6/tomcat.pid
    Environment="JAVA_HOME=/home/test/softwares/jdk1.8.0_191"
    ExecStart=/home/test/softwares/apache-tomcat-8.5.6/bin/startup.sh
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s QUIT $MAINPID
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target

    注意:这是普通用户,要配置sudo权限的

    tomcat目录结构

    文件名 说明
    bin 提供各平台Tomcat启停的脚本
    bin/{shutdown.bat,
    shutdown.sh}
    windows和Linux下的停止脚本
    bin/{startup.bat,
    startup.sh}
    windows和Linux下的启动脚本
    conf 存放Tomcat配置文件
    conf/Catalina 存放每个虚拟机的Context配置
    conf/context.xml 定义所有Web应用需要加载的Context配置,如果Web应用中指定了context.xml
    ,那么该文件的配置将被覆盖
    conf/catalina.properties Tomcat环境变量配置
    conf/catalina.policy 处于安全模式下运行的Tomcat,此文件为默认的安全策略配置文件
    conf/logging.properties Tomcat日志配置文件,用于定义Tomcat日志级别和日志路径
    conf/server.xml Tomcat核心配置文件
    conf/tomcat-user.xml 定义Tomcat默认用户及角色映射信息,
    Tomcat的Manager模块应用该文件中定义的用户进行安全认证
    conf/web.xml Tomcat所有应用默认的部署描述文件,定义了基础Servlet和MIME映射,
    lib Tomcat运行环境依赖的jar包
    logs Tomcat默认的日志路径
    webapps Tomcat默认的Web应用部署目录
    work

    Web应用JSP代码生成和编译临时目录

    .jsp文件在Tomact加载的工作原理:

    当浏览器访问某个jsp页面时,tomcat会在work目录里把这个jsp页面转成.java文件,比如将index.jsp转换成index_jsp.java文件,
    而后编译为index_jsp.class文件,最后tomcat容器通过ClassLoader类把这个index_jsp.class类装载入内存,进行响应客户端的工作。 tomcat会定时扫描容器内的jsp文件,读取每个文件的属性。
    当发现某个jsp文件发生改变时(文件的最后修改时间与上次扫描时不相同时),tomcat会重新转换、编译这个jsp文件。但是tomcat的扫描是定时的不是实时的,这也正是为什么jsp文件修改后需要几分钟的时间来等修改过的jsp生效。 当然为了即刻生效,建议在修改jsp页面后立即清除work目录里的文件。
  • 相关阅读:
    【洛谷P1005】矩阵取数游戏
    【洛谷P1966】火柴排队
    【题解】洛谷P1731 [NOI1999] 生日蛋糕(搜索+剪枝)
    【题解】洛谷P3627 [APIO2009]抢掠计划(缩点+SPFA)
    【题解】洛谷P1262 间谍网络 (强连通分量缩点)
    【题解】洛谷P3200 [HNOI2009] 有趣的数列(卡特兰数+质因数分解)
    点双连通分量 [HNOI2012]矿场搭建
    分块 公主的朋友
    [置顶] 数学的坑,一点点来填
    大暴搜 [NOIP2009]靶形数独
  • 原文地址:https://www.cnblogs.com/zh-dream/p/13511041.html
Copyright © 2011-2022 走看看