tomcat

Posted 吻如雪上霜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tomcat相关的知识,希望对你有一定的参考价值。

1. 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 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应html(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为9.0。

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

  • tomcat应用场景:lnmt

java体系

  • Java编程语言
  • Java类文件:java类文件为java编译后的文件
  • JavaAPI:java类文件库
  • JavaVM(JVM)
    • class loader:编译和类库文件加载器
    • 执行引擎

JRE(Java Runtime Enviroment):

是Java的运行环境。面向Java程序的使用者,而不是开发者。如果你仅下载并安装了JRE,那么你的系统只能运行Java程序。JRE是运行Java程序所必须环境的集合,包含JVM标准实现及 Java核心类库。它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具(编译器、调试器等)。

JDK(Java Development Kit):

又称J2SDK(Java2 Software Development Kit),是Java开发工具包,它提供了Java的开发环境(提供了编译器javac等工具,用于将java文件编译为class文件)和运行环境(提 供了JVM和Runtime辅助包,用于解析class文件使其得到运行)。如果你下载并安装了JDK,那么你不仅可以开发Java程序,也同时拥有了运 行Java程序的平台。JDK是整个Java的核心,包括了Java运行环境(JRE),一堆Java工具tools.jar和Java标准类库 (rt.jar)。

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

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

tomcat项目部署

//关闭防火墙与selinux0
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0

java环境安装

//安装jdk环境
[root@localhost ~]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
.....安装过程略

//查看安装的版本
[root@localhost ~]# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
//下载tomcat并安装
[root@localhost ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-10/v10.0.6/bin/apache-tomcat-10.0.6.tar.gz

[root@localhost ~]# cd /usr/src/
[root@localhost src]# ls
apache-tomcat-10.0.6.tar.gz  debug  kernels
[root@localhost src]# tar xf apache-tomcat-10.0.6.tar.gz
[root@localhost src]# ls
apache-tomcat-10.0.6  apache-tomcat-10.0.6.tar.gz  debug  kernels
[root@localhost src]# cd apache-tomcat-10.0.6
[root@localhost apache-tomcat-10.0.6]# pwd
/usr/src/apache-tomcat-10.0.6
[root@localhost apache-tomcat-10.0.6]# ls
bin           conf             lib      logs    README.md      RUNNING.txt  webapps
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  RELEASE-NOTES  temp         work
[root@localhost apache-tomcat-10.0.6]# bin/startup.sh
Using CATALINA_BASE:   /usr/src/apache-tomcat-10.0.6
Using CATALINA_HOME:   /usr/src/apache-tomcat-10.0.6
Using CATALINA_TMPDIR: /usr/src/apache-tomcat-10.0.6/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/src/apache-tomcat-10.0.6/bin/bootstrap.jar:/usr/src/apache-tomcat-10.0.6/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@localhost apache-tomcat-10.0.6]# 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                           

image

//创建一个hello world的java项目网页和目录
[root@localhost apache-tomcat-10.0.6]# cd webapps/
[root@localhost webapps]# mkdir test 
[root@localhost webapps]# vim test/index.jsp 
<html>
<head>
        <title>test page</title>
</head>
<body>
        <%
            out.println("Hello World");
        %>
</body>
</html>

//重启服务
[root@localhost webapps]# cd
[root@localhost ~]# ./apache-tomcat-10.0.6/bin/catalina.sh stop
[root@localhost ~]# ./apache-tomcat-10.0.6/bin/catalina.sh start

image

//目录内容与配置文件
[root@localhost apache-tomcat-10.0.6]# ll bin/
...
catalina.sh    #tomcat服务控制
configtest.sh    #配置文件测试
daemon.sh #守护进程
[root@localhost apache-tomcat-10.0.6]# ll
total 132
localhostwxr-x--- 2 root root  4096 May 13 10:48 bin #二进程命令存放
-rw-r----- 1 root root 18975 May  8 23:24 BUILDING.txt
localhostwx------ 3 root root   254 May 13 11:49 conf    #配置文件
-rw-r----- 1 root root  5644 May  8 23:24 CONTRIBUTING.md
localhostwxr-x--- 2 root root  4096 May 13 10:37 lib #库文件存放
-rw-r----- 1 root root 60269 May  8 23:24 LICENSE
localhostwxr-x--- 2 root root   132 May 13 11:06 logs    #日志存放
-rw-r----- 1 root root  2333 May  8 23:24 NOTICE
-rw-r----- 1 root root  3372 May  8 23:24 README.md
-rw-r----- 1 root root  6904 May  8 23:24 RELEASE-NOTES
-rw-r----- 1 root root 16517 May  8 23:24 RUNNING.txt
localhostwxr-x--- 2 root root    30 May 13 10:37 temp
localhostwxr-x--- 7 root root    81 May  8 23:24 webapps #项目存放位置
localhostwxr-x--- 3 root root    22 May 13 11:06 work

[root@localhost apache-tomcat-10.0.6]# vim conf/server.xml 
...//控制端口协议
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
//AJP协议控制
    -->

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <!--
    <Connector protocol="AJP/1.3"
               adlocalhostess="::1"
               port="8009"
               redirectPort="8443" />
    -->

//图形化管理界面配置
[root@localhost apache-tomcat-10.0.6]# vim conf/tomcat-users.xml 
...
<role rolename="manager-eula"/> #添加角色
<user username="tomcat" password="123456" roles="manager-eula"/> #添加用户密码
</tomcat-users>

//添加允许访问ip段
[root@localhost apache-tomcat-10.0.6]# vim webapps/host-manager/META-INF/context.xml 
...
  <Valve className="org.apache.catalina.valves.RemoteAdlocalhostValve"
         allow="192\\.168\\.23\\.\\d+|127\\.\\d+\\.\\d+\\.\\d+|::1|0:0:0:0:0:0:0:1" />  #放行192.168.23整个网段

tomcat启动和关闭的方式都可以用目录里的脚本进行操作

//其中shutdown.sh、startup.sh、catalina.sh这三个脚本用来控制启动,关闭tomcat的
[root@localhost bin]# ls
bootstrap.jar       commons-daemon.jar            digest.sh         setclasspath.sh  tomcat-native.tar.gz
catalina.bat        commons-daemon-native.tar.gz  makebase.bat      shutdown.bat     tool-wrapper.bat
catalina.sh         configtest.bat                makebase.sh       shutdown.sh      tool-wrapper.sh
catalina-tasks.xml  configtest.sh                 migrate.bat       startup.bat      version.bat
ciphers.bat         daemon.sh                     migrate.sh        startup.sh       version.sh
ciphers.sh          digest.bat                    setclasspath.bat  tomcat-juli.jar
//具体操作如下

[root@localhost apache-tomcat-10.0.6]# bin/catalina.sh stop
Using CATALINA_BASE:   /usr/src/apache-tomcat-10.0.6
Using CATALINA_HOME:   /usr/src/apache-tomcat-10.0.6
Using CATALINA_TMPDIR: /usr/src/apache-tomcat-10.0.6/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/src/apache-tomcat-10.0.6/bin/bootstrap.jar:/usr/src/apache-tomcat-10.0.6/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
[root@localhost apache-tomcat-10.0.6]# 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             128                            [::]:22                         [::]:*          
[root@localhost apache-tomcat-10.0.6]# bin/catalina.sh start
Using CATALINA_BASE:   /usr/src/apache-tomcat-10.0.6
Using CATALINA_HOME:   /usr/src/apache-tomcat-10.0.6
Using CATALINA_TMPDIR: /usr/src/apache-tomcat-10.0.6/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/src/apache-tomcat-10.0.6/bin/bootstrap.jar:/usr/src/apache-tomcat-10.0.6/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@localhost apache-tomcat-10.0.6]# 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            128                               [::]:22                       [::]:*          
LISTEN      0            1                   [::ffff:127.0.0.1]:8005                        *:*          
LISTEN      0            100                                  *:8080                        *:*  

//你也可以使用shutdown.sh、 startup.sh

[root@localhost apache-tomcat-10.0.6]# bin/shutdown.sh 
Using CATALINA_BASE:   /usr/src/apache-tomcat-10.0.6
Using CATALINA_HOME:   /usr/src/apache-tomcat-10.0.6
Using CATALINA_TMPDIR: /usr/src/apache-tomcat-10.0.6/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/src/apache-tomcat-10.0.6/bin/bootstrap.jar:/usr/src/apache-tomcat-10.0.6/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
[root@localhost apache-tomcat-10.0.6]# 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             128                            [::]:22                         [::]:*          
[root@localhost apache-tomcat-10.0.6]# bin/startup.sh 
Using CATALINA_BASE:   /usr/src/apache-tomcat-10.0.6
Using CATALINA_HOME:   /usr/src/apache-tomcat-10.0.6
Using CATALINA_TMPDIR: /usr/src/apache-tomcat-10.0.6/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/src/apache-tomcat-10.0.6/bin/bootstrap.jar:/usr/src/apache-tomcat-10.0.6/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@localhost apache-tomcat-10.0.6]# 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            128                               [::]:22                       [::]:*          
LISTEN      0            1                   [::ffff:127.0.0.1]:8005                        *:*          
LISTEN      0            100                                  *:8080                        *:* 
  • 点击Host Manager
    image

  • 输入刚才配置的用户名与密码
    image

  • 现在可以进入管理界面
    image

以上是关于tomcat的主要内容,如果未能解决你的问题,请参考以下文章

jsp页面被tomcat引擎运行的时候组装成java片段,但是这些java片段怎么没有main方法作为程序的入口啊?

Tomcat根据JSP生成Servlet机制解析

tomcat:部署:“无法调用 Tomcat 管理器:连接被拒绝”

Tomcat配置和数据源配置

012在Tomcat下如何手动部署Web应用

找到多个名为 [spring_web] 的片段。这对于相对排序是不合法的