• tomcat


    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最新版本为10.0.5。

     

     原理

    Tomcat结构图:

    Tomcat主要组件:服务器Server,服务Service,连接器Connector、容器Container。连接器Connector和容器Container是Tomcat的核心。

        一个Container容器和一个或多个Connector组合在一起,加上其他一些支持的组件共同组成一个Service服务,有了Service服务便可以对外提供能力了,但是Service服务的生存需要一个环境,这个环境便是Server,Server组件为Service服务的正常使用提供了生存环境,Server组件可以同时管理一个或多个Service服务。

     

     

    tomcat项目部署

    java环境安装

    //安装jdk环境
    [root@MF ~]# yum -y install java-11-openjdk
    
    //查看安装版本
    [root@MF ~]# java -version
    openjdk version "11.0.11" 2021-04-20 LTS
    OpenJDK Runtime Environment 18.9 (build 11.0.11+9-LTS)
    OpenJDK 64-Bit Server VM 18.9 (build 11.0.11+9-LTS, mixed mode, sharing)

    tomcat部署

    官网下载tomcat:Index of /apache/tomcat/tomcat-10/v10.0.6/bin

    //下载tomcat
    [root@MF ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-10/v10.0.6/bin/apache-tomcat-10.0.6.tar.gz
    
    //解压部署
    [root@MF ~]# ls
    apache-tomcat-10.0.6.tar.gz 
    
    [root@MF ~]# tar xf apache-tomcat-10.0.6.tar.gz 
    [root@MF ~]# ls
    anaconda-ks.cfg              
    apache-tomcat-10.0.6   
    
    [root@MF ~]# mkdir /usr/local/tomcat
    [root@MF ~]# mv apache-tomcat-10.0.6 /usr/local/tomcat/jenkins
    
    [root@MF ~]# ls /usr/local/tomcat/jenkins/
    bin           CONTRIBUTING.md  logs       RELEASE-NOTES  webapps
    BUILDING.txt  lib              NOTICE     RUNNING.txt    work
    conf          LICENSE          README.md  temp
    
    //启动tomcat
    [root@MF ~]# /usr/local/tomcat/website/bin/startup.sh start
    Using CATALINA_BASE:   /usr/local/tomcat/website
    Using CATALINA_HOME:   /usr/local/tomcat/website
    Using CATALINA_TMPDIR: /usr/local/tomcat/website/temp
    Using JRE_HOME:        /usr
    Using CLASSPATH:       /usr/local/tomcat/website/bin/bootstrap.jar:/usr/local/tomcat/website/bin/tomcat-juli.jar
    Using CATALINA_OPTS:   
    Tomcat started.
    
    [root@MF ~]# ss -antl
    LISTEN 0       1         [::ffff:127.0.0.1]:8005               *:*    
    LISTEN 0       80                         *:3306               *:*    
    LISTEN 0       100                        *:8080               *:*    

    访问测试页面

    //写一个hello world的java页面
    [root@MF ~]# vi index.jsp
    [root@MF ~]# cat index.jsp
    <html>
    <head>
            <title>test page</title>
    </head>
    <body>
            <%
                out.println("Hellow World");
            %>
    </body>
    </html>
    
    [root@MF ~]# mkdir /usr/local/tomcat/website/webapps/test
    [root@MF ~]# cp index.jsp /usr/local/tomcat/website/webapps/test/
    [root@MF ~]# ls /usr/local/tomcat/website/webapps/test
    index.jsp
    
    //重启tomcat
    [root@MF tomcat]# website/bin/shutdown.sh 
    Using CATALINA_BASE:   /usr/local/tomcat/website
    Using CATALINA_HOME:   /usr/local/tomcat/website
    Using CATALINA_TMPDIR: /usr/local/tomcat/website/temp
    Using JRE_HOME:        /usr
    Using CLASSPATH:       /usr/local/tomcat/website/bin/bootstrap.jar:/usr/local/tomcat/website/bin/tomcat-juli.jar
    Using CATALINA_OPTS:   
    NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
    
    [root@MF tomcat]# website/bin/startup.sh 
    Using CATALINA_BASE:   /usr/local/tomcat/website
    Using CATALINA_HOME:   /usr/local/tomcat/website
    Using CATALINA_TMPDIR: /usr/local/tomcat/website/temp
    Using JRE_HOME:        /usr
    Using CLASSPATH:       /usr/local/tomcat/website/bin/bootstrap.jar:/usr/local/tomcat/website/bin/tomcat-juli.jar
    Using CATALINA_OPTS:   
    Tomcat started.

    访问Host Manager页面

    //修改配置文件
    [root@MF website]# cd conf/
    [root@MF conf]# ls
    Catalina             jaspic-providers.xml  tomcat-users.xml
    catalina.policy      jaspic-providers.xsd  tomcat-users.xsd
    catalina.properties  logging.properties    web.xml
    context.xml          server.xml
    [root@MF conf]# vim tomcat-users.xml 
    。。。。。。
    #在末尾添加次些内容
    <role rolename="admin-gui"/> 
    <user username="tomcat" password="s3cret" roles="admin-gui"/>
    </tomcat-users> 
    
    [root@MF website]# cd webapps/
    [root@MF webapps]# ls
    docs  examples  host-manager  manager  ROOT  test
    [root@MF webapps]# cd host-manager/
    [root@MF host-manager]# ls
    css  images  index.jsp  META-INF  WEB-INF
    [root@MF host-manager]# vim META-INF/context.xml 
    。。。。。。
    #在此段添加网段
    allow="192.168.186.d+|127.d+.d+.d+|::1|0:0:0:0:0:0:0:1" />
    。。。。。。

    重新访问

    用户名:tomcat

    密码:s3cret

    登录后出现以下界面

    访问服务器状态

    //修改配置文件
    [root@MF webapps]# vim manager/META-INF/context.xml 
    。。。。。。。
    allow="192.168.186.d+|127.d+.d+.d+|::1|0:0:0:0:0:0:0:1" />
    
    [root@MF webapps]# vim manager/META-INF/context.xml 
    [root@MF webapps]# vim ../conf/tomcat-users.xml
    。。。。。。
    <role rolename="admin-gui"/>
    <role rolename="manager-gui"/>
    <user username="tomcat" password="s3cret" roles="admin-gui,manager-gui"/>
    </tomcat-users>
    
    //重启
    [root@MF webapps]# ../bin/catalina.sh stop
    Using CATALINA_BASE:   /usr/local/tomcat/website
    Using CATALINA_HOME:   /usr/local/tomcat/website
    Using CATALINA_TMPDIR: /usr/local/tomcat/website/temp
    Using JRE_HOME:        /usr
    Using CLASSPATH:       /usr/local/tomcat/website/bin/bootstrap.jar:/usr/local/tomcat/website/bin/tomcat-juli.jar
    Using CATALINA_OPTS:   
    NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
    
    [root@MF webapps]# ../bin/catalina.sh start
    Using CATALINA_BASE:   /usr/local/tomcat/website
    Using CATALINA_HOME:   /usr/local/tomcat/website
    Using CATALINA_TMPDIR: /usr/local/tomcat/website/temp
    Using JRE_HOME:        /usr
    Using CLASSPATH:       /usr/local/tomcat/website/bin/bootstrap.jar:/usr/local/tomcat/website/bin/tomcat-juli.jar
    Using CATALINA_OPTS:   
    Tomcat started.

    Java体系

    原文链接:https://blog.csdn.net/qq_39091292/article/details/84859611

    JAVA被分为3种结构独立但又彼此依赖的技术体系分支:Java SE(标准版)、Java EE(企业版)、Java ME(精简版)。以上三种体系分支分别对应着不同的规范集合和组件:Java SE活跃在桌面领域,主要包含Java API组件;Java EE活跃在企业级领域,除了包含Java API组件,还扩充有Web组件、事务组件、分布式组件、EJB组件、消息组件;Java ME则活跃在嵌入式领域,仅保留部分Java API组件以及适应设备的特有组件,这也是它“精简版”称呼的由来。



    JAVA体系优点:

    拥有一门结构严谨、面向对象的编程语言
    跨平台(摆脱硬件平台的约束) ----“Write once,Run anywhere”主8要由字节码支持。因为Java源代码默认编译结果为平台通用的字节码。
    安全性优越  ---提供了一种相对安全的内存管理和访问机制,避免了绝大部分的内存泄露和指针越界问题
    多线程
    分布式
    完善的应用程序接口
    大量的第三方类库

    Java技术体系所包含的内容:

     JDK与JRE的关系:

    JDK:支持Java程序开发的最小环境。JDK = Java程序设计语言+Java虚拟机+Java API类库。

    JRE:支持Java程序运行的标准环境。JRE=Java虚拟机 +Java API类库中的Java SE API子集 。

     

    中间件

    简介

    中间件是一类连接软件组件和应用的计算机软件,它包括一组服务。以便于运行在一台或多台机器上的多个软件通过网络进行交互。该技术所提供的互操作性,推动了一致分布式体系架构的演进,该架构通常用于支持并简化那些复杂的分布式应用程序,它包括web服务器、事务监控器消息队列软件

    优势

    1、满足大量应用的需要 ; 
    2、运行于多种硬件和OS平台 ;
    3、支持分布式计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互功能 ; 
    4、支持标准的协议 ; 
    5、支持标准的接口。
     

    应用

    1、中间件与电子商务的整合。
    Intemet是电子商务发展的基础,让商户可以通过它,把商业扩展到能到达的任意地点。这其中离不开大量的信息传输,而电子商务则使用了浏览器/服务器B/S(BrowserJServer)的技术来达到大量数据处理的目的。 
     
    2、中间件在B/S模式中的架构。
    中间件在B/S模式下起到了功能层的作用。当用户从WEB界面向服务器提交了数据请求或者应用请求时,功能层负责将这些请求分类为数据或应用请求,再向数据库发出数据交换申请。数据库对请求进行筛选处理之后,再将所需的数据通过功能层传递回到用户端。通过如此处理,单一用户可以进行点对面的操作,无需通过其他软件进行数据转换。

     

  • 相关阅读:
    算法-排序之快速排序
    springMvc Velocity tool 源码分析
    无线端安全登录与鉴权二
    无线端安全登录与鉴权一之Kerberos
    Android ListView OnItemLongClick和OnItemClick事件内部细节分享以及几个比较特别的属性
    dialog横竖屏切换时消失的解决方法
    你还在问android横竖屏切换的生命周期?
    动态添加控件时,计算控件大小的解决方法
    想要生成一组三维的颜色渐变数据?
    一个PHPer如何深入学习ES搜索引擎?
  • 原文地址:https://www.cnblogs.com/mfdsg/p/14766851.html
Copyright © 2020-2023  润新知