




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、PAGE 10JSP網絡編程從入門到知曉.PAGE 11第1章 初識JSP:.;111第第 章章導讀初識JSP Web運用開發引見 CGI、Servlet創建動態頁面 JSP概述 JSP與ASP、PHP類似技術比較 JSP的優點JSP是Java Server Pages的縮寫,是由Sun Microsystems公司倡導,許多公司參與一同建立的一種動態網頁技術規范,用于輔助對Web懇求的處置。JSP是建立在Java Servlets模型之上的表達層技術,允許將靜態HTML內容與效力器端腳本混合起來生成動態輸出。在每天閱讀的網站中,能夠就有很多是運用JSP對數據進展格式化和顯示的。JSP基于Ja
2、va技術,由類似于HTML的標志、JSP標志tag和Java代碼片組成,可用來創建跨平臺和跨Web效力器的動態網站。本章將讓讀者初步認識JSP,了解基于Java的效力器邏輯處置懇求的開展過程、什么是JSP及其與Servlet的關系,并論述JSP與ASP、PHP等類似技術的比較,JSP的優勢等。1.1 創建Web運用的技術開展過程在講解本章內容之前,先了解一下運用一個閱讀器去訪問一個網站時,后臺所會發生的情況及網站是如何實現懇求和呼應的。圖1.1給讀者展現了一個閱讀器訪問一個Web效力器的整個過程。1用戶在閱讀器上這里以Microsoft Internet Explorer閱讀為例輸入網站的UR
3、L地址,這個地址通知閱讀器要和網絡中的哪臺主機進展聯絡。普通輸入的是主機的域名例如sina,域名獨一對應一個IP地址,一個IP地址又獨一識別一臺聯網的主機。2閱讀器尋覓到指定的主機之后,向Web效力器發出懇求。3Web效力器接納到懇求并作出相應的分析,然后從存儲器中獲取一個采用HTML編碼的Web頁面。Web效力器普通和HTML文件放置在同一個主機上。4效力器把取出的Web頁面前往給發出懇求的閱讀器作為呼應。5閱讀器接納到相應的Web頁面之后,在顯示屏上向用戶顯示這個頁面。圖1.1 閱讀器訪問Web過程閱讀器與Web效力器之間是經過因特網進展會話的,而這種會話是要經過一種稱為HTTPHyper
4、text Transfer Protocol,超文本傳輸協議的規范網絡協議完成的。HTTP是一個懇求/呼應協議。在這個協議的根底上,Web效力器才干和閱讀器經過Web交換數據。HTTP又是建立在TCP/IP協議根底之上的,而TCP/IP那么是將因特網中一切計算機銜接起來的一個協議組。這里并不需求讀者對HTTP協議以及TCP/IP知識有太多的了解,但要求讀者對閱讀器發出懇求以及效力器如何發出呼應的機制和原理有一定的了解,這會對讀者了解JSP有所協助 。1.1.1 傳統Web效力器方式的缺乏傳統的Web運用只提供有限的靜態Web頁面,每個Web頁面的內容是堅持不變的。假設網站需求提供更多的信息,就
5、只能重新編寫HTML頁面并提供鏈接。傳統Web效力器方式存在如下缺乏:不能提供及時的信息。當需求添加新的信息時,必需重新編寫HTML文件。由于HTML頁面是靜態的,并不能根據用戶的需求提供不同的信息包括顯示格式和內容,不能滿足多樣性的需求。正由于靜態頁面存在著這么多的缺乏,因特網軟件工程人員很快就轉向了CGICammon Geteway Interface,公共網關接口,希望CGI能提供動態生勝利能。1.1.2 CGI實現動態生成HTMLCGI是實如今效力器端執行程序的一種方法。運轉程序輸出的是HTML頁面,然后Web效力器再把這個靜態頁面前往給閱讀器作為懇求的呼應。這樣的方式實現了動態生成頁
6、面的效果。詳細的CGI操作方式如圖1.2所示。圖1.2 CGI的操作過程和圖1.1所示的過程一樣,用戶需求在閱讀器中輸入URL地址其實更多情況是用戶單擊HTML頁面上的一個超鏈接,例如httpshouse/jsp/createhtml.cgi,這個URL地址通知閱讀器要去和網絡上域名為shouse對應著一個獨一的IP地址的主機聯絡。和效力器獲得聯絡之后,Web效力器會根據給出的jsp/createhtml.cgi地址來運轉相應的createhtml.cgi程序,并把生成的HTML頁面輸出給Web效力器。Web效力器再運用HTTP協議把生成的HTML頁面前往給閱讀器作為呼應。留意:CGI程序在效
7、力器端執行,并可以和Web效力器在同一個主機上。最流行的CGI言語是Perl和shell腳本,但是也可以運用C、C+以及Java等言語進展編寫。CGI可以訪問存儲數據庫中的數據或者其他系統中的文件,實現動態生成的效果。雖然CGI實現了網站動態性,但是CGI也存在很多的缺乏之處。如下:需求為每個懇求啟動一個操作CGI程序的系統進程。假設懇求非常頻繁,這會帶來很大的開銷。需求為每個懇求加載和運轉一個CGI程序,這也將帶來很大的開銷。需求反復編寫處置網絡協議的代碼及進展編碼,這些任務都是非常耗時的。前面曾經引見過了Java言語可以用來編寫CGI程序。但遺憾的是,運用Java編寫的CGI程序執行效率更
8、加低下。這是由于要執行一個Java編寫的CGI程序,除了首先需求啟動一個系統進程之外,還要在進程中啟動一個JVMJava Virtual Machine,Java虛擬機,然后才干在JVM中執行Java CGI程序讀者應該對Java程序的運轉機制有所了解。為理處理CGI所留下來的問題,產生了Servlet。在1.1.3小節將重點引見Servlet的根本原理。1.1.3 Servlet改良的CGI由前面的引見可以知道,運用Java編寫的CGI程序正是由于需求為每個懇求都要啟動一個系統進程及JVM,這大大降低了執行效率。假設能有方法取消這些開銷,即只需求啟動一個操作系統進程及一個JVM映像,基于Ja
9、va的CGI就能得到很好的改善。Servlet正是基于這樣的想法才產生的。另外,可知Java可以在運轉的時候動態地進展加載,所以可以利用這樣的功能加載新的Java代碼來處置新的懇求。這樣就可以只啟動一次效力器進程,而且只需求加載一次JVM,之后這個JVM再加載另外的類。基于這樣的思想而出現的Servlet執行效率就高得多了。和傳統的CGI程序相比,Servlet有如下幾個優點:只需求啟動一個操作系統進程以及加載一個JVM,大大降低了系統的開銷。假設多個懇求需求做同樣處置的時候,這時只需求加載一個類,這也大大降低了開銷。一切動態加載的類可以實現對網絡協議及懇求解碼的代碼共享,大大降低了任務量。S
10、ervlet可以直接和Web效力器交互,而普通的CGI程序不能。Servlet還可以在各個程序之間共享數據,使得數據庫銜接池之類的功能很容易實現。Sun公司在20世紀90年代末就發布了基于Servlet的Web效力器。為了確保加載的各個類之間不起沖突,曾經建立了一個稱為Java Servlet API運用編程接口的編碼規范。如今根本上一切的效力器都遵照這個編碼規范,所以Servlet有很好的移植性。如今的Web效力器例如Tomcat曾經集成了Servlet容器。Servlet容器擔任管理加載、卸載、重新加載和執行Servlet代碼等操作。下面是一個比較典型的Servlet Java源代碼:pu
11、blic class HelloWorldTest extends HttpServlet public void doTest(HttpServletRequest request,HttpServletResponse reponse) throws IOException,ServletException String msg = 登錄勝利; response.setContentType(text/html); PrintWriter out = response.getWriter(); out.println(); out.println(); out.println(JSP 2.
12、0 Test); out.println(); out.println(); out.println(msg); out.println(); out.println(); 從這段代碼可以看到Servlet反復運用了PrintWriter.println()方法來輸出相應的HTML頁面,以到達動態生成HTML頁面的效果。雖然Servlet改動了傳統CGI程序的缺陷,但是它也有缺乏的地方:Servlet可以建立動態生成的網頁,網頁中可以包含從效力器端的Java對象所獲得的數據。但是Servlet生成網頁的方法是在Java類中嵌入HTML標簽和表達式。也就是說對HTML做一個小小的改動時,都需求修
13、正和重新編譯Servlet源文件,然后重新部署到Servlet容器當中。當設計HTML頁面和編寫Servlet代碼的不是同一個人時,就會使得修正Servlet變得非常費事。JSP的引入就是要處理以上Servlet所存在的問題。在1.2節將重點引見JSP。1.2 JSP簡介Java Server PagesJSP是一種實現普通靜態HTML和動態HTML混合編碼技術,它是Servlet API的一個擴展。由于JSP頁面在編譯成Servlet之前也是可以運用的,所以它具有Servlet的一切優點,包括訪問Java API。又由于JSP是嵌入到Servlet中關于運用程序的普通表達代碼,所以可以把它看
14、成一種“徹底的Servlet。訪問一個JSP網站的過程如圖1.3所示。圖1.3 JSP頁面訪問表示圖Web容器必需包含JSP引擎,它擔任動態地對JSP文件進展檢測和編譯。1.2.1 JSP的優點JSP技術的設計目的是使得構造基于Web的運用程序更加容易和快捷,而這些運用程序可以與各種Web效力器、運用效力器、閱讀器和開發工具很好地共同任務。JSP網頁可以非常容易地與靜態模板結合,包括HTML或XML片段,以及生成動態內容的代碼。它比以上講的Servlet要更加優越。詳細而言,JSP有以下幾個優點:JSP提供一種模塊機制,可以在HTML頁面中嵌入基于Java的邏輯代碼。運用JSP時,再也沒有必要
15、編寫和編譯用Java言語寫的任何代碼。而且對JSP進展修正會很快看到效果,這是由于JSP容器或者稱JSP引擎會自動檢測和重新編譯JSP。JSP的運用大大縮短了效力器端基于Java的CGI開發周期,實現了快速開發的目的。由于JSP標志是內嵌在HTML頁面中的,所以完全可以先讓Web頁面設計者來設計頁面模板。然后再讓Java程序員處置所用的標志以及實現必要的邏輯功能,從而實現圖形和規劃設計任務與運用開發義務的分別后面引見的MVC設計更能表達這一點。許多由CGI程序生成的頁面大部分仍舊是靜態HTML,動態內容只在頁面中有限的幾個部分出現。但是包括Servlet在內的大多數CGI技術及其變種總是經過程
16、序生成整個頁面。JSP使得我們可以分別創建這兩個部分。例如,下面就是一個簡單的JSP頁面:歡迎訪問網上商店歡迎歡迎,要設置賬號信息,請點擊這里頁面的其他內容程序闡明:程序中除了之間的代碼之外都是讀者比較熟習的HTML頁面。這種HTML代碼和腳本程序的很好結合使得動態網站的開發變得非常容易。1.2.2 JSP與ASP和PHP的比較當今創建動態網站的技術不僅有JSP,還有ASP和PHP等。下面是JSP和其他類似或相關技術的一個簡單比較。1JSP和ASPActive Server Pages的簡單比較ASP也是一種Web效力器端開發的技術,利用它可以產生和執行動態的、互動的以及高性能的Web運用程序
17、。1類似點ASP是由Microsoft公司發布的。JSP與ASP技術非常類似,它們都提供了在HTML代碼中嵌入某種程序代碼,并由效力器提供的引擎來解釋和執行這些程序。在ASP和JSP文件中,HTML部分都是主要擔任規定信息的顯示款式,而嵌入的程序代碼那么用來實現邏輯和控制操作。普通的HTML頁面只依賴于Web效力器例如Apache、Microsoft IIS以及Sun Java System Web Server等效力器,而ASP和JSP都需求有相應的言語引擎來分析和執行嵌入的程序代碼。程序代碼被引擎執行完之后會重新嵌入到HTML代碼中去,然后一同由效力器反響給相應的閱讀器作為呼應。ASP和J
18、SP都屬于面向Web效力器的技術,它們都是在效力器端執行,而客戶端閱讀器不需求再安裝任何附加軟件。2區別點首先,ASP運用的編程言語是VBScript之類的腳本言語,JSP那么是Java,這是兩者最明顯的區別。此外,它們之間還有一個更為本質的區別:兩種言語引擎用完全不同的方式處置頁面中嵌入的程序代碼。在ASP下,VBScript代碼被ASP引擎解釋并執行;在JSP下,代碼被編譯成Servlet并由Java虛擬機執行,這種編譯操作僅在對JSP頁面的第一次懇求時發生,后期懇求將直接調用編譯好的文件。3JSP的優勢JSP和ASP相比具有兩方面的優勢:第一,動態部分用Java編寫,而不是VBScrip
19、t或其他Microsoft言語,不僅功能更強大而且更易于運用;第二,JSP運用可以移植到其他操作系統和非Microsoft的Web效力器上。2JSP與PHPHypertext Preprocessor的簡單比較PHP是一種跨平臺的效力器端的嵌入式腳本言語。它交融了C、Java以及Perl言語的語法,并結合本身的特點,可以使得Web開發者快速地編寫出動態的頁面。PHP還有一個優點就是它完全是免費的,可以從網站上自在下載,并可以獲取源代碼。1類似點同樣,普通的HTML頁面只依賴于Web效力器,而PHP頁面需求有附加的PHP言語引擎來分析和執行相應的程序代碼。執行結果再重新嵌入到HTML代碼中去,一
20、同由效力器經過HTTP協議反響給相應的閱讀器。另外,PHP和JSP的可移植性非常好,根本可以執行于一切的平臺。2區別點JSP在循環語句的執行以及數據庫的訪問速度上都要比PHP甚至ASP高得多。另外,由于PHP誕生于開源,它得到了迅速普及,但是當JSP出現之后,這種情況就變化了。這是由于PHP只適宜小型站點的開發和運用,而不適于大型的電子商務的站點開發。這是由于PHP缺乏規模支持,并且缺乏多層構造的支持。對于大負荷的網站,只能運用分布式計算來處理問題。而JSP不同,它得到了J2EE框架的支持,可以為JSP開發很多的JavaBean,更復雜的系統可以得到EJB的支持。3JSP的優勢JSP很好地實現
21、了多層構造,特別是得到J2EE的支持,如今在MVC方式中,JSP根本上只擔任了View的任務,控制View的任務封裝到了Servlet中。JSP很適宜開發大型的電子商務網站,而且在平安、可維護以及可擴展性上得到了很高的保證。1.2.3 為什么選擇JSP或許讀者看完了1.2.2小節之后,就曾經對這個問題有了答案。網站開發最重要的就是開發出來的網站要有很高的穩定性、平安性及可擴展性和維護性,而且運用的工具要盡量簡單易用。正是為了兼顧以上兩點,JSP提供了大量效力器端的標簽Tag。這樣可以使Web開發者特別是那些并不懂得Java編程的HTML設計者沒有必要編寫Java代碼就可以完成很多動態內容的操作。而高級腳本編寫者或者Java程序員也可以運用這些標簽來實現動態效果。除了JSP提供的大量標簽之外,它還是依賴“組件為中心的網頁開發技術。所謂“組件為中心就是盡量把邏輯操作以及數據
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業自動化中的機器人技術探討
- 工業自動化技術與應用領域探討
- 工業自動化技術的未來趨勢分析
- 工業設計與品牌建設的策略
- 工業設計與產品設計思路分享
- 工作中的溝通技巧與效率關系
- 工作中的創新方法與實踐案例分享
- 工作與生活平衡的實踐方法
- 工程機械設備行業發展現狀與趨勢
- 工廠節能減排技術推廣
- 定額〔2025〕3號文-關于發布2023版西藏地區電網工程概預算定額價格水平調整的通知
- 《現場改善案例集》課件
- 醫院結核感染培訓
- 大學生應急救護知到智慧樹章節測試課后答案2024年秋西安歐亞學院
- 臨床心內科主任競聘稿
- 電動工器具安全使用培訓
- 防水工程專項施工方案
- 日本建設項目可視化、安全文明、工藝管理總結
- 【MOOC】思想道德與法治-南開大學 中國大學慕課MOOC答案
- 網絡管理與維護綜合實訓課程
- 遼寧大學《材料力學》2021-2022學年第一學期期末試卷
評論
0/150
提交評論