精华内容
下载资源
问答
  • tomcat是服务器,是一种比较简单的中间件,用来把java web开发部署到tomcat中,此时tomcat是作为服务器的。java的可移植性设计让java依赖class文件运行的。jdk就是java运行的环境,使用它能编译.java文件,运行java...

    tomcat是服务器,是一种比较简单的中间件,用来把java web开发部署到tomcat中,此时tomcat是作为服务器的。

    java的可移植性设计让java依赖class文件运行的。jdk就是java运行的环境,使用它能编译.java文件,运行java程序。

    tomcat可以比作web容器,java应用发布在它上面然后通过它与浏览器进行交互,一种程序与浏览器适配的容器。

    Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

    当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。

    Tomcat 组成如下图:

    主要有 Container 和 Connector 以及相关组件构成。

    Server:指的就是整个 Tomcat 服 务器,包含多组服务,负责管理和 启动各个 Service,同时监听 8005 端口发过来的 shutdown 命令,用 于关闭整个容器 ;

    Service:Tomcat 封装的、对外提 供完整的、基于组件的 web 服务, 包含 Connectors、Container 两个 核心组件,以及多个功能组件,各 个 Service 之间是独立的,但是共享 同一 JVM 的资源 ;

    Connector:Tomcat 与外部世界的连接器,监听固定端口接收外部请求,传递给 Container,并 将 Container 处理的结果返回给外部;

    Container:Catalina,Servlet 容器,内部有多层容器组成,用于管理 Servlet 生命周期,调用 servlet 相关方法。

    Loader:封装了 Java ClassLoader,用于 Container 加载类文件; Realm:Tomcat 中为 web 应用程序提供访问认证和角色管理的机制;

    JMX:Java SE 中定义技术规范,是一个为应用程序、设备、系统等植入管理功能的框架,通过 JMX 可以远程监控 Tomcat 的运行状态;

    Jasper:Tomcat 的 Jsp 解析引擎,用于将 Jsp 转换成 Java 文件,并编译成 class 文件。 Session:负责管理和创建 session,以及 Session 的持久化(可自定义),支持 session 的集

    群。

    Pipeline:在容器中充当管道的作用,管道中可以设置各种 valve(阀门),请求和响应在经由管 道中各个阀门处理,提供了一种灵活可配置的处理请求和响应的机制。

    Naming:命名服务,JNDI, Java 命名和目录接口,是一组在 Java 应用中访问命名和目录服务的

    API。命名服务将名称和对象联系起来,使得我们可以用名称访问对象,目录服务也是一种命名 服务,对象不但有名称,还有属性。Tomcat 中可以使用

    JNDI 定义数据源、配置信息,用于开发 与部署的分离。

    Container组成

    Engine:Servlet 的顶层容器,包含一 个或多个 Host 子容器;

    Host:虚拟主机,负责 web 应用的部 署和 Context 的创建;

    Context:Web 应用上下文,包含多个 Wrapper,负责 web 配置的解析、管 理所有的 Web 资源;

    Wrapper:最底层的容器,是对 Servlet 的封装,负责 Servlet 实例的创 建、执行和销毁。

    生命周期管理

    Tomcat 为了方便管理组件和容器的生命周期,定义了从创建、启动、到停止、销毁共 12 中状态,tomcat

    生命周期管理了内部状态变化的规则控制,组件和容器只需实现相应的生命周期

    方法即可完成各生命周期内的操作(initInternal、startInternal、stopInternal、

    destroyInternal);

    Servlet 是用 Java 编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。

    请求到达 server 端,server 根据 url 映射到相应的 Servlet

    判断 Servlet 实例是否存在,不存在则加载和实例化 Servlet 并调用 init 方法

    Server 分别创建 Request 和 Response 对象,调用 Servlet 实例的 service 方法(service 方法 内部会根据 http 请求方法类型调用相应的 doXXX 方法)

    doXXX 方法内为业务逻辑实现,从 Request 对象获取请求参数,处理完毕之后将结果通过 response 对象返回给调用方

    当 Server 不再需要 Servlet 时(一般当 Server 关闭时),Server 调用 Servlet 的 destroy() 方 法。

    比如执行初始化操作时,会判断当前状态是否 New,如果不是则抛出生命周期异常;是的 话则设置当前状态为 Initializing,并执行

    initInternal 方法,由子类实现,方法执行成功则设置当 前状态为 Initialized,执行失败则设置为 Failed 状态;

    Tomcat 的生命周期管理引入了事件机制,在组件或容器的生命周期状态发生变化时会通 知事件监听器,监听器通过判断事件的类型来进行相应的操作。

    事件监听器的添加可以在 server.xml 文件中进行配置;

    Tomcat 各类容器的配置过程就是通过添加 listener 的方式来进行的,从而达到配置逻辑与 容器的解耦。如 EngineConfig、HostConfig、ContextConfig。

    EngineConfig:主要打印启动和停止日志

    HostConfig:主要处理部署应用,解析应用

    META-INF/context.xml 并创建应用的 Context ContextConfig:主要解析并合并

    web.xml,扫描应用的各类 web 资源 (filter、servlet、listener)

    展开全文
  • 在面临以下两种情景时,我们常常讨论Tomcat和JDK版本的对应关系。一是:安装哪种版本的JDK,可以使tomcat运行起来;二是:安装哪种版本的JDK+Tomcat组合,可以让我用某版本JDK编写的网站运行起来。其实,这两种问题...

    在面临以下两种情景时,我们常常讨论Tomcat和JDK版本的对应关系。

    一是:安装哪种版本的JDK,可以使tomcat运行起来;

    二是:安装哪种版本的JDK+Tomcat组合,可以让我用某版本JDK编写的网站运行起来。

    其实,这两种问题有一个共同的答案:低版本JDK无法运行高版本JDK编译的代码。

    tomcat官网(http://tomcat.apache.org/whichversion.html)给出了tomcat和JDK版本的匹配情况:

    e39f336e25d08627dca1d733bbb2c288.png

    我安装了tomcat9和JDK1.7,当我启动tomcat时报错(Unsupported major.minor version 52.0):

    (52.0是java编码器的内部编号,JDK1.4--48.0,JDK1.5--49.0,JDK1.6--50.0,JDK1.7--51.0,JDK1.8--52.0)

    b630f20f4abcbb6f5a0016bbd7e4ca0f.png

    出现这个问题的原因是:本地安装的JDK1.7和tomcat9不兼容,tomcat9需要在1.8版本以上的JDK环境上才能正常运行。另外,下载的Tomcat的RUNNING.txt也有当前版本所需JDK说明:

    Apache Tomcat 9.0 requires a Java Standard Edition Runtime Environment (JRE) version 8 or later.

    展开全文
  • 当我们在谈论Tomcat与JDK版本的对应关系的时候,我们实际上在讨论两个问题。第一个是,我们想安装了某个版本的Tomcat(比如Tomcat7),需要安装哪个版本的JDK,才能把Tomcat运行起来。第二个是,如果我们安装某个...

    当我们在谈论Tomcat与JDK版本的对应关系的时候,我们实际上在讨论两个问题。

    第一个是,我们想安装了某个版本的Tomcat(比如Tomcat7),需要安装哪个版本的JDK,才能把Tomcat运行起来。

    第二个是,如果我们安装某个Tomcat+JDK组合(比如Tomcat7+JDK1.7),能否把我们某个版本JDK(比如JDK1.6)编写的网站给运行起来。

    对于第一个问题,可以通过官网的这张图最后一列得到答案(下载的Tomcat的RUNNING.txt和RELEASE-NOTES也有当前版本所需JDK说明):

    30ea0156d88522fd7ccd4d45d26841fa.png

    所以如果安装Tomcat7要安装JDK1.6及之后版本才能正常启动Tomcat(如果使用不匹配的jdk比如Tomcat7用jdk1.5执行startup.sh输出也提示启动成功,但其实进程没成功启动的,查看logs/catalina.out会看到报错:

    Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file)

    对于第二个问题,其实到此我们要言明,第一个问题和第二个问题都有一个同样本质的答案:低版本JDK无法运行高版本JDK编译的代码。

    所以如果你安装了Tomcat7+JDK1.7这个组合,那么JDK1.7及之前版本JDK编写的网站可以正常运行,JDK1.8编写的不可以。

    (同理我们可以推测,Tomcat7是用JDK1.6编译的,Tomcat8是用JDK1.7编译的,Tomcat9是用JDK1.8编译的)

    下图是中我用JDK1.7编译了一个HelloWorld程序,可以看到JDK1.7和1.8运行正常,而JDK1.6运行报错(Unsupported major.minor version 51.0):

    (51.0是内部编号,JDK1.4--48.0,JDK1.5--49.0,JDK1.6--50.0,JDK1.7--51.0,JDK1.8--52.0)

    45ecaa413110ae475b0733c2ad0b1fe0.png

    参考:

    展开全文
  • tomcat apache java web关系

    2014-01-14 23:31:19
    tomcatjava关系:可以理解为Java和Android的关系,apk程序是用Java编写的,但不是任何地方读能运行,只能运行在Android环境上。这就像jsp或servlet类“运行”在tomcat环境中的道理一样,它提供了Java Web应用的...
  • 文章目录Alpha/Beta/StableApacheTomcat9.xApacheTJava Apache Tomcat是一个开源软件实现了Java Servlet和Java Server Pages技术。不同版本的Servlet和JSP规范可使用不同版本的Apache TomcatTomcat与JDK版本对应...
  • JVM和tomcat之间的关系,从下面的几个方向说明:1、JVM,java虚拟机,不同设备运行java应用程序的平台。2、Tomcat,apache免费开源的web应用服务器,通过java语言编写,换句话说:tomcat亦是一个java应用程序。-----...
  • https://blog.csdn.net/qq_31301961/article/details/80732669 除了Tomcat还有WebLogic 大型分布式的 如何部署映射 Tomcat使用指南: ... JavaTomcat 是干什么的?: https://blog.cs...
  • JSESSIONID 和javatomcat关系

    千次阅读 2018-02-14 15:56:07
    大家都知道JSESSIONID,但是很多人搞不清它是j2EE专用的呢,还是tomcat定义的,也不清楚在其他容器里sessionid是不是也是它、 实际上,基本主流的container都支持修改sessionid,包括weblogicjetty,但是从sevlet...
  • http://tomcat.apache.org/whichversion.html  
  • web容器和tomcat和servlet关系总结

    千次阅读 2016-04-07 11:16:07
    1:web容器和tomcat关系: ... 2:tomcat和servlet关系: 来自:孙卫琴 Tomcat与Java Web开发技术详解(第2版) 可以参考(http://blog.csdn.net/wabiaozia/article/deta
  • tomcat apache 关系

    2020-09-04 17:52:10
    tomcat是应用(java)服务器,它只是一个servlet容器,可以认为是apache的扩展,但是可以独立于apache运行。 换句话说,apache是一辆卡车,上面可以装一些东西如html等。但是不能装水,要装水必须要有容器(桶),而...
  • tomcat是应用(java)服务器,侧重于servlet引擎apache支持静态页,tomcat支持动态的(比如servlet等。静态页也支持,但效果不好)3-形象比喻apache是一辆卡车,上面可以装一些东西如html等。但是不能装水(动态网页),要...
  • 经常在用apache和tomcat等这些服务器,可是总感觉还是不清楚他们之间有什么关系,在用tomcat的时候总出现apache,总感到迷惑,到底谁是主谁是次,因此特意在网上查询了一些这方面的资料,总结了一下: 一  ...
  • 开始我很混乱,Java SE JDK是什么关系呢?最后查了一下 Java SE = JDK + JRE。JDK就是Java开发工具包,JRE就是Java运行环境,我们做开发,需要本地运行调试,直接安装Java SE就好了。Java SE是Java开发的标准版本...
  • tomcat java web

    2015-05-01 10:52:47
    程序员突击:Tomcat原理与Java Web系统开发.pdf 详细讲解了tomcat和javaweb的关系
  • 背景:部署的web站点,应用默认加载工程的/webapps/工程名/WEB-INF/lib下的jar包但是我需要提供一个web工程没关系的的jar包管理目录解决方法:执行java方法时增加 -Djava.ext.dirs指定加载jar包的的目录(可以用...
  • tomcat和jvm的关系

    千次阅读 2018-10-11 18:03:26
    1.tomcat和jvm的关系 tomcat是servlet容器(jsp和servlet);tomcat由Java开发,所以必须运行在jvm上; tomcat和tomcat中的应用(即webapps下的war包)是运行在同一个jvm中的,但分工不同; 分析: tomcat的角色是...
  • Apache Tomcat是一个开源软件实现了Java Servlet和Java Server Pages技术。不同版本的Servlet和JSP规范可使用不同版本的Apache TomcatTomcat与JDK版本对应关系为:Servlet规格JSP规范EL规格WebSocket规范JASPIC...
  • Java开发者常用的应用程序服务器为Apache Tomcat,很多初学者在学习时将Apache和Tomcat混为一谈,其实这是不正确的。下面就给大家介绍一下二者的区别与联系。 Apache服务器是由C语言实现的,专门用来提供...
  • Tomcat和Servlet-JSP-Java版本之间的关系

    千次阅读 2014-01-20 16:06:41
    Apache Tomcat是一个开放源码软件的实现Java Servlet和JavaServer Pages技术。不同版本的Apache Tomcat提供不同版本的Servlet和JSP规范。规范之间的映射和各自的Apache Tomcat版本是: Servlet/JSP Spec Apache ...
  • warwar exploded的区别在使用IDEA开发项目的时候,部署Tomcat的时候通常会出现下边的情况:是选择war还是war exploded这里首先看一下他们两个的区别:war模式:将WEB工程以包的形式上传到服务器 ;war exploded...
  • 1 项目整体结构的设计为了让新...思路模型图:项目结构图:web.xml映射文件中的内容,用于定义URL请求映射路径和java类之间的对应关系logincom.bjsxt.servlet.LoginServletlogin/login/login22 Entity实体类的处理/*...
  • tomcat和servlet的关系

    2020-12-05 11:46:52
    tomcat和servlet的关系 Tomcat 是Web应用服务器,是一个Servlet/JSP容器. Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户.而Servlet是一种运行在支持Java语言的服务器...
  • 粗略来说,Tomcat是针对Java环境运行的服务器,而Nginx是PHP静态资源常用的服务器。  专业点讲,Tomcat是一个Servlet/JSP容器。也就是说,Java代码编写的服务端代码,  要运行在Tomcat里面才行。  2.Nginx的...
  • tomcat和jvm是什么关系

    千次阅读 2019-07-11 16:54:12
    以下是所有解析 一: Tomcat 是 Java 程序,运行在 JVM 之上,差不多和你的 QQ 运行在你的 Windows 之上一样,启动的时候做了好多好多的工作为了让你的应用能够通过 ...题主,Tomcat和JVM的关系,不用想的太复杂,其...
  • 主要内容包括:Tomcat和JavaWeb开发的基础知识,Java Web开发的高级技术,Tomcat与当前其他通用软件的集成,以及Tomcat的各种高级功能。 书中内容注重理论与实践相结合,列举了大量具有典型性和实用价值的Web应用...
  • Apache和Tomcat都是web网络服务器,两者既有联系又有区别,在进行HTML、PHP、JSP、Perl等开发过程中,需要准确掌握其各自特点,选择最佳的服务器配置。  Apache是web服务器(静态解析,如HTML),tomcatjava应用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 881
精华内容 352
关键字:

tomcat和java关系

java 订阅