初识TomCat之1——Java体系理解

简介:
一、前言
TomCat作为一款由Java语言所开发的Web Container,在很多应用场景中经常遇到,其特点也符合Java语言“一次编译到处使用”的优势,在介绍TomCat之前,首先需要对Java的技术体系有一定的了解。
二、Java介绍
Java与Python、PHP、C#等一样属应用级开发语言,不同于C等系统及开发语言,应用级开发语言在同一平台下所写的代码在其他平台上无法运行,这在早期让许多应用程序不得不针对每一种平台单独做一次开发。在计算机领域,出现任何两层之间无法衔接时都会引入中间层来解决此问题,Java也不例外,它在系统和应用之间又添加了一个中间层来解决该问题,中间层负责与不同的底层系统打交道,对外输出为统一的Java类库(也成为Java API,形式为XXX.class),主机只要安装了该中间层后就可以运行所有Java语言所开发的应用程序。
三、JRE、JVM与JDK
通过前文得知,中间层实际上是为Java语言所开发的程序提供了一个可以让其运行的环境,该环境通常被称为JRE(Java Run Environment),其核心是由一个Java虚拟机JVM(Java Virtual Machine)组成,JVM提供了Java程序运行时所需要的类文件,但仅有JVM并不一定能够能执行Java程序,这需要从Java程序的运行过程说起,Java程序的运行步骤为:
1.将使用Java语言开发的代码(通常Java代码被打包在.jar目录下)通过编译后生成程序的类文件
2.位于JVM中的类加载器(calss loader)将编译好的类文件和调用的类文件(类似于C语言,Java语言也有很多公共类文件)完成加载后交由执行引擎执行
初识TomCat之1Java体系理解
3.执行引擎的作用是将Java程序转换为本地库调用,从而实现Java程序在本地的运行
初识TomCat之1Java体系理解
而仅拥有JVM不一定能执行Java程序是因为Java程序在执行过程中有时需要调用其他的库,所以说JVM是JRE的一个子集,而JDK是在JRE的基础上多了开发工具,即JRE是JDK的一个子集
初识TomCat之1Java体系理解
四、Java的分类及CGI规范
Java本身又分为三个流派:J2SE(Java 2 Standard Edition)、J2EE(Java 2 Enterprise Edition)、J2ME(Java 2 Mobile Edition),除了J2ME鲜有人用之外,J2SE和J2EE已应用于广大生产环境。
随着动态内容的兴起,CGI规范应用到了几乎所有的Web场景,CGI是Web服务器运行时外部程序的规范,按照CGI编写的程序可以扩展服务器的功能,CGI程序还能与浏览器进行交互。
早期客户端在发起Java动态内容请求时,服务器端会将Java applet小程序作为一个单独文件与网页一起发给客户端,Java applet通常在客户端本地运行后将最终结果呈现给用户,此时称为客户端动态。该技术的优点是降低了服务器的负载,缺点是如果返回的是恶意程序,客户端面临很大的风险。
正是因为客户端动态存在着诸多隐患,取而代之的是服务器端动态,此时客户端发起Java动态内容请求,服务器接收到请求后交由服务器端Java Servlet程序运行,Java Servlet再将运行后的结果返回给服务器端最后呈现给用户,这样就避免了客户端动态的情况。
不同于php可以直接嵌入html文档,Servlet的结果最初只能以硬编码的方式格式化为html文档,这要求开发者需要同时掌握Java和html语言,所以为了降低开发者难度,通过JSP程序将运行后的结果格式化成html文档格式,从而降低了开发者的门槛。Servlet在处理完之后先交由JSP程序格式化成html后再交由服务器反馈给用户。
五、J2SE与J2EE的区分
从功能上大体可以这么认为:J2SE仅实现了JDK的功能,他为Java应用程序提供了一个容器。而在此之上拥有JSP、Servlet、EJB、JMS、JavaMail等功能的J2EE提供了一个Web容器,从而可以接收来自客户端的CGI或是http请求。

Sun在被Oracle收购前将JDK开源,但相关的JSP、Servlet等组件并没有开源,很多商业或社区组织由此提供了众多的Web容器技术,如:websphere,weblogic,tomcat。


本文转自 qiao645 51CTO博客,原文链接:http://blog.51cto.com/arkling/2061803


相关文章
|
3月前
|
Java 关系型数据库 MySQL
Windows用Tomcat发布Java项目
对于云服务器,程序员一般不会陌生,如果项目需要发布到现网,那么服务器是必不可缺的一项硬性条件,那么如何在云服务器上部署一个项目,需要做哪些配置准备,下面就由本文档为大家讲解,本篇以Tomcat服务器发布J2EE项目为例。
48 0
Windows用Tomcat发布Java项目
|
2月前
|
Java 关系型数据库 应用服务中间件
阿里云RDS购买Linux完整过程——安装java环境并跑起来tomcat
阿里云RDS购买Linux完整过程——安装java环境并跑起来tomcat
43 0
|
2月前
|
JavaScript Java 应用服务中间件
centos部署vue项目(java,tomcat环境的搭建)
centos部署vue项目(java,tomcat环境的搭建)
39 0
|
7月前
|
Java 应用服务中间件
《深入理解java虚拟机》——Tomcat类加载器体系结构
《深入理解java虚拟机》——Tomcat类加载器体系结构
|
4天前
|
Web App开发 Java 应用服务中间件
【Java Web】在 IDEA 中部署 Tomcat
【Java Web】在 IDEA 中部署 Tomcat
18 0
|
1月前
|
Java 应用服务中间件
解决tomcat启动报错:无法在web.xml或使用此应用程序部署的jar文件中解析绝对的url [http:java.sun.com/jsp/jstl/core]
解决tomcat启动报错:无法在web.xml或使用此应用程序部署的jar文件中解析绝对的url [http:java.sun.com/jsp/jstl/core]
108 1
|
3月前
|
监控 应用服务中间件
idea debug模式启动Tomcat报错:Error running ‘tomcat8‘: java.net.SocketException “socket closed“
idea debug模式启动Tomcat报错:Error running ‘tomcat8‘: java.net.SocketException “socket closed“
|
4月前
|
jenkins Java 应用服务中间件
Jenkins【部署 01】两种方式+两种环境部署最新版本 Jenkins v2.303.2 WAR包(直接使用 java -jar+使用Tomcat的Web端部署)
Jenkins【部署 01】两种方式+两种环境部署最新版本 Jenkins v2.303.2 WAR包(直接使用 java -jar+使用Tomcat的Web端部署)
67 0
|
4月前
|
Java 应用服务中间件 容器
3:Tomcat部署Web项目-Java Web
3:Tomcat部署Web项目-Java Web
59 0
|
4月前
|
缓存 前端开发 安全
细究Java类加载机制和Tomcat类加载机制
细究Java类加载机制和Tomcat类加载机制
24 0