• 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格式的类文件通常放置于此目录;

     

  • 相关阅读:
    bzoj4262
    bzoj3252
    海蜇?海蜇!
    AGC018F
    java数据类型;常量与变量;类型转化;
    java 基础,查看jar包源码,JD-GUI
    性能测试报告
    如何防止http请求数据被篡改
    支付业务,测试遇到请求超时怎么处理;支付业务流程;异步通知和同步通知;
    fiddler使用;
  • 原文地址:https://www.cnblogs.com/koushuige/p/9353340.html
Copyright © 2020-2023  润新知