JSP(JavaServer Pages)是由Sun Microsystems發起,多家公司建立的動態網頁技術標準。JSP技術有點類似於ASP技術。它將Java程序段(Scriptlet)和JSP標簽(tag)插入到傳統的網頁HTML文件(*。htm,*。html)來形成JSP文件(*。jsp)。
用JSP開發的Web應用是跨平臺的,即可以在Linux等操作系統下運行。
JSP技術使用Java編程語言編寫類似XML的標簽和scriptlets,封裝生成動態網頁的處理邏輯。Web頁面還可以通過標記和scriptlets訪問服務器上現有資源的應用程序邏輯。JSP將網頁邏輯從網頁設計和顯示中分離出來,支持可重用的基於組件的設計,使得基於Web的應用程序的開發變得快速而簡單。
當Web服務器滿足訪問JSP頁面的請求時,它首先執行程序段,然後將執行結果連同JSP文件中的HTML代碼壹起返回給客戶端。插入的Java程序段可以操作數據庫,重定向網頁等。,從而實現構建動態網頁所需的功能。
JSP和Java Servlet壹樣,是在服務器端執行的,通常會向客戶端返回壹個HTML文本,所以客戶端只要有瀏覽器就可以瀏覽。
JSP的1.0規範最終版本於1999年9月推出,2月推出1.1規範。目前JSP1.2規範比較新,JSP2.0規範的草案也已經發布。
JSP頁面由HTML代碼和嵌入的Java代碼組成。服務器在客戶端請求頁面後處理這些Java代碼,然後將生成的HTML頁面返回給客戶端的瀏覽器。Java Servlet是JSP的技術基礎,大型Web應用的開發需要Java Servlet和JSP的配合才能完成。JSP具有Java技術的所有特性,如簡單易用、完全面向對象、平臺無關、安全可靠、主要面向互聯網等。
JSP技術的優勢
(1)寫壹次,到處跑。這方面Java比PHP好,除了系統之外代碼不需要改。
(2)系統的多平臺支持。基本上可以在所有平臺的任何環境下開發,在任何環境下部署,在任何環境下擴展。與ASP/PHP相比,局限性顯而易見。
(3)擴展性強。從壹個小的Jar文件運行Servlet/JSP,到多個服務器的集群和負載均衡,到多個應用程序的事務處理和消息處理,從壹臺服務器到無數臺服務器,Java顯示出了強大的生命力。
(4)多樣化和強大的開發工具支持。這和ASP很像。Java有很多優秀的開發工具,而且很多都是免費的,很多都可以在各種平臺下流暢運行。
JSP技術的弱點
(1)和ASP壹樣,Java的壹些優點是它的致命問題。正是因為跨平臺的功能和極致的可擴展性,大大增加了產品的復雜度。
(Java的運行速度是由類內存常駐來完成的,所以它在某些情況下使用的內存相對於用戶數量來說確實是“性價比最低”的。另壹方面,它也需要硬盤空間來存儲壹系列。java文件,。類文件和相應的版本文件。
JSP的六個內置對象:
請求、響應、輸出、會話、應用程序、配置、頁面上下文、頁面、異常。
壹、請求對象:
該對象封裝了用戶提交的信息,通過調用該對象對應的方法可以獲得封裝的信息,即使用該對象可以獲得用戶提交的信息。
二。響應對象:
動態響應客戶的請求,並向客戶端發送數據。
三。。會話對象
1.什麽是Session:Session對象是JSP內置對象,在加載第壹個JSP頁面完成會話管理時自動創建。
當客戶端打開瀏覽器並連接到服務器時,會話開始,當客戶端關閉瀏覽器並離開服務器時,會話結束。當客戶訪問服務器時,它可能會在服務器的幾個頁面之間重復連接,並重復刷新壹個頁面。服務器應該知道它在某種程度上是同壹個客戶,這需要會話對象。
2.session對象的ID:當客戶端第壹次訪問服務器上的JSP頁面時,JSP引擎會生成壹個session對象,同時分配壹個String類型的ID號。同時,JSP引擎將這個ID號發送給客戶端,並存儲在壹個Cookie中,這樣就在會話對象和客戶端之間建立了壹對壹的關系。當客戶再次訪問連接到服務器的其他頁面時,不會給客戶分配新的會話對象。直到客戶關閉瀏覽器,客戶在服務器端的會話對象才會被取消,與客戶的會話對應關系也就消失了。當客戶端重新打開瀏覽器並連接到服務器時,服務器會為客戶端創建壹個新的會話對象。
四。。應用對象
1.什麽是應用程序:
這個應用程序對象是在服務器啟動後生成的。當客戶在所訪問網站的頁面之間瀏覽時,這個應用程序對象是相同的,直到服務器關閉。但與session不同的是,所有客戶的應用對象都是壹樣的,即所有客戶* * *都享受這個內置的應用對象。
2.2.application對象常用的方法:
(1)public void set attribute(string key,Object obj):將參數Object指定的對象obj添加到application對象中,並為添加的對象指定index關鍵字。
(2)public object get attribute(string key):獲取application對象中帶有關鍵字的對象。
動詞 (verb的縮寫)。外部對象
out對象是用於向客戶端輸出數據的輸出流。out對象用於輸出各種數據。
不及物動詞。餅幹
1.什麽是餅幹?
Cookie是Web服務器保存在用戶硬盤上的壹段文本。Cookie允許網站將信息保存在用戶計算機上並在以後檢索。
例如,網站可以為每個訪問者生成壹個唯壹的ID,然後以Cookie文件的形式存儲在每個用戶的機器上。
如果您使用IE瀏覽器訪問網絡,您將看到所有Cookie保存在您的硬盤上。它們最常見的存儲位置是:c:\windows\cookies(在Window2000中是C:\ Documents and Settings \ your user name \ Cookies)。
Cookie以關鍵字key= value的格式保存記錄。
2.創建壹個Cookie對象,並調用Cookie對象的構造函數來創建壹個Cookie。Cookie對象的構造函數有兩個字符串參數:Cookie名稱和Cookie值。
Cookie c =新Cookie(“用戶名”、“約翰”);
3.如果您想在JSP中將打包的Cookie對象發送給客戶機,請使用add Cookie()response方法。
格式:response.addCookie(c)
4.讀取保存到客戶端的Cookie,使用請求對象的getCookies()方法,在執行過程中以數組的形式排列來自客戶端的所有Cookie對象。如果要取出符合自己需求的cookie對象,需要循環比較數組中每個對象的關鍵字。
JSP動態網站開發技術
早期的動態網站開發技術使用CGI-BIN接口。開發人員編寫與界面和基於web的應用程序相關的單獨程序,後者通過Web服務器調用前者。這種開發技術有壹個嚴重的可伸縮性問題——每個新的CGI程序都需要服務器上的壹個新進程。如果多個用戶同時訪問程序,這些進程將耗盡Web服務器的所有可用資源,直到它崩潰。
為了克服這壹缺點,微軟公司提出了動態服務器頁面(Active Server Pages,ASP)技術,通過使用插件和API來簡化Web應用程序的開發。與CGI相比,ASP具有包含HTML標簽、直接訪問數據庫、使用無限擴展的ActiveX控件等優點,因此在編程上更加靈活。但是這種技術基本局限於微軟的操作系統平臺,主要工作環境是微軟的IIS應用結構,所以ASP技術並不能輕松實現跨平臺的Web服務器程序開發。
超文本預處理器(Hypertext Preprocessor),即PHP動態網站開發技術類似於ASP,也是嵌入在HTML文檔中的服務器端腳本語言。其大部分語法與C、Java、Perl等語言相似,並形成了自己獨特的風格。Web程序員可以使用這種語言快速開發動態網頁。PHP可以在大多數Unix平臺上運行,GUN/Linux和微軟Windows平臺。PHP的優點是:安裝容易,學習過程簡單;數據庫連接方便,兼容性強;擴展性強;可以做面向對象編程之類的。但是PHP也有壹些弱點,主要是因為它是壹種解釋性語言,不支持多線程結構,平臺和連接的數據庫有限,尤其是在支持的標準方面。對於壹些電子商務應用,PHP並不適合。
還有壹些技術,比如Java Servlets技術,可以很容易的用Java語言編寫交互式的服務器端代碼。Java Servlets是基於Java技術運行在服務器端的程序(不像Applet,它運行在瀏覽器端)。開發人員編寫這樣的Java Servlets來接收來自Web瀏覽器的HTTP請求,動態生成響應(您可能需要查詢數據庫來完成這樣的請求),然後將包含HTML或XML文檔的響應發送給瀏覽器。這種技術對於普通的頁面設計人員來說很難輕易掌握。使用這種方法,整個網頁必須用Java Servlets制作。如果開發人員或Web管理員想要調整頁面顯示,他們必須編輯並重新編譯Java Servlets。
在web服務器、應用服務器、交易系統和開發工具供應商的廣泛支持和合作下,Sun Microsystems Inc .整合和平衡了支持Java編程環境的現有技術和工具(如Java Servlets和JavaBeans ),並產生了壹種開發基於Web的應用程序的新方法——Java Server Pages(JSP)。這種動態網站開發技術主要有以下特點:
可以在任何Web或應用服務器上運行;
分離應用程序的邏輯和頁面顯示;
能夠快速開發和測試;
簡化了開發基於Web的交互式應用程序的過程。
JSP的技術方法
為了快速方便地開發壹個動態網站,JSP在以下幾個方面進行了改進,使之成為快速建立跨平臺動態網站的首選。
1.將內容的生成和顯示分開。
利用JSP技術,網頁開發人員可以用HTML或XML標識設計和格式化最終頁面,並在帶有JSP標識或模板的頁面上生成動態內容(內容根據請求而變化,如請求賬戶信息或特定壹瓶酒的價格等。).生成內容的邏輯封裝在logo和JavaBeans組件中,並捆綁在腳本中,所有這些都在服務器端運行。因為核心邏輯封裝在logos和JavaBeans中,所以Web管理人員和頁面設計人員可以在不影響內容生成的情況下編輯和使用JSP頁面。
在服務器端,JSP引擎解釋JSP標記和腳本,生成請求的內容(例如,通過訪問JavaBeans組件、訪問數據庫或使用JDBC技術包含文件),並將結果以HTML(或XML)頁面的形式發送回瀏覽器。這不僅有助於作者保護自己的代碼,還確保了任何基於HTML的Web瀏覽器的完全可用性。
2.可重用組件
大多數JSP頁面依靠可重用的、跨平臺的組件(JavaBeans或Enterprise JavaBeans組件)來執行應用程序所需的復雜處理。開發人員可以共享和交換執行常見操作的組件,或者將這些組件提供給更多的用戶和客戶群。基於組件的方法加速了整個開發過程,並使各種組織能夠平衡他們現有的技能和開發工作,以優化結果。
采用標誌
網頁開發人員並不都是熟悉腳本語言的程序員。JSP技術在易於使用的JSP相關的XML標記中封裝了許多動態內容生成所需的函數。標準的JSP logo可以訪問和實例化JavaBeans組件,設置或檢索組件屬性,下載Applet,執行其他方式更難編碼和耗時的功能。
4.適應平臺
幾乎所有平臺都支持Java,JSP+JavaBeans幾乎可以穿越所有平臺。從壹個平臺到另壹個平臺,JSP和JavaBeans甚至不需要重新編譯,因為Java字節碼是標準的和平臺無關的。
5.數據庫連接
JDBC是用Java連接數據庫的技術。Java程序通過JDBC驅動程序連接到數據庫,以執行查詢和提取數據等操作。Sun公司還開發了JDBC-ODBC橋,通過它Java程序可以用ODBC驅動程序訪問數據庫。目前大多數數據庫系統都有ODBC驅動,所以Java程序可以訪問Oracle、Sybase、MS SQL Server、MS Access等數據庫。
另外,JSP技術可以通過開發logo庫來進壹步擴展。第三方開發者和其他人可以為常用函數創建自己的標識庫。這使得網頁開發人員能夠使用熟悉的工具和組件來執行特定的功能,如徽標。
JSP技術可以很容易地集成到各種應用程序架構中,以利用現有的工具和技能,並且可以擴展到支持企業級分布式應用程序。作為采用Java技術家族和Java 2(企業版架構)的壹部分,JSP技術可以支持高度復雜的基於Web的應用。
因為JSP頁面的內置腳本語言是基於Java的,並且所有JSP頁面都被編譯成Java Servlets,所以JSP頁面具有Java技術的所有好處,包括健壯的存儲管理和安全性。JSP作為Java平臺的壹部分,具有Java編程語言“壹次編寫,隨處運行”的特點。
JSP的應用模型
使用JSP技術,動態信息由JSP頁面表示,JSP頁面由安裝在使用JSP的Web服務器或應用服務器上的JSP引擎執行。JSP引擎接受客戶機對JSP頁面的請求,並生成JSP頁面作為對客戶機的響應。
JSP頁面通常被編譯成Java Servlets,這是壹個標準的Java擴展。頁面開發人員可以訪問所有Java應用程序環境,以利用Java技術的可擴展性和可移植性。當JSP頁面第壹次被調用時,如果它還不存在,它將被編譯成壹個Java Servlets類並存儲在服務器的內存中。這使得服務器在下壹次調用頁面時響應速度非常快(避免了CGI-BIN為每個HTTP請求生成壹個新進程的問題)。
JSP頁面可以包含在各種不同的應用程序架構或模型中,並且可以在由不同協議、組件和格式組成的聯合體中使用。基於JSP的動態信息發布技術是壹種開放的、可擴展的建立動態網頁的標準。無論使用什麽創建工具,開發人員都可以使用JSP頁面來創建運行在不同Web應用服務器上的可移植Web應用程序。