JAVA一些基礎概念

Java

 

(計算機編程語言)

 
Java是一門 面向對象編程語言,不只吸取了 C++語言的各類長處,還摒棄了C++裏難以理解的 多繼承指針等概念。所以Java語言具備功能強大和簡單易用兩個特徵。

Java語言做爲靜態面向對象編程語言的表明,極好地實現了面向對象理論,贊成程序猿以優雅的思惟方式進行復雜的編程[1]  。html

Java具備簡單性、面向對象、 分佈式健壯性安全性、平臺獨立與可移植性、 多線程、動態性等特色 [2]   。Java可以編寫 桌面應用程序Web應用程序分佈式系統嵌入式系統應用程序等 [3]   。

工做原理



由四方面組成:
(1)Java編程語言
(2)Java類文件格式
(3)Java虛擬機
(4)Java應用程序接口 [21]  
當編輯並執行一個Java程序時。需要同一時候涉及到這四種方面。使用文字編輯軟件 (好比 記事本 寫字板 UltraEdit 等)或集成開發環境 Eclipse MyEclipse等)在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 以鼓舞人們使用它,從而會吸引不少其它人由於能免費爲其編程而購買其構件。java

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 是以函數調用的方式提供的。sql

相同是取得操做系統的版本。在 Windows 中你所要作的就是調用 GetVersionEx() 函數。數據庫

可以這麼說, DOSAPI 是「Thinking in 彙編語言」的,而 Windows API 則是「Thinking in 高級語言」的。
DOS API是系統程序的一部分。他們與系統一同被加載內存並且可以經過 中斷矢量表找到他們的入口,那麼 什麼是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 的入口點而使用的。windows

爲了使用  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_MACHINE\SOFTWARE\JavaSoft\Java 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,中文名叫java server頁面,其根本是一個簡化的 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  Gateway Interface,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]
來源:百度百科
相關文章
相關標籤/搜索