![JavaWeb及其框架技術(shù) 課件 第2章 JSP技術(shù)_第1頁](http://file4.renrendoc.com/view3/M01/28/2F/wKhkFmaH-POAWj5fAABzleAMHE8327.jpg)
![JavaWeb及其框架技術(shù) 課件 第2章 JSP技術(shù)_第2頁](http://file4.renrendoc.com/view3/M01/28/2F/wKhkFmaH-POAWj5fAABzleAMHE83272.jpg)
![JavaWeb及其框架技術(shù) 課件 第2章 JSP技術(shù)_第3頁](http://file4.renrendoc.com/view3/M01/28/2F/wKhkFmaH-POAWj5fAABzleAMHE83273.jpg)
![JavaWeb及其框架技術(shù) 課件 第2章 JSP技術(shù)_第4頁](http://file4.renrendoc.com/view3/M01/28/2F/wKhkFmaH-POAWj5fAABzleAMHE83274.jpg)
![JavaWeb及其框架技術(shù) 課件 第2章 JSP技術(shù)_第5頁](http://file4.renrendoc.com/view3/M01/28/2F/wKhkFmaH-POAWj5fAABzleAMHE83275.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第2章JSP技術(shù)掌握J(rèn)SP的基本語法掌握J(rèn)SP注釋與聲明使用的方法掌握J(rèn)SP與HTML混合使用的方法掌握J(rèn)SP幾種編譯指令的運用掌握J(rèn)SP幾種動作標(biāo)簽的運用掌握J(rèn)SP的隱含對象學(xué)習(xí)目標(biāo)2.1.1什么是JSPJSP技術(shù)是由SUN公司(現(xiàn)被Oracle收購)提出,并于1999年推出的一款建設(shè)動態(tài)網(wǎng)頁的方法,是建立在Servlet規(guī)范上的動態(tài)網(wǎng)頁開發(fā)技術(shù),全稱為JavaServerPage。JSP的網(wǎng)頁實際上是在HTML文件中加入Java代碼及JSP的特殊標(biāo)記構(gòu)成的,其中,HTML代碼用于實現(xiàn)網(wǎng)頁中靜態(tài)內(nèi)容的顯示,Java代碼用于實現(xiàn)網(wǎng)頁中動態(tài)內(nèi)容的顯示。JSP文件的擴(kuò)展名為“.jsp”。2.1JSP簡介2.1.2JSP的特點(1)當(dāng)用戶通過瀏覽器訪問JSP頁面時,服務(wù)器將對JSP頁面代碼進(jìn)行一次且僅進(jìn)行一次編譯。當(dāng)JSP頁面首次被加載時需要編譯,編譯好的代碼將會保存,在用戶下一次訪問時會直接執(zhí)行編譯好的代碼,這樣不僅響應(yīng)的速度會更快,而且節(jié)約了服務(wù)器的CPU資源。(2)由于JSP基于Java語言,而Java本身就有跨平臺的特性,因此JSP也是跨平臺的。當(dāng)更換服務(wù)平臺時,JSP幾乎可以不做任何變動或少量修改就可以完成服務(wù)平臺的遷移;當(dāng)需要更換Web服務(wù)器時,JSP也可以做到幾乎不做任何變動就可以在新的Web服務(wù)器中編譯、運行。(3)在項目開發(fā)過程中可以進(jìn)行分工,即界面設(shè)計與業(yè)務(wù)邏輯分離,網(wǎng)頁設(shè)計師專注于頁面的美化,JSP程序開發(fā)人員則負(fù)責(zé)動態(tài)部分。2.1JSP簡介2.1.3JSP工作原理JSP的工作模式是請求/響應(yīng)模式。客戶端首先向Web服務(wù)器發(fā)出請求,請求訪問JSP文件,JSP文件收到請求后,會先轉(zhuǎn)換成一個Java源文件,并將其編譯成相應(yīng)的字節(jié)碼文件,即*.class。再將此class文件加載到內(nèi)存中執(zhí)行,最后由服務(wù)器將處理結(jié)果返回給客戶端。如果在此過程中,JSP第一次編譯后,再重復(fù)調(diào)用此JSP頁面時,如果發(fā)現(xiàn)此JSP頁面沒有被改動,就會直接使用編譯后的class文件,若頁面被修改過,則需要重新加載編譯。JSP工作流程如圖所示。2.1JSP簡介2.2.1一個簡單的JSP程序例2-1創(chuàng)建一個JSP程序,用于顯示系統(tǒng)當(dāng)前時間。
在第1章中,我們在IDEA中創(chuàng)建了一個Web工程secondProject,在該工程的web目錄下自動創(chuàng)建了一個名為index.jsp的JSP文件,如下圖所示。2.2JSP標(biāo)準(zhǔn)語法2.2.1一個簡單的JSP程序輸入如下代碼,運行結(jié)果如下圖所示。2.2JSP標(biāo)準(zhǔn)語法HTML代碼中嵌入了Java代碼,Java代碼包含在“<%”和“%>”之間2.2.2JSP注釋1.HTML中的注釋。由于JSP文件中可以包含HTML代碼,所以HTML中的注釋同樣可以在JSP文件中使用。HTML注釋語法如下。<!--注釋內(nèi)容-->2.JSP的注釋。JSP的注釋的語法格式如下。<%--注釋內(nèi)容--%>2.2JSP標(biāo)準(zhǔn)語法2.2.2JSP注釋3.JSP腳本注釋在JSP腳本程序中包含了Java代碼,所以在腳本程序中的注釋與在Java中的注釋是相同的,即有三種注釋方法,分別為單行注釋、多行注釋、文檔注釋。(1)單行注釋的格式://注釋內(nèi)容(2)多行注釋的格式:/*
注釋內(nèi)容1
注釋內(nèi)容2 …*/2.2JSP標(biāo)準(zhǔn)語法(3)文檔注釋的格式:/**
提示信息1
提示信息2 …*/2.2.3JSP腳本JSP腳本元素是指嵌套在“<%”和“%>”中的一條或多條Java程序代碼,這些Java代碼需要嚴(yán)格遵守Java語法規(guī)范,通過JSP腳本元素可以將Java代碼嵌入HTML頁面。JSP腳本元素主要分為三種類型,分別為代碼腳本、表達(dá)式腳本、聲明腳本。1.代碼腳本代碼腳本就是一段Java代碼,它以“<%”開始,以“%>”結(jié)束,語法格式:<%Java代碼%>2.表達(dá)式腳本表達(dá)式腳本主要用于將程序數(shù)據(jù)輸出到客戶端,它以“<%=”開始,以“%>”結(jié)束,語法格式:<%=表達(dá)式%>注意:JSP表達(dá)式中的變量或表達(dá)式之后不能有分號,“<%”和“=”之間不能有空格。例如:<%=5+5%><%=newDate()%><%=”hello”%>2.2JSP標(biāo)準(zhǔn)語法2.2.3JSP腳本3.聲明腳本聲明腳本主要用于聲明變量、方法和類,它是以“<%!”開始,以“%>”結(jié)束,語法格式:<%!定義變量/定義方法/定義類%>(1)聲明變量。在“<%!”和“%>”之間聲明的變量,可以是Java允許的任何數(shù)據(jù)類型,聲明的變量在整個JSP頁面內(nèi)都有效,例如:<%!inti=0;%><%!intx,y,z;%>(2)聲明方法。在“<%!”和“%>”之間聲明的方法,在整個JSP頁面有效,但是在方法內(nèi)定義的變量只在該方法內(nèi)有效。2.2JSP標(biāo)準(zhǔn)語法2.2.3JSP腳本例2-4:聲明方法,統(tǒng)計訪問該網(wǎng)頁的人數(shù)。在secondProject工程的web目錄下創(chuàng)建一個名為count.jsp的JSP文件2.2JSP標(biāo)準(zhǔn)語法重啟Tomcat服務(wù)器,在瀏覽器中輸入地址http://localhost:8080/count.jsp,運行結(jié)果如圖:2.2.3JSP腳本3.聲明腳本(3)聲明類??梢栽凇?lt;%!”和“%>”之間聲明一個類,該類在JSP頁面內(nèi)有效,即在JSP頁面的Java程序段部分均可以使用該類創(chuàng)建對象。2.2JSP標(biāo)準(zhǔn)語法2.2.4JSP與HTML的混合使用例2-5求n!(1)在secondProject項目的Web文件夾中創(chuàng)建名為calculate.jsp的JSP文件,用于展示計算結(jié)果,代碼如下2.2JSP標(biāo)準(zhǔn)語法2.2.4JSP與HTML的混合使用例2-5求n!(2)在web文件夾中創(chuàng)建名為jiecheng.html的HTML文件,代碼如下2.2JSP標(biāo)準(zhǔn)語法2.2.4JSP與HTML的混合使用例2-5求n!(3)重啟Tomcat服務(wù)器,在瀏覽器的地址欄中輸入http://localhost:8080/jiecheng.html,打開的界面如下圖所示。2.2JSP標(biāo)準(zhǔn)語法在此例中,n的值是在jiecheng.html文件中輸入,計算的過程、結(jié)果及結(jié)果的顯示在calculate.jsp文件中完成。JSP編譯指令用來設(shè)置整個JSP頁面相關(guān)的屬性,如網(wǎng)頁的編碼方式和腳本語言,JSP常見的三個編譯指令為page、include、taglib。2.3.1include指令在JSP頁面中,如果要把其他資源文件包含到當(dāng)前JSP頁面中,那么可以通過include指令來實現(xiàn),被包含的資源文件可以是JSP文件、HTML文件或文本文件。這些包含的文件就好像是該JSP文件的一部分,會被同時編譯執(zhí)行。其語法格式如下。<%@includefile=“被包含的文件地址”%>其中file屬性用于指定包含到JSP頁面的文件資源,一般該文件資源的路徑為相對路徑。2.3JSP編譯指令2.3.1include指令例2-6:了解include指令的用法。(詳見教材例2-6)2.3.2page指令在JSP頁面中,當(dāng)需要對頁面的某些特性進(jìn)行描述時,可以通過page指令來實現(xiàn)。其語法格式如下。<%@page屬性名="屬性值"%>page指令的常用屬性見教材表2-12.3JSP編譯指令2.3.3taglib指令JSP頁面中不僅可以使用標(biāo)準(zhǔn)標(biāo)簽庫,還允許用戶自定義新的標(biāo)簽在頁面中執(zhí)行,語法格式如下。<%@tagliburi="uri"prefix="prefixOfTag"%>其中,屬性uri用來表示自定義標(biāo)簽庫存放的地址,屬性prefix指定標(biāo)簽的前綴,此處要注意不要用jsp、jspx、java、javax、servlet、sun和sunw作為前綴。2.3JSP編譯指令利用JSP動作可以實現(xiàn)動態(tài)地插入文件、把用戶重定向到另外的頁面、為Java插件生成HTML代碼等。2.4.1forward動作<jsp:forward>動作用于把請求轉(zhuǎn)發(fā)給另一個JSP目標(biāo)頁面,目標(biāo)頁面可以通過方法獲得參數(shù)進(jìn)行下一步處理。語法格式如下。<jsp:forwardpage="相對URL地址"/>或<jsp:forwardpage="相對URL地址"/>
<jsp:paramname=”參數(shù)”value=“參數(shù)值”/></jsp:forward>屬性page是一個相對URL地址,<jsp:param>用于向轉(zhuǎn)向的目標(biāo)頁面?zhèn)鬟f參數(shù)。2.4JSP動作例2-7在工程secondProject的web目錄下創(chuàng)建一個JSP文件:forward.jsp,在該文件中使用<jsp:forward>動作將頁面重定向到例2-6中的circle.jsp頁面。文件forward.jsp內(nèi)容如下。2.4JSP動作<%@pagecontentType="text/html;charset=UTF-8"language="java"%>
<html>
<head>
<title>forward測試</title>
</head>
<body>
<jsp:forwardpage="circle.jsp"/></body>
</html>
啟動Tomcat服務(wù)器,在瀏覽器地址欄中輸入地址http://localhost:8080/forward.jsp,運行結(jié)果如下圖所示。
2.4.2include動作<jsp:include>動作語法格式如下。<jsp:includepage="相對URL地址"flush="true/false"/>或<jsp:includepage="相對URL地址"flush="true/false"/>
<jsp:paramname=”參數(shù)”value=“參數(shù)值”/></jsp:include>屬性page用于指定包含文件的相對路徑,屬性flush是可選項,用于設(shè)置在包含文件前是否刷新緩存區(qū),默認(rèn)值為false。<jsp:param>用于向被包含的頁面中傳遞參數(shù)。include動作的應(yīng)用詳見教材例2-8。2.4JSP動作JSP隱含對象是指在JSP頁面系統(tǒng)中已經(jīng)默認(rèn)內(nèi)置的Java對象,這些對象不需要開發(fā)人員聲明即可在腳本代碼和表達(dá)式中隨意使用。2.5.1輸出對象outout對象主要用來向客戶端瀏覽器輸出內(nèi)容,同時管理應(yīng)用服務(wù)器上的輸出緩沖區(qū)。out對象的常用方法及說明見下表所示。2.5JSP的隱含對象方法說明voidprintln()向客戶端打印字符串。默認(rèn)會自動刷新緩沖區(qū)voidflush()將緩沖區(qū)的內(nèi)容輸出到客戶端voidclear()清除輸出緩沖區(qū)的內(nèi)容,如果在flush之后調(diào)用會拋出異常voidclearBuffer()清除輸出緩沖區(qū)的內(nèi)容,在flush之后調(diào)用不會拋出異常intgetBufferSize()取得目前緩沖區(qū)的大小(KB)intgetRemaining()取得目前使用后還剩下的緩沖區(qū)大?。↘B)booleanisAutoFlush()緩沖區(qū)滿時,是否自動清空緩沖區(qū);false表示不會自動清空并且產(chǎn)生異常voidclose()關(guān)閉輸出流,清除所有的內(nèi)容out對象的常用方法及說明2.5.2請求對象request客戶每次向JSP服務(wù)器發(fā)送請求時,JSP引擎都會創(chuàng)建一個request對象,request對象封裝了客戶請求參數(shù)以及客戶端的信息,包括HTTP頭信息、傳遞的參數(shù)及參數(shù)值、系統(tǒng)信息等。request對象的常用方法及說明見下表所示。2.5JSP的隱含對象request對象的常用方法及說明方法說明getParameter()獲取請求中指定的參數(shù)值,返回String類型getParameterValues()獲取客戶端提交頁面中一組控件的值,返回值一個String數(shù)組getParameterName()獲取參數(shù)名getHeader()獲取HTTP頭文件中的指定值getHeaders
()獲取表頭信息getRemoteAddr()獲取客戶主機(jī)的IP地址getRemoteHost()獲取客戶主機(jī)的名稱getRemotePort()獲取客戶主機(jī)端口getMethod()獲取客戶提交信息的方式getServerPort()獲取服務(wù)器端口getServerName()獲取服務(wù)器的名稱2.5.2請求對象request例2-9創(chuàng)建getInfo.jsp文件,用于獲取客戶主機(jī)及服務(wù)器信息,代碼如下。獲取客戶端及服務(wù)器信息的運行結(jié)果如右圖所示。2.5JSP的隱含對象<%@pagecontentType="text/html;charset=UTF-8"language="java"%>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
out.println("客戶主機(jī)IP:"+request.getRemoteAddr()+"<br>");
out.println("客戶主機(jī)名稱:"+request.getRemoteHost()+"<br>");
out.println("客戶主機(jī)端口:"+request.getRemotePort()+"<br>");
out.println("服務(wù)器IP:"+request.getServerName()+"<br>");
out.println("服務(wù)器端口:"+request.getServerPort()+"<br>");
%>
</body>
</html>
2.5.3響應(yīng)對象responseresponse對象是對request對象請求的響應(yīng),主要將JSP處理數(shù)據(jù)后的結(jié)果傳回客戶端。response對象的常用方法及說明如下表所示。2.5JSP的隱含對象方法說明sendRedirect(Stringuri)頁面重定向setStatus(intcode)設(shè)置頁面的響應(yīng)狀態(tài)代碼addCookie(Cookiecookie)添加Cookie信息addHeader(Stringname,Stringvalue)新增String類型的值到name標(biāo)頭setHeader(Stringname,Stringvalue)指定String類型的值到name標(biāo)頭addIntHeader(Stringname,intvalue)新增int類型的值到name標(biāo)頭setIntHeader(Stringname,intvalue)指定int類型的值到name標(biāo)頭response對象的常用方法及說明2.5.4會話對象sessionHTTP是無狀態(tài)協(xié)議,這意味著每次客戶端請求網(wǎng)頁時,服務(wù)器收到請求并返回響應(yīng)后,連接就結(jié)束了,服務(wù)器不會記錄下先前客戶端請求的任何信息。如果用戶的瀏覽器沒有關(guān)閉但是又兩次發(fā)起請求,那么網(wǎng)站就應(yīng)該能識別出該用戶的信息。此時session對象就能解決這一問題。用戶打開瀏覽器直到關(guān)閉瀏覽器的整個過程稱為一個會話,服務(wù)器在運行時可以為每個用戶瀏覽器創(chuàng)建一個會話對象,即session對象,通常一個瀏覽器獨占一個session對象。服務(wù)器程序可以把用戶數(shù)據(jù)寫到用戶瀏覽器獨占的session中,當(dāng)用戶使用瀏覽器訪問其他程序時,其他程序可以從用戶的session中取出該用戶的數(shù)據(jù),為用戶服務(wù)。因此使用session可以輕易地識別每一個用戶,然后針對每一個用戶的要求,給予正確的響應(yīng)。2.5JSP的隱含對象2.5.4會話對象sessionsession對象的應(yīng)用案例詳見教材例2-112.5JSP的隱含對象session對象的常用方法及說明方法說明voidsetAttribute(Stringkey,Objectvalue)以key/value的形式保存對象值ObjectgetAttribute(Sringkey)通過key獲取對象值longgetCreationTime()取得session產(chǎn)生的時間,單位:毫秒StringgetId()取得session的IDintgetMaxInactiveInterval()取得最大session不活動的時間voidinvalidate()取消session對象,并將對象存放的內(nèi)容完全拋棄booleanisNew()判斷session是否為
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版無學(xué)生單位信息化項目聯(lián)合研發(fā)合同3篇
- 二零二五年度個人融資擔(dān)保保險合同范本2篇
- 黨建知識講解
- 維修維護(hù)委托合同三篇
- 醫(yī)療器械工程師研發(fā)醫(yī)療設(shè)備
- 二零二五年度戶外活動策劃個人勞務(wù)合同2篇
- 二零二五年度企業(yè)職工工傷保險補(bǔ)貼專項資金使用協(xié)議3篇
- 二零二五年度個人出租公寓合同(含社區(qū)文化活動參與)3篇
- 二零二五年度水產(chǎn)養(yǎng)殖產(chǎn)品出口代理合同樣本
- 二零二五版商場物業(yè)管理合同范本(綠色能源利用規(guī)劃)3篇
- 2025年國網(wǎng)陜西省電力限公司高校畢業(yè)生招聘1100人(第二批)高頻重點提升(共500題)附帶答案詳解
- 《深度學(xué)習(xí)的7種有力策略》
- 《認(rèn)罪認(rèn)罰案件被追訴人反悔應(yīng)對機(jī)制研究》
- 投資項目評估管理制度
- 《工程地質(zhì)》試題及答案四
- 氦離子化色譜法測試電氣設(shè)備油中溶解氣體的技術(shù)規(guī)范
- 內(nèi)燃機(jī)車鉗工(中級)職業(yè)鑒定理論考試題及答案
- 長期處方管理規(guī)范-學(xué)習(xí)課件
- 高中英語外研版 單詞表 選擇性必修3
- 中小學(xué)校園突發(fā)事件應(yīng)急與急救處理課件
- 2024年山東省普通高中學(xué)業(yè)水平等級考試生物真題試卷(含答案)
評論
0/150
提交評論