zoukankan      html  css  js  c++  java
  • JAVA一些基础概念

    Java

     

    (计算机编程语言)

     
    Java是一门面向对象编程语言,不仅吸收了C++语言的各种长处,还摒弃了C++里难以理解的多继承指针等概念。因此Java语言具有功能强大和简单易用两个特征。

    Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,同意程序猿以优雅的思维方式进行复杂的编程[1]  。

    Java具有简单性、面向对象、分布式健壮性安全性、平台独立与可移植性、多线程、动态性等特点[2]  。Java能够编写桌面应用程序Web应用程序分布式系统嵌入式系统应用程序等[3]  。

    工作原理



    由四方面组成:
    (1)Java编程语言
    (2)Java类文件格式
    (3)Java虚拟机
    (4)Java应用程序接口[21] 
    当编辑并执行一个Java程序时。须要同一时候涉及到这四种方面。使用文字编辑软件(比如记事本写字板UltraEdit等)或集成开发环境EclipseMyEclipse等)在Java源文件里定义不同的类[22]  ,通过调用类(这些类实现了Java API)中的方法来訪问资源系统,把源文件编译生成一种二进制中间码。存储在class文件里,然后再通过执行与操作系统平台环境相相应的Java虚拟机来执行class文件,执行编译产生的字节码,调用class文件里实现的方法来满足程序的Java API调用[6]  

    sdk

     

    (软件开发工具包)

     
    软件开发工具包(外语首字母缩写:SDK、外语全称:Software Development Kit一般都是一些软件project师为特定的软件包软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。
    软件开发工具包含广义上指辅助开发某一类软件的相关文档、范例和工具的集合
    软件开发工具包是一些被软件project师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合。一般而言SDK即开发Windows平台下的应用程序所使用的SDK。它能够简单的为某个程序设计语言提供应用程序接口API的一些文件,但也可能包含能与某种嵌入式系统通讯的复杂的硬件。一般的工具包含用于调试和其它用途的有用工具。SDK 还常常包含演示样例代码、支持性的技术注解或者其它的为基本參考资料澄清疑点的支持文档。
    为了鼓舞开发人员使用其系统或者语言,很多 SDK 是免费提供的。软件project师通常从目标系统开发人员那里获得软件开发包,也能够直接从互联网下载。有时也被作为营销手段

    比如,营销公司会免费提供构件SDK 以鼓舞人们使用它,从而会吸引很多其它人因为能免费为其编程而购买其构件。

    SDK 可能附带了使其不能在不兼容的许可证下开发软件的许可证。比如产品供应商提供一个专有的SDK可能与自由软件开发抵触。GPL能使SDK与专有软件开发近乎不兼容。LGPL下的SDK则没有这个问题。

    API

    API(Application Programming Interface,应用编程接口)事实上就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 API 而使操作系统去运行应用程序的命令(动作)。事实上早在DOS时代就有 API 的概念,仅仅只是那个时候的 API 是以中断调用的形式(INT 21h)提供的。在 DOS 下跑的应用程序都直接或间接的通过中断调用来使用操作系统功能,比方将 AH 置为 30h后调用INT 21h就能够得到DOS 操作系统的版本。

    而在 Windows 中。系统 API 是以函数调用的方式提供的。

    相同是取得操作系统的版本。在 Windows 中你所要做的就是调用 GetVersionEx() 函数。

    能够这么说,DOSAPI 是“Thinking in汇编语言”的,而 Windows API 则是“Thinking in 高级语言”的。
    DOSAPI是系统程序的一部分。他们与系统一同被加载内存而且能够通过中断矢量表找到他们的入口,那么 什么是Windows API 呢?要说明确这个问题就不得不引入我们以下要介绍得这个概念——DLL。

    DLL

    DLL,即 Dynamic Link Library(动态链接库)。

    在windows环境下含有大量 .dll格式的文件。这些文件就是动态链接库文件。事实上也是一种可运行文件格式。跟 .exe 文件不同的是,.dll文件不能直接运行。他们通常由 .exe 在运行时装入,内含有一些资源以及可运行代码等。

    事实上 Windows 的三大模块就是以DLL的形式提供的(Kernel32.dllUser32.dllGDI32.dll),里面就含有了 API函数的运行代码。

    为了使用 DLL 中的 API 函数。 必需要有 API 函数的声明(.H)和其导入库(.LIB),导入库能够先这样理解:导入库是为了在 DLL 中找到 API 的入口点而使用的。

    为了使用 API 函数。我们就要有跟 API 所相应的 .H 和 .LIB 文件。而 SDK 正是提供了一整套开发 Windows 应用程序所需的相关文件、范例和工具的“工具包”。
    SDK 包括了使用 API 的必需资料,所以人们也常把仅使用 API 来编写 Windows 应用程序的开发方式叫做“SDK编程”。

    而API和 SDK 是开发Windows应用程序所必需的东西,所以其他编程框架和类库都是建立在它们之上的,比方VCL 和MFC,尽管他们比起“SDK 编程”来有着更高的抽象度,但这丝毫最好还是碍我们在须要的时候随时直接调用 API 函数 。


    jdk

     

    (SunMicrosystems针对Java开发员的产品)

     
    JDK是 Java 语言的软件开发工具包。主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心。它包括了JAVA的执行环境,JAVA工具和JAVA基础的类库。

    JDK(Java Development Kit)称为Java开发包或Java开发工具。是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心。包含了Java执行环境(Java Runtime Envirnment),一些Java工具和Java的核心类库(Java API)。任何Java应用server实质都是内置了某个版本号的JDK。主流的JDK是Sun公司公布的JDK,除了Sun之外,还有非常多公司和组织都开发了自己的JDK,比如。IBM公司开发的JDK。BEA公司的Jrocket。还有GNU组织开发的JDK[13]  。
    JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。
    SE(J2SE),standard edition。标准版,是我们通经常使用的一个版本号,从JDK 5.0開始,改名为Java SE。

    EE(J2EE),enterprise edition。企业版,使用这样的JDK开发J2EE应用程序,从JDK 5.0開始。改名为Java EE。
    ME(J2ME),micro edition。主要用于移动设备、嵌入式设备上的java应用程序,从JDK 5.0開始,改名为Java ME。

    没有JDK的话。无法编译Java程序,假设想仅仅执行Java程序。要确保已安装对应的JRE。

    组成

    编辑
    JDK包括的基本组件包括:
    javac – 编译器,将源程序转成字节码
    jar – 打包工具,将相关的类文件打包成一个文件
    javadoc – 文档生成器。从源代码凝视中提取文档
    jdb – debugger,查错工具
    java – 执行编译后的java程序(.class后缀的)
    appletviewer:小程序浏览器,一种运行HTML文件上的Java小程序的Java浏览器。

    Javah:产生能够调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
    Javap:Java反汇编器,显示编译类文件里的可訪问功能和数据,同一时候显示字节代码含义。
    Jconsole: Java进行系统调试和监控的工具

    经常使用的包

    编辑
    java.lang: 这个是系统的基础类。比方String等都是这里面的,这个包是唯一一个能够不用引入(import)就能够使用的包。
    java.io: 这里面是全部输入输出有关的类,比方文件操作等。

    java.nio:为了完好io包中的功能,提高io包中性能而写的一个新包 ,比如NIO非阻塞应用
    java.net: 这里面是与网络有关的类。比方URL,URLConnection等。
    java.util: 这个是系统辅助类,特别是集合类Collection,List,Map等。
    java.sql: 这个是数据库操作的类,Connection, Statement,ResultSet等。
    javax.servlet:这个是JSP,Servlet等使用到的类。


    JRE

     
    JRE(Java Runtime Environment,Java执行环境)。执行JAVA程序所必须的环境的集合,包括JVM标准实现及Java核心类库。
    另外,能够把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(JAVA Runtime Environment)JRE是支持Java程序执行的标准环境[14]  。

    JRE是个执行环境,JDK是个开发环境。因此写Java程序的时候须要JDK,而执行Java程序的时候就须要JRE。而JDK里面已经包括了JRE,因此仅仅要安装了JDK,就能够编辑Java程序,也能够正常执行Java程序。

    但因为JDK包括了很多与执行无关的内容,占用的空间较大。因此执行普通的Java程序无须安装JDK。而仅仅须要安装JRE就可以[15]  。

    JRE为Java Runtime Environment的简称,Java Runtime Environment(包含Java Plug-in)是Sun的产品,包含两部分:Java Runtime Environment和Java Plug-in。JavaRuntimeEnvironment(JRE)是能够在其上执行、測试和传输应用程序的Java平台。它包含Java虚拟机(jvm)、Java核心类库和支持文件。

    它不包含开发工具(JDK)--编译器、调试器和其他工具。JRE须要辅助软件--Java Plug-in--以便在浏览器中执行applet

    Java Plug-in软件同意Java Applet和JavaBean组件在使用Sun的Java Runtime Environment(JRE)的浏览器中执行,而不是在使用缺省的Java执行环境的浏览器中执行。Java Plug-in可用于Netscape Navigator和Microsoft Internet Explorer。

    J2RE是Java2 Runtime Environment。即Java执行环境,仅仅是强调其匹配Java2平台,有时简称JRE

    假设你仅仅须要执行Java程序或Applet,下载并安装它就可以。假设你要自行开发 Java软件,请下载JDK(JRE和JDK的差别)。JDK中附带有JRE。注意因为Microsoft对Java的支持不全然,请不要使用IE自带的虚拟机来执行 Applet,务必安装一个JRE或JDK。

    接着在PATH路径中找JRE
    注冊表HKEY_LOCAL_MACHINESOFTWAREJavaSoftJava Runtime Environment 查看CurrentVersion的键值指向哪个JRE
    最经常使用的是在PATH路径中找JRE,普通情况下,自己的程序执行之前都会先在批处理文件里面暂时设置PATH。把自己用的JRE放到PATH路径最前面,所以肯定会执行自己带的JRE,不会造成版本号混乱。

    JVM

     
    JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范。它是一个虚构出来的计算机。是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
    Java语言的一个很重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。

    一般的高级语言假设要在不同的平台上执行。至少须要编译成不同的目标代码

    而引入Java语言虚拟机后,Java语言在不同平台上执行时不须要又一次编译。

    Java语言使用Java虚拟机屏蔽了与详细平台相关的信息。使得Java语言编译程序仅仅需生成在Java虚拟机上执行的目标代码(字节码),就行在多种平台上不加改动地执行。

    Java虚拟机在执行字节码时。把字节码解释成详细平台上的机器指令执行。这就是Java的可以“一次编译。到处执行”的原因。

    规格

    编辑
    JVM的设计目标是提供一个基于抽象规格描写叙述的计算机模型。为解释程序开发者提供非常好的灵活性,同一时候也确保Java代码可在符合该规范的不论什么系统上执行。JVM对事实上现的某些方面给出了详细的定义,特别是对Java可执行代码。即字节码(Bytecode)的格式给出了明白的规格。

    这一规格包含操作码操作数的语法和数值、标识符的数值表示方式、以及Java类文件里的Java对象、常量缓冲池在JVM的存储映象。

    这些定义为JVM解释器开发者提供了所需的信息和开发环境。

    Java的设计者希望给开发者以随心所欲使用Java的自由。

    JVM定义了控制Java代码解释运行和详细实现的五种规格,它们是:

    原理

    编辑
    JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。

    它是一种基于下层的操作系统和硬件平台并利用软件方法来实现的抽象的计算机。能够在上面运行java的字节码程序。

    java编译器仅仅需面向JVM,生成JVM能理解的代码或字节码文件。Java源文件经编译器,编译成字节码程序。通过JVM将每一条指令翻译成不同平台机器码。通过特定平台执行。

    JVM运行程序的过程 :
    I.载入.class文件
    II.管理并分配内存
    III.运行垃圾收集
    JRE(java执行时环境)包括JVM的java程序的执行环境 [1] 
    JVM是Java程序执行的容器,可是他同一时候也是操作系统的一个进程,因此他也有他自己的执行的生命周期,也有自己的代码和数据空间。

    JVM在整个jdk中处于最底层,负责与操作系统的交互,用来屏蔽操作系统环境,提供一个完整的Java执行环境,因此也就虚拟计算机.操作系统装入JVM是通过jdk中Java.exe来完毕,通过以下4步来完毕JVM环境。
    1.创建JVM装载环境和配置
    2.装载JVM.dll
    3.初始化JVM.dll并挂接到JNIENV(JNI调用接口)实例
    4.调用JNIEnv实例装载并处理class类[

    栈结构

    编辑
    作为基于栈结构的计算机。Java栈是JVM存储信息的主要方法。当JVM得到一个Java字节码应用程序后,便为该代码中一个类的每个方法创建一个栈框架,以保存该方法的状态信息。

    每个栈框架包含下面三类信息:

    运行环境
    局部变量用于存储一个类的方法中所用到的局部变量。

    vars寄存器指向该变量表中的第一个局部变量。

    运行环境用于保存解释器对Java字节码进行解释过程中所需的信息。它们是:上次调用的方法、局部变量指针和操作数栈的栈顶和栈底指针。运行环境是一个运行一个方法的控制中心。

    比如:假设解释器要运行iadd(整数加法),首先要从frame寄存器中找到当前运行环境,而后便从运行环境中找到操作数栈,从栈顶弹出两个整数进行加法运算,最后将结果压入栈顶。

    操作数栈用于存储运算所需操作数及运算的结果。

    碎片回收

    编辑
    Java类的实例所需的存储空间是在堆上分配的。解释器详细承担为类实例分配空间的工作。

    解释器在为一个实例分配完存储空间后,便開始记录对该实例所占用的内存区域的使用。一旦对象使用完成,便将其回收到堆中。在Java语言中,除了new语句外没有其它方法为一对象申请和释放内存。对内存进行释放和回收的工作是由Java执行系统承担的。这同意Java执行系统的设计者自己决定碎片回收的方法。

    在SUN公司开发的Java解释器和Hot Java环境中,碎片回收用后台线程的方式来执行。

    这不但为执行系统提供了良好的性能,并且使程序设计人员摆脱了自己控制内存使用的风险。

    存储区

    编辑
    JVM有两类存储区:常量缓冲池和方法区。常量缓冲池用于存储类名称、方法和字段名称以及串常量。方法区则用于存储Java方法的字节码。对于这两种存储区域详细实现方式在JVM规格中没有明白规定。这使得Java应用程序的存储布局必须在执行过程中确定,依赖于详细平台的实现方式。JVM是为Java字节码定义的一种独立于详细平台的规格描写叙述,是Java平台独立性的基础。JVM还存在一些限制和不足。有待于进一步的完好,但不管怎样,JVM的思想是成功的。
    对照分析:假设把Java原程序想象成我们的C++原程序。Java原程序编译后生成的字节码就相当于C++原程序编译后的80x86的机器码(二进制程序文件),JVM虚拟机相当于80x86计算机系统。Java解释器相当于80x86CPU。在80x86CPU上执行的是机器码,在Java解释器上执行的是Java字节码。Java解释器相当于执行Java字节码的“CPU”,但该“CPU”不是通过硬件实现的,而是用软件实现的。Java解释器实际上就是特定的平台下的一个应用程序。仅仅要实现了特定平台下的解释器程序,Java字节码就能通过解释器程序在该平台下执行,这是Java跨平台的根本。当前,并非在全部的平台下都有对应Java解释器程序。这也是Java并不能在全部的平台下都能执行的原因。它仅仅能在已实现了Java解释器程序的平台下执行。

    执行数据

    编辑
    JVM定义了若干个程序执行期间使用的数据区域。这个区域里的一些数据在JVM启动的时候创建,在JVM退出的时候销毁。

    而其它的数据依赖于每个线程,在线程创建时创建。在线程退出时销毁。分别有程序计数器,堆。栈,方法区,执行时常量池。

    [3] 

    体系结构

    编辑
    JVM能够由不同的厂商来实现。

    因为厂商的不同必定导致JVM在实现上的一些不同,然而JVM还是能够实现跨平台的特性。这就要归功于设计JVM时的体系结构了。我们知道,一个JVM实例的行为不光是它自己的事,还涉及到它的子系统、存储区域、数据类型和指令这些部分,它们描写叙述了JVM的一个抽象的内部体系结构,其目的不光规定实现JVM时它内部的体系结构,更重要的是提供了一种方式。用于严格定义实现时的外部行为。每一个JVM都有两种机制。一个是装载具有合适名称的类(类或是接口),叫做类装载子系统。另外的一个负责执行包括在已装载的类或接口中的指令。叫做执行引擎。

    每一个JVM又包括方法区、堆、Java栈、程序计数器和本地方法栈这五个部分,这几个部分和类装载机制与执行引擎机制一起组成的体系结构图为:JVM的每一个实例都有一个它自己的方法域和一个堆,执行于JVM内的全部的线程都共享这些区域;当虚拟机装载类文件的时候。它解析当中的二进制数据所包括的类信息。并把它们放到方法域中;当程序执行的时候。JVM把程序初始化的全部对象置于堆上;而每一个线程创建的时候。都会拥有自己的程序计数器和Java栈,当中程序计数器中的值指向下一条即将被执行的指令,线程的Java栈则存储为该线程调用Java方法的状态。本地方法调用的状态被存储在本地方法栈。该方法栈依赖于详细的实现。



    JSP

     

    (javaserver页面)

     
    JSP全名为Java Server Pages,中文名叫javaserver页面,其根本是一个简化的Servlet设计。它[1]  是由Sun Microsystems公司倡导、很多公司參与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下执行,也能在其它操作系统上执行。
    它实现了Html语法中的java扩展(以 <%, %>形式)。JSP与Servlet一样。是在server端运行的。通常返回给client的就是一个HTML文本,因此client仅仅要有浏览器就能浏览。
    JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets訪问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离。支持可重用的基于组件的设计。使基于Web的应用程序的开发变得迅速和easy。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。
    Java Servlet是JSP的技术基础,并且大型的Web应用程序的开发须要Java Servlet和JSP配合才干完毕。JSP具备了Java技术的简单易用,全然的面向对象。具有平台无关性且安全可靠,主要面向因特网的全部特点。

    servlet

     
    Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的server端程序。

    其主要功能在于交互式地浏览和改动数据。生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口。广义的Servlet是指不论什么实现了这个Servlet接口的类。普通情况下,人们将Servlet理解为后者。

    Servlet执行于支持Java的应用server中。

    从原理上讲,Servlet能够响应不论什么类型的请求,但绝大多数情况下Servlet仅仅用来扩展基于HTTP协议的Webserver。

    最早支持Servlet标准的是JavaSoft的Java Web Server,此后,一些其他的基于Java的Webserver開始支持标准的Servlet。


    Applet

     
    Applet是採用Java编程语言编写的小应用程序。该程序能够包括在 HTML标准通用标记语言的一个应用)页中,与在页中包括图像的方式大致同样。[1] 
    含有Applet的网页的HTML文件代码中部带有<applet> 和</applet>这样一对标记,当支持Java的网络浏览器遇到这对标记时,就将下载对应的小应用程序代码并在本地计算机上运行该Applet。Java Applet 是用Java 语言编写的一些小应用程序,这些程序是直接嵌入到页面中,由支持Java的浏览器(IE 或 Netscape)解释运行能够产生特殊效果的程序。

    它能够大大提高Web页面的交互能力和动态运行能力。包括Applet的网页被称为Java-powered页,能够称其为Java支持的网页。

    当用户訪问这种网页时。Applet被下载到用户的计算机上运行,但前提是用户使用的是支持Java的网络浏览器。因为Applet是在用户的计算机上运行的,所以它的运行速度不受网络带宽或者Modem存取速度的限制。用户能够更好地赞赏网页上Applet产生的多媒体效果。

    在Java Applet中,能够实现图形绘制。字体和颜色控制,动画和声音的插入,人机交互及网络交流等功能。 Applet还提供了名为抽象窗体工具箱(Abstract Window Toolkit,AWT)的窗体环境开发工具。 AWT利用用户计算机的GUI元素,能够建立标准的图形用户界面。如窗体、button、滚动栏等等。眼下,在网络上有许多的Applet范例来生动地展现这些功能,读者能够去调阅对应的网页以观看它们的效果。
    Applet 小应用程序的实现主要依靠java.applet包中的Applet类。与一般的应用程序不同,Applet应用程序必须嵌入在HTML页面中,才干得到解释运行;同一时候Applet能够从Web页面中获得參数,并和Web页面进行交互。
    Applet是一种Java的小程序,它通过使用该Applet的HTML文件。由支持Java的网页浏览器下载执行。也能够通过java开发工具的appletviewer来执行。Applet 程序离不开使用它的HTML文件。这个HTML文件里关于Applet的信息至少应包括下面三点:
    1)字节码文件名称(编译后的Java文件,以.class为后缀)
    2)字节码文件的地址
    3)在网页上显示Applet的方式。
    一个HTML文件添加Applet有关的内容仅仅是使网页更加富有生气。如加入声音、动画等这些吸引人的特征,它并不会改变HTML文件里与Applet无关的元素。

    安全性限制

    为了防止这种问题出现,在缺省的情况下,大多数浏览器在Applet安全方面受到诸多的限制,差点儿不能对系统进行不论什么“读”或“写”的操作:
    1. 不同意Applet訪问本地文件系统
    2. Applet不能运行不论什么本地计算机上的程序
    3. 不同意Applet尝试打开除提供Applet的server之外的不论什么系统的Socket
    4. 不同意Applet訪问username、电子邮件地址等与本地系统有关的信息
    5. 对于Applet而言,Java环境中的某些标准系统属性是仅仅读的
    6. Applet不能创建或装载Applet的机器的网络连接
    7. Applet不能充当网络server,监听或接收来自远程系统的连接请求
    8. 不同意Applet装载动态库或定义本地方法调用
    9. Applet不能操纵不在自己线程组中的不论什么线程
    10. Applet不能关闭JVM。


    servlet

     
    Servlet(Server Applet),全称Java Servlet,未有中文译文。

    是用Java编写的server端程序。

    其主要功能在于交互式地浏览和改动数据。生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指不论什么实现了这个Servlet接口的类,普通情况下。人们将Servlet理解为后者。

    Servlet执行于支持Java的应用server中。

    从原理上讲。Servlet能够响应不论什么类型的请求,但绝大多数情况下Servlet仅仅用来扩展基于HTTP协议的Webserver。

    最早支持Servlet标准的是JavaSoft的Java Web Server,此后,一些其他的基于Java的Webserver開始支持标准的Servlet。
    Servlet 是在server上执行的小程序。这个词是在 Java applet的环境中创造的,Java applet 是一种当作单独文件跟网页一起发送的小程序,它通经常使用于在client执行,结果得到为用户进行运算或者依据用户互作用定位图形等服务。

    server上须要一些程序。经常是依据用户输入訪问数据库的程序。这些一般是使用公共网关接口Common GatewayInterface,CGI)应用程序完毕的。

    然而,在server上执行 Java,这样的程序可使用 Java 编程语言实现。

    在通信量大的server上。JavaServlet 的长处在于它们的运行速度更快于 CGI 程序。各个用户请求被激活成单个程序中的一个线程,而无需创建单独的进程。这意味着server端处理请求的系统开销将明显减少。

    实现过程
    最早支持 Servlet 技术的是 JavaSoft 的 Java Web Server。

    此后。一些其他的基于 Java 的 Web Server 開始支持标准的 Servlet API。Servlet 的主要功能在于交互式地浏览和改动数据,生成动态 Web 内容。这个过程为:

    1) client发送请求至server端;
    2) server将请求信息发送至 Servlet;
    3) Servlet 生成响应内容并将其传给server。响应内容动态生成,通常取决于client的请求。
    4) server将响应返回给client。

    Servlet 看起来像是通常的 Java 程序。Servlet 导入特定的属于 Java Servlet API 的包。由于是对象字节码,可动态地从网络载入,能够说 Servlet 对 Server 就如同 Applet对 Client 一样。可是,因为 Servlet 执行于 Server 中,它们并不须要一个图形用户界面。从这个角度讲,Servlet 也被称为 FacelessObject。
    一个 Servlet 就是 Java 编程语言中的一个类,它被用来扩展server的性能。server上驻留着能够通过“请求-响应”编程模型来訪问的应用程序。尽管 Servlet 能够对不论什么类型的请求产生响应。但通常仅仅用来扩展 Web server的应用程序。


    asp

     

    (动态server页面)

     
    ASP是动态server页面(Active Server Pages)的英文缩写,后来也称为经典ASP,是微软公司开发的代替CGI脚本程序的一种应用,也是微软公司的第一个server側的脚本引擎,可以动态产生Web页面。ASP可以与Web数据库以及其他程序进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是.asp,曾用于各种动态站点中。2002年1月微软公布ASP.NET。用于代替ASP。[1] 
    来源:百度百科

  • 相关阅读:
    一个给照片换底色的牛逼网站
    如何写好ppt
    当你迷茫时,就来看看这个视频!
    IPV6地址检测
    性能测试流程
    pycharm中无法以pytest运行
    Mac charles配置完成后无法上网
    Mac Mysql安装过程的各种坑
    python常用模块之——正则re模块
    Jmeter参数化真香
  • 原文地址:https://www.cnblogs.com/llguanli/p/8309242.html
Copyright © 2011-2022 走看看