设为首页 收藏本站
查看: 1061|回复: 0

[经验分享] tomcat核心概念及使用初步

[复制链接]

尚未签到

发表于 2018-12-3 09:14:36 | 显示全部楼层 |阅读模式
  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格式:

  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

  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   注:重读此配置文件

  上图为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       注:重读此脚本生效


  # catalina.sh start  注:启动tomcat,tomcat监听在8080端口上

  部署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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-642637-1-1.html 上篇帖子: tomcat 自动上线脚本 下篇帖子: Tomcat不能编译.java文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表