zoukankan      html  css  js  c++  java
  • tomcat

    tomcat

    tomcat介绍

      Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由java语言编写,需要运行在jvm虚拟机中。之所以Java的应用领域非常广泛,就是因为有JVM虚拟机的存在,如何操作系统或内核上只要运行了JVM虚拟机,那么就能够运行Java程序。Tomcat中提供了servlet、jsp代码所需的类库

      JVM由C语言开发实现,既为Java程序提供运行环境,也提供诸多类库

      Java技术的方向:J2SE、J2EE(在J2SE基础上添加了企业级组件)

      servlet在JVM之上实现了CGI协议,扩展了JDK,因此能够通过CGI协议响应用户的请求,servlet是服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的HTML页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机

    jsp风格的代码使得Java程序可以嵌入到HTML页面中

    http://www.cnblogs.com/zhouyuqin/p/5143121.html

      Java的JDK有两种,一是openJDK,另外一个是oracleJDK

    tomcat原理及作用

    web容器的作用

      servlet(小程序)没有main方法,那我们如何启动一个servlet,如何结束一个servlet,如何寻找一个servlet等等,都受控于另一个java应用,这个应用我们就称之为web容器。

      我们最常见的tomcat就是这样一个容器。如果web服务器应用得到一个指向某个servlet的请求,此时服务器不是把servlet交给servlet本身,而是交给部署该servlet的容器。要有容器向servlet提供http请求和响应,而且要由容器调用servlet的方法,如doPost或者doGet。

    servlet需要由web容器来管理,那么采取这种机制有什么好处呢?

    通信支持

    利用容器提供的方法,你可以简单的实现servlet与web服务器的对话。否则你就要自己建立server搜创可贴,监听端口,创建新的流等等一系列复杂的操作。而容器的存在就帮我们封装这一系列复杂的操作。使我们能够专注于servlet中的业务逻辑的实现。

    生命周期管理

    容器负责servlet的整个生命周期。如何加载类,实例化和初始化servlet,调用servlet方法,并使servlet实例能够被垃圾回收。有了容器,我们就不用花精力去考虑这些资源管理垃圾回收之类的事情。

    多线程支持

    容器会自动为接收的每个servlet请求创建一个新的java线程,servlet运行完之后,容器会自动结束这个线程。

    声明式实现安全

    利用容器,可以使用xml部署描述文件来配置安全性,而不必将其硬编码到servlet中。

    jsp支持

    容器将jsp翻译成java!

    tomcat搭建

    rpm包安装

      Tomcat RPM安装(先安装JDK + 再安装Tomcat

    1:升级系统自带的JDK(也可以使用oracle的JDK)

    yum install -y java-1.8.0-openjdk-devel
    

    安装好了可使用 java -version

    2:由于Java开发的程序都需要运行在Java环境,因此一般只要是Java开发的程序,在安装JDK的同时,也需要将Java虚拟机导出到环境变量JAVA_HOME中,Java的虚拟机程序:/usr/bin/java

    vi /etc/profile.d/java.sh 添加

    export JAVA_HOME=/usr/bin
    

    执行操作:

    ./etc/profile.d/java.sh
    

    3:Tomcat相关程序介绍
    tomcat.noarch: Servlet/JSP 引擎

    tomcat-lib.noarch:Tomcat运行所依赖的库

    tomcat-admin-webapps.noarch:web 应用程序的管理工具,可以在web页面管理APP

    tomcat-webapps.noarch:应用程序示例,可以通过8080端口访问web页面
    安装上述程序包 (对于RPM包安装的Tomcat而言,Tomcat的应用默认在/var/lib/tomcat/webapps目录下)

    yum install -y tomcat.noarch tomcat-lib.noarch tomcat-admin-webapps.noarch tomcat-webapps.noarch
    

    启动Tomcat(一般在生成环境中,使用普通用户启动Tomcat,因此需要修改Tomcat安装目录的属主和catalina.sh的属主为tomcat用户即可)

    systemctl start tomcat.service
    

    访问Tomcat的web页面

    http://192.168.43.10:8080
    

    tomcat编译安装

    安装开发环境

    yum -y groupinstall "Development Tools" "Development Libraries"
    

    apache-tomcat-8.0.35.tar.gz下载地址:

    http://tomcat.apache.org/download-80.cgi
    

    tomcat-native.tar.gz 下载地址:

    http://down.51cto.com/data/487154
    

    jdk-6u30-linux-i586.bin下载地址:

    http://down.51cto.com/data/487130
    

    使用 tar -zxf 解压到 /usr/local/

      tar -zxf jdk-6u30-linux-i586.bin.tar.gz  /usr/local/
    

    然后创建软链接

    ln -sv  /jdk-6u30-linux-i586.bin  /usr/local/jdk 
    

    最后设置一下环境变量:

    [root@localhost ~]# cat /etc/profile.d/java.sh
    
    export JAVA_HOME=/usr/local/jdk
    
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    
    export PATH=$JAVA_HOME/bin:$PATH
    

    执行一下:

      source /etc/profile.d/java.sh
    

    解压到/usr/local

    tar -zxf tomcat-native.tar.gz /usr/local
    

    创建一个软链接

    ln -sv  apache-tomcat tomcat 
    

    查看

    export CATALINA_HOME=/usr/local/tomcat    
    
    
    
    echo $CATALINA_HOME
    

    启动tamcat

    bin/catalina.sh start
    

    下载二级制包

    wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.43/bin/apache-tomcat-8.5.43.tar.gz
    

    2:解压,且创建连接文件

    tar -zxf apache-tomcat-8.0.47.tar.gz -C /usr/local
    ln -s /usr/local/apache-tomcat-8.0.47 /usr/local/tomcat
    

    3:编辑/etc/profile.d/tomcat.sh文件,导出CATALINA_BASE(Tomcat的工作目录)境变量
    vi /etc/profile.d/tomcat.sh 添加:

    CATALINA_BASE=/usr/local/tomcat 
    #(CATALINA_BASE是tomcat引用实例的工作目录)
    PATH=$CATALINA_BASE/bin:$PATH
    export PATH CATALINA_BASE
    

    4:启动Tomcat

    catalina.sh start
    

    5:访问Tomcat的web页面

    http://192.168.43.11:8080
    

    总结:其实呢编译安装tomcat无非就是
    apache-tomcatJDK下载,然后解压,然后启动并查看服务的端口(netstat -lntup )

    tomcat配置

    /etc/tolmcat/Server.xml详解

    # 这是service类
    <Service name="Catalina">
     
    # 这是http连接器,响应用户请求
    <Connector port="8080" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" />
     
    # 这是ajp连接器,响应用户请求
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
     
    # 这是Engine,解析用户请求,请求指定默认的虚拟主机为localhost
    <Engine name="Catalina" defaultHost="localhost">
     
    <Realm className="org.apache.catalina.realm.LockOutRealm">
     
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
    resourceName="UserDatabase"/>
    </Realm>
     
    # 这是默认的虚拟主机localhost
    <Host name="localhost" appBase="webapps"
    unpackWARs="true" autoDeploy="true">
     
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
    prefix="localhost_access_log." suffix=".txt"
    pattern="%h %l %u %t "%r" %s %b" />
    </Host>
     
    # 这里是第一个自定义的虚拟主机
    <Host name="www.uplooking.com" appBase="/app/java"
    unpackWARs="true" autoDeploy="true">
    </Host>
     
    # 这里是第二个自定义的虚拟主机
    <Host name="www.home.com" appBase="/app/home"
    unpackWARs="true" autoDeploy="true">
     
    # 这里是用来定义虚拟主机的日志的,通常而言,日志格式需要格式化输出,使得tomcat的日志与httpd的日志一样,可以放在ELK中进行处理
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="uplooking_log" suffix=".log" pattern="%h %l %u %t %r %s %b %D %{Cookie}i %{User-Agent}i %{a}r/>
     
    # 这里的Context组件中定义的path路径就相当于一个URI的映射,访问的目录为/data/app,这里需要注意的是在/data/app目录中,不能把资源放在ROOT目录下,只能放在/data/app目录下。也就是说浏览器访问的URL为:192.168.43.10:8080/app,访问文件系统上的资源是/data/app目录下的资源
    <Context path="/app" docBase="/data/app" reloadable="true">
     
    # 这里指定了访问控制的规则,deny表示拒绝访问
    
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" deny="192.168.23.2"/>
    </Context>
    </Host>
     
    </Engine>
    </Service>
    </Server>
    

    解决tomcat登录需要给角色授权

    1:编辑/usr/local/tomcat/conf/tomcat-users.xml文件,在没有注 释的内容中添加:

     <role rolename="manager-gui" />
     <user username="tomcat" password="tomcat" roles="manager-gui" />
    

    2:停止Tomcat应用,在启动Tomcat应用

    catalina.sh stop
    catalina.sh start
    

    3:再次访问http://192.168.43.11:8080,且点击Manager App按钮,输入tomcat用户名,输入tomcat密码,即可登入

  • 相关阅读:
    canvas-color的几种设置
    canvas-2lineCap.html
    canvas-2lineJoin.html
    canvas-0trasform.html
    总体、个体和简单随机样本
    大数定律
    切比雪夫不等式
    B1032. 挖掘机技术哪家强
    Array(数组)对象-->join() 方法
    Array(数组)对象-->shift() 方法
  • 原文地址:https://www.cnblogs.com/liu1026/p/11346096.html
Copyright © 2011-2022 走看看