zoukankan      html  css  js  c++  java
  • Tomcat 学习记录

    阅读摘录如下:

    一、本质

      Tomcat最本质就是个能运行JSP/Servlet的Web服务器 , 因此最典型的应用就是用户通过浏览器访问服务器,Tomcat接收到请求后转发给Servlet,由Servlet处理完后,把结果返回给客户端。

      Tomcat是通过ServerSocket监听Socket的方式来接收客户端请求的。

    二、核心类

    Catalina:与开始/关闭shell脚本交互的主类,因此如果要研究启动和关闭的过程,就从这个类开始看起。

    Server:是整个Tomcat组件的容器,包含一个或多个Service。

    Service:Service是包含Connector和Container的集合,Service用适当的Connector接收用户的请求,再发给相应的Container来处理。

    Connector:实现某一协议的连接器,如默认的有实现HTTP、HTTPS、AJP协议的。

    Container:可以理解为处理某类型请求的容器,处理的方式一般为把处理请求的处理器包装为Valve对象,并按一定顺序放入类型为Pipeline的管道里。Container有多种子类型:Engine、Host、Context和Wrapper,这几种子类型Container依次包含,处理不同粒度的请求。另外Container里包含一些基础服务,如Loader、Manager和Realm。

    Engine:Engine包含Host和Context,接到请求后扔给相应的Host在相应的Context里处理。

    Host:就是我们所理解的虚拟主机。

    Context:就是我们所部署的具体Web应用的上下文,每个请求都在是相应的上下文里处理的。

    Wrapper:Wrapper是针对每个Servlet的Container,每个Servlet都有相应的Wrapper来管理。

    可以看出Server、Service、Connector、Container、Engine、Host、Context和Wrapper这些核心组件的作用范围是逐层递减,并逐层包含。

    下面就是些被Container所用的基础组件:

    Loader:是被Container用来载入各种所需的Class。

    Manager:是被Container用来管理Session池。

    Realm:是用来处理安全里授权与认证。

    三、Tomcat部署时 war 和 war exploded 区别

    war模式—-将WEB工程以包的形式上传到服务器

    war exploded模式—-将WEB工程以当前文件夹的位置关系上传到服务器

    四、配置 Tomcat 环境变量

    linux系统:tomcat/bin/setenv.sh

      1 #!/bin/bash
      2 #设置java环境变量
      3 #tomcat启动pid
      4 #export CATALINA_HOME="/usr/tomcat-1"
      5 #export CATALINA_BASE="/usr/tomcat-1"
      6 #add tomcat pid
      7 #CATALINA_PID="$CATALINA_BASE/nip-one.pid"
      8 
      9 JAVA_OPTS='-server -Xms1144m -Xmx1144m -XX:PermSize=1048m -XX:MaxPermSize=1048m'
     10 
     11 if [[ "$JAVA_OPTS" != *-Djava.security.egd=* ]]; then
     12      JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom"
     13 fi

    windows系统:tomcat/bin/setenv.bat

    参考资料

    tomcat组成及工作原理

    Tomcat源码分析

    Tomcat源码分析(一)------ 架构

    tomcat部署多个站点方法

    TOMCAT多站点配置

    用Intellij IDEA调试Tomcat7.0源码

    Javaweb Tomcat 项目部署方式

    Tomcat catalina.bat 原理解析

  • 相关阅读:
    Linux内核RPC请求过程
    二分图
    Java实现 蓝桥杯 算法提高 合并石子
    Java实现 蓝桥杯 算法提高 合并石子
    Java实现 蓝桥杯 算法提高 摩尔斯电码
    Java实现 蓝桥杯 算法提高 摩尔斯电码
    Java实现 蓝桥杯 算法提高 文本加密
    Java实现 蓝桥杯 算法提高 文本加密
    Java蓝桥杯 算法提高 九宫格
    Java蓝桥杯 算法提高 九宫格
  • 原文地址:https://www.cnblogs.com/wangwangfei/p/6207329.html
Copyright © 2011-2022 走看看