版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
JavaWeb程序設計
——JSP編程(1)2主要內容JSP簡要概述JSP基本語法3JSP介紹:
JSP(JavaServerPage)是由SunMicrosystems公司倡導、其他一些公司參與一起建立的一種動態(tài)網(wǎng)頁技術。
JSP技術是用Java語言作為腳本語言(服務器),在傳統(tǒng)的HTML網(wǎng)頁文件中,加入Java程序片斷和JSP標記,而構成了JSP頁面。
4JSP介紹:Web服務器在得到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序片斷,然后將執(zhí)行結果以HTML頁面的方式返回給客戶端。
實現(xiàn)動態(tài)部分的JSP腳本代碼和普通程序設計的邏輯是一樣的,但是它們會以標簽的方式被嵌入在網(wǎng)頁中,形式和HTML文檔很類似。5什么是JSP?JSP是基于Java的技術,用于創(chuàng)建支持跨平臺及Web服務器的動態(tài)網(wǎng)頁。JSP頁面是普通的HTML語句和特殊的基于Java語言的嵌入標記所組成,因此,它具有Web和Java功能的雙重特性。
JSP1.0規(guī)范是在1999年推出,此后經(jīng)歷了好幾個版本的發(fā)展,到2.0版本(2003年),JSP2.3規(guī)范在2013年發(fā)布。6
下面分析一下JSP頁面及其運行過程:<%@pagelanguage="java"%><html><head><title>HelloWorld</title></head><body><%out.print("HelloWorld!!");%></body></html>Page指令,說明使用的語言為JavaJSP代碼7運行結果:8
在JSP頁面中,采用標記<%...%>將JSP代碼與HTML語句相分離,該標記所包含的內容為網(wǎng)頁中的動態(tài)部分;可以看出,JSP是基于Java語言和HTML元素的一種動態(tài)網(wǎng)頁技術,是一種簡便、有效的動態(tài)網(wǎng)頁編寫方式;
JSP的執(zhí)行效率比較高,它是運行在Java虛擬機之上的,因此,可以在任何支持Java的平臺和操作系統(tǒng)上運行。9JSP的運行過程:JSP文件的執(zhí)行方式是“編譯式”,而不是“解釋式”,即在執(zhí)行JSP頁面時,是把該文件先被編譯為Servlet(Java中的一個類)形式的Java類型的字節(jié)碼文件,然后通過Java虛擬機來運行;每個基于JSP的頁面都被服務器事先解析成一個Servlet對象,服務器通過網(wǎng)絡接收來自客戶端HTTP的請求后,Servlet將開啟一個“線程”來提供服務。10
通過前面對JSP程序的解析,JSP頁面的執(zhí)行可分成兩個階段,一個是轉換階段,一個是請求階段。(1)轉換階段:JSP頁面轉換成Servlet類對象。在該階段JSP文件將被轉譯到Java類文件,同時由服務器自動將Java類編譯為Class文件,并載入內存。(2)請求階段:Servlet執(zhí)行,將響應結果發(fā)送至客戶端。在該階段Class文件將被執(zhí)行并生成HTML代碼,并將代碼發(fā)送給客戶端瀏覽器。 下面為JSP的執(zhí)行流程示意圖:1112
因此,如果一個JSP頁面是第一次執(zhí)行,那么會經(jīng)歷兩個階段;而如果不是第一次執(zhí)行,那么將只會執(zhí)行第二階段。這也是為什么第二次執(zhí)行JSP頁面時明顯比第一次要快。如果修改了JSP頁面,服務器發(fā)現(xiàn)該JSP頁面被修改,并重新執(zhí)行轉換階段和請求階段。13主要內容JSP簡要概述JSP基本語法14JSP語法分為腳本元素(ScriptingElements)、指令元素(DirectiveElements)和動作元素(ActionElements)。
JSP頁面是由JSP元素(Elements)和模板數(shù)據(jù)(TemplateData)組成。其中,JSP元素是由JSP應用服務器(JSP引擎)直接進行處理,而模板數(shù)據(jù)是直接發(fā)送給客戶端,為靜態(tài)的HTML語句內容。15分析JSP文件的組成元素:<%@pagelanguage="java"contentType="text/html;charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>//指令<html><head><title>HelloWorld</title></head><body><%!intnumber=2;%>//聲明一個變量(全局)16<%!publicintcount(){returnnumber++;}%>//聲明一個方法<%out.print(“HelloWorld!!”);%>//輸出<br><%="Youarethe"+count()+"people!!"%><br></body></html>17運行結果:18運行結果(IE瀏覽器):19該JSP頁面所包含的元素有:(1)page指令<%@pagelanguage="java"contentType="text/html;charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
這行代碼為page指令,是JSP指令元素的一種。
20
(2)聲明
<%!intnumber=2;%><%!publicintcount(){returnnumber++;}%>
聲明是腳本元素的一部分,這里聲明了一個變量和方法。21
(3)輸出
<%out.print(“HelloWorld!!”);%>
out是JSP中的默認對象,主要用來輸出數(shù)據(jù)到客戶端網(wǎng)頁中,print()則是out對象提供將字符串數(shù)據(jù)輸出的方法。
<%="Youarethe"+count()+"people!!"%>
這行代碼使用了表達式,且調用了count()方法。22(1)隱藏注釋為了使程序具有較好的可讀性,用戶可以在JSP代碼中加入隱藏注釋。其語法格式為:
<%--comment--%>
隱藏注釋的字符在JSP編譯時會被忽略,其不會發(fā)送給客戶端的瀏覽器。23(2)HTML注釋
HTML注釋也稱為顯示注釋,即用戶能在客戶端看到注釋內容。其語法格式為:
<!–comment[<%=表達式%>]-->
可以通過瀏覽器中的查看源文件命令來看其代碼。24例:兩種注釋方式的比較
<html><head><title>comparison</title></head><body><%--Hiddencomment--%><!--Thispagewasloadedon<%=(newjava.util.Date()).toLocaleString()%>-->Thetimeis:<%=(newjava.util.Date()).toLocaleString()%></body></html>隱藏注釋HTML注釋25運行結果:26查看源文件:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><title>comparison</title></head><body>//HTML注釋:<!--Thispagewasloadedon2012-3-169:40:15-->Thetimeis:2012-3-169:40:15</body></html>27(3)JSP腳本元素
JSP腳本元素包括三種形式:腳本段scriptlet聲明declaration表達式expression28腳本段scriptlet
形如:<%statements%>,將代碼包圍在JSP標簽中。
它在請求時,將執(zhí)行若干個Java語句。這些語句會被轉換到_jspService()方法中,成為方法體的一部分。29表達式expression
格式如:<%=expression%>。它將計算表達式的值,并將結果作為文本插入到HTML輸出中。聲明declaration
如<%!fielddefinition%>和<%!methoddefinition%>。
該變量或方法在JSP頁面被編譯成Java類時,成為該Java類的成員變量或成員方法。30JSP中的變量可以分為局部變量和全局變量,在JSP中聲明變量時,要注意變量的定義域:1)在程序片斷中,即在<%%>中聲明的變量是局部變量,它們對外部的函數(shù)是不可見的;2)在<%!%>中聲明的變量是全局變量,這種變量在整個JSP頁面內都有效。因為,在將JSP頁面編譯成Java文件時,是將這些變量作為類的成員變量;3)在<%!%>中聲明的方法,該方法在整個JSP頁面中有效,但在該方法中定義的變量只在該方法中有效。31例:局部變量與全局變量
<%@pagelanguage="java"contentType="text/html;charset=ISO-8859-1"pageEncoding="ISO-8859-1"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><%!intNum=0;%><%intcount=0;%>全局變量局部變量32<html><head><title>Welcome</title></head><body><h1><%="Welcome!"%></h1><br><%Num++;count++;%><%="Num="+Num%><br><%="count="+count%></body></html>輸出33運行結果(第一次運行):34運行結果(第二次運行):35例:方法的聲明<html><body><p>Inputradius:</p><form
action="Method.jsp"
method="get"name="form"><inputtype="text"name="radius"><inputtype="submit"name="submit"value="Calculate"></form><%!doublearea(doubler){returnMath.PI*r*r;}%>Form表單聲明方法36<%Str
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學數(shù)學量感培養(yǎng)的課堂教學效果評估研究教學研究課題報告
- 甘肅省平?jīng)鍪徐o寧一中2026屆生物高二上期末考試模擬試題含解析
- 基于游戲化學習理論的人工智能教育資源開發(fā)與教學創(chuàng)新實踐教學研究課題報告
- 廣東省執(zhí)信中學、廣州二中、廣州六中、廣雅中學四校2026屆語文高三上期末統(tǒng)考試題含解析
- 2025-2030寵物食品行業(yè)兼并重組機會研究及決策咨詢報告
- 2025至2030中國民宿行業(yè)區(qū)域發(fā)展差異與標準化建設分析報告
- 2026屆貴州省畢節(jié)市威寧縣黑石中學生物高三第一學期期末統(tǒng)考模擬試題含解析
- 無水乙醇安全操作規(guī)程與職業(yè)危害
- 小學一年級漢語拼音練習全冊
- 2025-2030無損檢測集裝箱內部異物識別軟件系統(tǒng)市場分析投資評估規(guī)劃分析研究報告
- 繪本閱讀應用于幼小銜接的實踐研究
- 2025??低曒p網(wǎng)管交換機使用手冊
- 翻車機工安全規(guī)范考核試卷及答案
- 兒童樂園合伙協(xié)議書合同
- 頸椎間盤突出癥的治療和護理講課件
- 外立面改造項目腳手架施工專項方案
- 廣東省建筑工程混凝土結構抗震性能設計規(guī)程
- 切削液回收及處理合同模板
- 2023年移動綜合網(wǎng)絡資源管理系統(tǒng)技術規(guī)范功能分冊
- 幼兒園大班班本課程-邂逅水墨課件
- 計算機輔助翻譯智慧樹知到期末考試答案章節(jié)答案2024年西華大學
評論
0/150
提交評論