zoukankan      html  css  js  c++  java
  • tomcat-1-介绍篇

    java语言分为三个体系:
    javase javaee,是javase的基础 一般就是指jdk
    javaee java的企业版本 其实是一套规范,就是用java语言做企业开发(目前看来就是开发一些动态网站,或者对外提供调用服务的网站,或者其他没接触过的。。。)中的一整套规范,比如类怎么封装,网页的请求要用什么方法处理,语言编码一类的处理,拦截器啊什么的定义,请求返回得有什么信息。。。(具体看servlet的接口就知道了)
    比如:tomcat就是按照这套规范开发的容器软件,还有什么weblogic,JBoss、Resin等等
    javame java的微型版本,一般不用

    2 Java体系结构包括四个独立但相关的技术:
    Java程序设计语言
    Java class文件格式
    Java API
    Java VM

    用Java语言编译源代码,把它编译成Java Class文件,然后在Java VM中运行class文件;当编写程序时,通过调用类(Java API)中的方法来访问系统资源,而当程序运行时,它通过调用class文件中实现了Java API的方法也满足程序的Java API调用。Java VM和Java API一起组成了一个“平台”,所有Java程序都在其上编译和运行,因此,它们有时也被称作Java运行时环境。
    Java VM的主要任务是装载class文件并且执行其中的字节码。Java VM包含一个类装载器(class loader),它可以从程序和API装载class文件;而Java API的类只在程序执行中需要时才会被装载。
    Java字节码由执行引擎来执行。而不同的Java VM中,其执行引擎的实现可能各不相同。最简单的执行引擎不是一次性解释字节码,而另一种称为“即时编译器(just-in-time compiler)”的执行引擎执行速度更快,但要消耗更多的内存资源。即时编译模式下,第一次被执行的字节码会被编译成本地机器代码并缓存下来以实现“复用”。第三种执行引擎是所谓的自适应优化器,此种方法中,虚拟机始的时候解释字节码,介是会监视运行中程序的活动,并且记录下使用最频繁的代码。程序运行时,虚拟机只把那些活动最频繁的代码编译成本地代码,而不频繁的代码则仍然保留为字节码由虚拟机解释执行。自适应优化器可以使得Java VM在80%-90%的时间里执行被优化过的本地代码,而只需要编译10%-20%对性能有影响的代码。最后一种虚拟机由硬件芯片构成,它用本地方法执行Java字节码,其执行引擎内嵌于芯片中。

    3 java运行时区域
    由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。

    根据《Java虚拟机规范》的规定,运行时数据区通常包括这几个部分:程序计数器(Program Counter Register)、Java栈(VM Stack)、本地方法栈(Native Method Stack)、方法区(Method Area)、堆(Heap)。

     

    程序计数器,又有叫pc寄存器,既程序当前运行的指针(学过编程的小伙伴会知道,程序在运行时会有指针)
    java栈 java方法的栈,是java方法执行的内存模型。里面包含:局部变量表,操作数栈,指向运行时常量池的引用,方法返回地址,附加信息
    本地方法栈 类似本地方法,不过这里的是本地方法
    堆 程序员唯一可管理的内存区域,储存对象
    方法区 被线程共享的区域,在方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。还有一项重要的区域。它是每一个类或接口的常量池的运行时表示形式,在类和接口被加载到JVM后,对应的运行时常量池就被创建出来。GC的垃圾回收(新生代,老年代)就是在这

    3 tomcat的介绍
    tomcat 就是java ee的一个不完全实现。
    在第一次调用之后,JSP会被编译成一个servlet类,在后续的操作中则可以直接使用此类,从而避免了对每一次调用的都要重新分析和编译。
    因此,类似servlet,JSP的执行需要在container中完成。JSP的container跟servlet的container基本相同,
    但在JSP执行之前,需要一些额外的步骤如与servlet代码建立会话等。
    Tomcat包含了一个叫做Catalina的Servlet container(执行servlet和编译过的JSP)和一个JSP编译器(Jasper编译器)。
    事实上,一个包含了JSP编译器和Servlet容器的应用程序组合通过被称作Web容器。
    JSP和Servlet的最大区别在于,Servlet通常需要事先编译好,而JSP则并非必须事先编译。
    这意味着Servlet通常放置于私有资源区域,而JSP则通常以嵌入代码的方式包含于HTML页面文件中,这些HTML文件通常放置在公开资源区域。
    MVC架构:
    Controller,Model和View各自独立,一个流行的开源实现是Apache Structs框架;目今,设计优良的Web应用程序通常用相就的技术实现相应的功能,比如:
    1)、Servlet用于实现应用逻辑;
    2)、JSP用于内容展示;
    3)、标签库和JSP扩展语言用于替换在JSP内部嵌入Java代码,进而降低了HTML维护的复杂度;
    4)、MVC框架用于实现展示和应用逻辑的分离;

    对于一个Web应用程序而言,其通常由Servlets、JSP和其它文件等共同组成。这些文件通常被打包成WAR(Web Application Archive)格式,并以.war作为打包后的文件扩展名。而Servlet规范则定义了在WAR内部组织这些文件的标准目录结构。其目录和功用如下:
    / Web应用程序的根目录,所有可被公开访问的文件均放置于此处,如HTML、JSP和图片文件等;
    /WEB-INF 此目录为私有资源目录,其内部的所有文件和子目录均不能被公开访问;包含着此Web应用程序的配置文件web.xml(程序结构描述符文件)通常放置于此目录;
    /WEB-INF/classes 当前Web应用程序的类文件的存在目录;
    /WEB-INF/lib 可被打包为JAR格式的类文件通常放置于此目录;

     

  • 相关阅读:
    PAT (Advanced Level) Practice 1071 Speech Patterns (25分)
    PAT (Advanced Level) Practice 1070 Mooncake (25分)
    PAT (Advanced Level) Practice 1069 The Black Hole of Numbers (20分)
    PAT (Advanced Level) Practice 1074 Reversing Linked List (25分)
    PAT (Advanced Level) Practice 1073 Scientific Notation (20分)
    第一次冲刺个人总结01
    构建之法阅读笔记01
    人月神话阅读笔记01
    四则运算2
    学习进度条(软件工程概论1-8周)
  • 原文地址:https://www.cnblogs.com/koushuige/p/9353340.html
Copyright © 2011-2022 走看看