官术网_书友最值得收藏!

1.2 JSP基礎知識

JSP基礎知識

JSP作為Java Web開發體系中的核心技術,學習者除了要了解以上Web相關的基礎知識,還應該對JSP依賴的先行知識有所了解,如Java語言、Servlet技術(Servlet在后面章節中有詳細講解)、JSP所開發的應用程序體系架構。下面針對這些內容進行介紹。

1.Java

Java是Sun公司(已被Oracle公司收購)于1995年推出的面向對象的編程語言,一經推出,便吸引了全世界的目光,得到了業界的廣泛應用和一致好評。Java語言適用于Internet環境,Java Web開發體系已經成為開發Internet應用的主要技術。Java具有簡單、面向對象、分布式、健壯、安全、平臺獨立與可移植性強、支持多線程、動態性好等特點。Java除了用于開發Web應用程序,還可以編寫桌面應用程序、分布式系統和嵌入式系統應用程序等。

Java是一門完全面向對象的編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++中難以理解的多繼承、指針等概念,因此,Java語言具有功能強大的特點,同時還具有簡單易用的特征。Java語言作為面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。

Java的開發和運行依賴開發環境JDK(Java Development Kit),JDK也稱為Java開發包或Java開發工具。JDK是整個Java的核心,包括了Java運行環境(Java Runtime Envirnment,JRE)、一些Java工具和Java的核心類庫(Java API)。

2.Servlet

Servlet是先于JSP出現的Java Web開發技術。Servlet是一種服務器端的Java應用程序,具有獨立于平臺和協議的特性,可以生成動態的Web頁面。它擔當客戶請求(Web瀏覽器或其他HTTP客戶程序)與服務器響應(HTTP服務器上的數據庫或應用程序)的中間層。Servlet是位于Web 服務器內部的服務器端的 Java 應用程序,與傳統的從命令行啟動的 Java 應用程序不同,Servlet 由 Web服務器進行加載,該Web服務器必須包含支持Servlet的Java虛擬機。

Servlet與傳統的CGI比較,具有使用方便、功能強大、可移植性好、架構設計先進等優點。但是Servlet在頁面展現方面輸出HTML語句還是采用了傳統的 CGI 方式,需要在Java代碼中一句句輸出,編寫和修改HTML非常不方便。后來便出現了基于Java語言的服務器頁面JSP,大大簡化了頁面的編寫和維護的過程。

3.JSP

JSP全稱為Java Server Pages,即Java服務器頁面,是一種實現普通靜態HTML和動態HTML混合編碼的技術,JSP 并沒有增加任何本質上不能用Servlet實現的功能。但是,在JSP中編寫靜態HTML 更加方便,不必再用println語句來輸出每一行HTML代碼。更重要的是,借助內容和外觀的分離,頁面制作中不同性質的任務可以方便地分開。例如,由頁面設計者進行HTML設計,同時留出供Servlet程序員插入動態內容的空間。

JSP是基于Java的技術,用于創建可支持跨平臺及Web服務器的動態網頁。JSP頁面代碼一般由普通的HTML語句和特殊的基于Java語言的嵌入標記組成,所以它具有Web和Java功能的雙重特性。

JSP 1.0規范是1999年9月推出的,同年12月又推出了1.1規范。此后,JSP又經歷了幾個版本,本書介紹的技術是基于JSP 2.0規范的。

JSP是一種動態網頁技術標準,可以分離網頁中的動態部分和靜態的HTML。用戶可以使用平常得心應手的工具按照平常的方式來書寫HTML語句,然后將動態部分用特殊的標記嵌入即可,這些標記常常以“<%”開始并以“%>”結束。

同HTML以及ASP等語言相比,JSP雖然在表現形式上同它們的差別并不大,但是它卻提供了一種更為簡便、有效的動態網頁編寫手段,而且,JSP 程序同 Java 語言有著天然的聯系,因此在眾多基于Web的架構中,都可以看到JSP程序。

JSP程序增強了Web頁面程序的獨立性、兼容性和可重用性,與傳統的ASP、PHP網絡編程語言相比,它具有以下特點。

JSP的執行效率比較高。由于每個基于JSP的頁面都被Java虛擬機解析成一個Servlet,服務器通過網絡接收到來自客戶端 HTTP 的請求后,Java 虛擬機解析產生的 Servlet 將開啟一個“線程(Thread)”來提供服務,并在服務處理結束后自動銷毀這個線程。這樣的處理方式將大大提高系統的利用率,并能有效地降低系統的負載。

編寫簡單。JSP是基于Java語言和HTML元素的一項技術,因此,只要熟悉Java和HTML的程序員都可以開發JSP。

跨平臺。JSP運行在Java虛擬機之上,因此,它可以借助于Java本身的跨平臺能力,在任何支持Java的平臺和操作系統上運行。

JSP可以嵌套在HTML或XML網頁中。這樣不僅可以降低程序員開發頁面顯示邏輯效果的工作量,更能提供一種比較輕便的方式來同其他Web程序交互。

4.應用程序體系結構

目前,在應用開發領域中主要分為兩種應用程序體系結構:一種是 C/S(客戶端/服務器)體系結構,另一種是B/S(瀏覽器/服務器)體系結構。基于Web的動態網站開發技術(例如JSP)開發的應用程序都是采用B/S體系結構。下面對這兩種體系結構進行介紹。

(1)C/S(客戶端/服務器)體系結構

C/S結構把數據庫內容放在遠程的服務器上,而在客戶機上安裝相應軟件。C/S軟件一般采用兩層結構,由兩部分構成:前端是客戶機,即用戶界面結合了表示與業務邏輯,接受用戶的請求,并向數據庫服務提出請求,通常是一臺個人計算機;后端是服務器,即數據管理將數據提交給客戶端,客戶端將數據進行計算并將結果呈現給用戶。

C/S體系結構具有強大的數據操作和事務處理能力,模型思想簡單,易于人們理解和接受,隨著企業規模的日益擴大,軟件的復雜程度不斷提高,傳統的二層 C/S 結構存在著很多局限,因此,三層C/S體系結構應運而生,其結構如圖1-1所示。在三層C/S體系結構中,增加了一個應用服務器,可以將整個應用邏輯駐留在應用服務器上,只有表示層存在于客戶機上。這種結構被稱為“瘦客戶機”。三層C/S體系結構將應用功能分成表示層、功能層和數據層。

表示層是應用的用戶接口部分,擔負著用戶與應用的對話功能,用于檢查用戶從鍵盤等輸入的數據,顯示應用輸出的數據。功能層相當于應用的本體,是將具體的業務處理邏輯編入程序中。而數據層就是數據庫管理系統,負責管理對數據庫數據的讀寫。在三層 C/S 體系結構中,中間件是最重要的構件。所謂中間件,就是一個用戶 API 定義的軟件層,是具有強大通信能力和良好可擴展性的分布式軟件管理框架。其功能是在客戶機和服務器或服務器和服務器之間傳送數據,實現客戶機群和服務器群之間的通信。

(2)B/S(瀏覽器/服務器)體系結構

B/S 結構,就是只安裝維護一個服務器,而客戶端采用瀏覽器運行軟件。該結構是隨著 Internet技術的興起,對C/S結構的一種變化和改進。主要利用了不斷成熟的WWW瀏覽器技術,結合多種Script語言和ActiveX技術,是一種全新的軟件系統構造技術。JSP、Servlet技術開發的應用程序都是B/S結構。采用B/S結構的計算機應用系統的基本框架如圖1-2所示。

圖1-1 三層C/S結構示意圖

圖1-2 B/S模式結構

B/S 三層體系結構采用三層客戶/服務器結構,在數據管理層和用戶界面層增加了一層結構(即中間件),使整個體系結構成為三層。三層結構是伴隨著中間件技術的成熟而興起的,核心概念是利用中間層將應用分為表示層、業務邏輯層和數據存儲層三個不同的處理層次。三個層次是從邏輯上劃分的,具體的物理分法可以有多種組合。中間件作為構造三層結構應用系統的基礎平臺,提供了以下主要功能:負責客戶機與服務器、服務器與服務器間的連接和通信;實現應用與數據庫的高效連接;提供一個三層結構應用的開發、運行、部署和管理的平臺。這種三層結構在層與層之間相互獨立,任何一層的改變不會影響其他層的功能。

主站蜘蛛池模板: 建昌县| 长乐市| 宁陕县| 巴马| 怀远县| 资中县| 塘沽区| 扬中市| 广德县| 方城县| 安岳县| 清原| 明星| 阿城市| 偃师市| 大渡口区| 雅江县| 平山县| 安西县| 潼关县| 墨玉县| 大竹县| 临沂市| 陇南市| 赫章县| 宁陕县| 咸丰县| 建宁县| 杭锦旗| 高邮市| 孝义市| 扶余县| 长子县| 峨山| 旺苍县| 金秀| 瓦房店市| 凯里市| 鄂州市| 沈阳市| 涪陵区|