程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> jsp、servlet一家親

jsp、servlet一家親

編輯:關於JSP

jsp、servlet一家親


 

上個月寫了《教你servlet入門》,今天來探究一下關於jsp的那些故事。

§ 回顧

1. 什麼是Web應用程序?
2. 什麼是Servlet,和一般Java程序有什麼區別?
3. 什麼是JSP,和Java是什麼關系?
4. JSP和Servlet有哪些異同點?
5. JSP和Servlet的主要用途?

§ 一家親

JSP:Java server Pages,是由sun 公司倡導、許多公司參與一起建立的一種動態網頁技術標准。它在HTML代碼中插入JSP標記及Java程序(Scriptlet)構成JSP界面,擴展名為.JSP。當客戶端請求JSP文件時,web服務器會執行該JSP文件,然後以HTML的格式返回給客戶。而JSP是構建在servlet智商的高層次的動態網頁標准。所以從概念上來講,相對servlet而言,JSP沒有什麼新東西,可以說概念是完全一樣的,只是在實現方式上稍有不同而已。因此,JSP就是servlet的一種變式。

§ JSP的運行方式

.JSP文件會在第一次被調用時進行編譯,比如test.jsp文件會在第一次調用時被編譯為test_jsp.java文件,之後和servlet文件的編譯流程一樣,被編譯為.class文件。從這以後,如果再有客戶需要請求該JSP頁面,JSP頁面不需要重新編譯而是直接執行第一次已經編譯好的.class文件。下面我們通過一張時序圖來進一步了解JSP文件的調用和編譯過程:

\

§ JSP的優點

1.一次編譯,多次、多處運行

JSP的腳本語言是Java語言,它具有Java語言的一切特性,像上圖中顯示的過程那樣,在JSP文件被編譯之後,有客戶再次請求該頁面時,JSP不需要被重新編譯,而是直接執行早已經編譯好的.class文件,因此執行效率會特別高。

2.組件可重用性,平台無關性

具有可重用性和跨平台性的javaBeans和Ejb組件,為JSP程序的開發提供方便,我們可以將復雜的處理程序放到這些組件中,這樣我們通過多次使用這些組件,極大地減少了在JSP頁面中重寫重復的代碼,提高了效率,增強了代碼的重用性。

3.降低耦合度,增加源程序代碼的安全性

使用JSP技術,web頁面開發人員可以使用HTML和xml標識來設計和格式化最終頁面,使用JSP腳本或者標識來生成頁面上的動態內容,生成動態內容的語句一般被封裝在JavaBean、ejb或者JSP腳本段中,這樣頁面的設計人員和頁面的編程人員的工作可以同步進行。並且我們在客戶端通過查看源文件,看不到JSP標識的語句,也看不到在組件中封裝好的代碼,這樣就達到了類似三層的解耦作用,有效保護了源代碼。

§ JSP和servlet的結合使用

由於我們使用servlet處理大量的HTML文本(如拼接表格的HTML語句)時,不僅僅任務量較大,而且不利於後期的維護和擴展,所以我們處理前端界面效果時采用的JSP技術,而對於程序的邏輯控制則使用servlet技術。

\

§ JSP和servlet的區別

JSP技術是servlet技術的發展,所以本質上就是servlet的簡易方式。而兩者最大的不同點在於servlet的應用邏輯是在Java文件中,並且完全從表示層中的HTML裡分離出來。而JSP的情況是將Java和HTML組合成一個擴展名為.JSP的文件。所以在實際應用中,我們采用JSP來生成動態的網頁頁面,采用servlet來控制業務流程也就是所謂的業務邏輯。所以JSP側重於視圖,而servlet注重對邏輯的控制。

 

因此,在web建設中到底使用哪種技術周密詳細的事前規劃,而網站建設又不光是技術的問題,所以我們在學習和對比JSP和servlet的同事更應該注意從中汲取思想的精華,因為技術會過時,而思想卻受用一生。

\

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved