在水一万 发表于 2018-12-3 09:14:36

tomcat核心概念及使用初步

  http://s1.运维网.com/images/20180112/1515762152980186.png
  此图为JSP格式的源代码的运行流程
  
  
  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。【来源于百度百科】
  

  
  JAVA EE包含多个独立的API,Servlet和JSP就是其中的两个,而JAVA EE中著名的API中还包含如下的几个:
  JAVA EE APIs:
  EJB(Enterprise JavaBeans):JAVA相关的诸多高级功能的实现,如RMI(Remote Method Invocation), 对象/关系映射,跨越多个数据源的分布式事务等;
  JMS(Java Message Service):高性能异步消息服务,实现JAVA EE应用程序与非JAVA程序的“透明”通信;
  JMX(Java Management Extensions):在程序运行时对其进行交互式监控和管理的机制;
  JTA(Java Transaction API):允许应用程序在自身的一个或多个组件中平滑地处理错误的机制;
  JavaMail:通过工业标准的POP/SMTP/IMAP协议发送和接收邮件的机制;
  Java SE APIs:
  JNDI(Java Naming and Directory Interface):用于与LDAP服务交互的API;
  JAXP(Java API for XML Processing):用于分析及转换XML(基于XSLT实现);
  Java SE API + JDK
  
  Tomcat版本:
  http://s1.运维网.com/images/20180112/1515764466361728.png
  
  
  

  所有的web contoiner基本上都会提供一个类似于http服务的程序

  Tomcat支持远程部署和管理
  Tomcat的核心组件:
  catalina: servlet container
  Coyote: http connection
      Jasper: JSP Engine
  Tomcat的开发语言:JAVA    Tomcat运行在jvm上,所有的java代码都运行为java虚拟机进程
  Tomcat Instance: 运行中的tomcat进程(java进程)
  Server: 即一个tomcat实例;
  Service: 用于将connector关联至engine组件;一个service只能包含一个engine组件和一个或多个connector组件;
  Engine:Tomcat的核心组件,用于运行jsp或servlet代码;
  Connector:接入并解析用户请求,将请求映射为Engine中运行的代码;之后,将运行结果构建成响应报文;
  支持http协议, ajp协议
  Host:类似httpd中的虚拟主机;
  Context:类似于httpd中的alias; 把一个路径部署成一个单独的应用程序,因为java是比较重量级的
  注:大多数情况下,一个server中只提供一个service
  注意:每个组件都由“类”来实现,有些组件的实现还不止一种;
  顶级类组件:server
  服务类组件:service
  容器类组件:即可以部署webapp的组件,engine, host, context
  连接器组件:connector
  被嵌套类组件:valve, logger, realm
  把各种组件的组织形式定义成html格式:
http://s1.运维网.com/images/20180113/1515802628355946.png
  Tomcat的运行模式:
  standalone:通过内置的web server (http connector)来接收客户端请求;
  proxy:由专门的web server服务客户端的http请求;把客户端的请求反代至tomcat
           in-process: 两个组件部署于同一主机;
           network: 两个部署于不同主机;
  安装Tomcat:
  官方站点:http://tomcat.apache.org
  部署前提:
  jdk:注:先安装jdk
      Oracel JDK
      OpenJDK
  官网下载
  jdk-8u151-linux-x64.rpm
  # rpm -ivh jdk-8u151-linux-x64.rpm
http://s1.运维网.com/images/20180113/1515803622220677.png
  jdk默认安装在/usr/java/

  声明JAVA-HOME变量
  
  # vim /etc/profile.d/java.sh
  
  export JAVA_HOME=/usr/java/latest
  export PATH=$JAVA_HOME/bin:$PATH
  # . /etc/profile.d/java.sh   注:重读此配置文件
http://s1.运维网.com/images/20180113/1515805099127909.png
  上图为java命令查看其版本,能看到上图的信息,说明环境变量配置成功
  

  官网下载 apache-tomcat-8.0.23.tar.gz
  #tar xf apache-tomcat-8.0.23.tar.gz -C /usr/local
  #cd /usr/local
  # ln -sv apache-tomcat-8.0.23 tomcat
  # vim /etc/profile.d/tomcat.sh       注:指明tomat的环境变量
  export CATALINA_HOME=/usr/local/tomcat
  export PATH=$CATALINA_HOME/bin:$PATH
  

  # . /etc/profile.d/tomcat.sh       注:重读此脚本生效

http://s1.运维网.com/images/20180113/1515807590877401.png
  # catalina.sh start注:启动tomcat,tomcat监听在8080端口上
http://s1.运维网.com/images/20180113/1515808097970459.png
  部署Tomcat:
  Tomcat的目录结构:
  bin: 脚本及启动时用到的类
  lib: 类库
  conf: 配置文件
  logs: 日志文件
  webapps: 应用程序默认部署目录
  work:工作目录
  temp:临时文件目录
  配置文件:
  server.xml: 主配置文件
  context.xml:每个webapp都可以有专用的配置文件,这些配置文件通常位于webapp应用程序目录下的WEB-INF目录中,用于定义会话管理器、JDBC等;conf/context.xml是为各webapp提供默认配置;
  web.xml:每个webapp“部署”之后才能被访问;此文件则用于为所有的webapp提供默认部署相关的配置;
  tomcat-users.xml:用户认证的账号和密码配置文件;
  catalina.policy:当使用-security选项启动tomcat实例时会读取此配置文件来实现其安全运行策略;
  catalina.properties:Java属性的定义文件,用于设定类加载器路径等,以及一些JVM性能相关的调优参数;
  logging.properties:日志相关的配置信息;



页: [1]
查看完整版本: tomcat核心概念及使用初步