JSP程序設(shè)計(jì)課件_第1頁
JSP程序設(shè)計(jì)課件_第2頁
JSP程序設(shè)計(jì)課件_第3頁
JSP程序設(shè)計(jì)課件_第4頁
JSP程序設(shè)計(jì)課件_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

JSP程序設(shè)計(jì)14八月2024213.1JSP簡介13.1.1JSP程序

JSP(JavaServerPages)是由SunMicrosystems公司倡導(dǎo)、許多公司參與建立的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。14八月20243Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁所需要的功能。

JSP是在服務(wù)器端執(zhí)行的,通常返回給客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽,不需要附加任何的支持軟件。14八月2024413.1.2JSP語法概述

JSP語法分為三類:腳本元素(Scripting)、指令元素(Directive)和動(dòng)作元素(Actions)。JSP的腳本元素,包含注釋、聲明、腳本和表達(dá)式四個(gè)部分。在JSP文件中可以加入兩種形式的注釋,一種其內(nèi)容可以被瀏覽器查看,另一種瀏覽器不能查看。聲明用于在JSP頁面中定義方法或變量,這些方法或變量可被同一個(gè)頁面中的其它代碼訪問。腳本即在JSP頁面中插入的Java程序代碼段,這些代碼段嵌在標(biāo)記“<%”與“%>”之間。表達(dá)式用于直接將數(shù)據(jù)輸出到頁面。14八月20245JSP指令元素有三個(gè),分別是page、include和taglib。這些指令元素是針對(duì)JSP引擎設(shè)計(jì)的,不會(huì)產(chǎn)生任何直接輸出。它們包含在標(biāo)記“<%@”和“%>”之間。page指令用于定義JSP文件中的全局屬性,include指令用于在JSP頁面中包含另外一個(gè)文件的內(nèi)容,taglib指令用于定義一個(gè)標(biāo)簽庫以及自定義標(biāo)簽的前綴。14八月20246在JSP2.0規(guī)范中定義了20多個(gè)動(dòng)作元素。在JSP語法中,用<jsp:xxx>表示動(dòng)作,可以用它控制JSP引擎的動(dòng)作。以下是常見的動(dòng)作:<jsp:useBean>:創(chuàng)建一個(gè)Bean實(shí)例并指定它的名字和作用范圍;<jsp:setProperty>:設(shè)置Bean的屬性值;<jsp:getProperty>:獲取Bean實(shí)例的屬性值;<jsp:include>:包含一個(gè)靜態(tài)或動(dòng)態(tài)文件;14八月20247<jsp:forward>:重定向一個(gè)到另一個(gè)JSP頁面;<jsp:plugin>:該指令用于向?yàn)g覽器插入一個(gè)Java插件來運(yùn)行一個(gè)applet或者Bean對(duì)象。14八月2024813.1.3JSP內(nèi)置對(duì)象

1.request對(duì)象

request對(duì)象是與用戶請(qǐng)求相關(guān)的對(duì)象,它是HttpServletRequest的一個(gè)子類。該對(duì)象包含了所有來自客戶端的請(qǐng)求信息,如請(qǐng)求的來源、標(biāo)頭、類型、Cookies和HTML表單變量等。2.response對(duì)象response對(duì)象是最重要的對(duì)象之一,只有通過它,才能響應(yīng)客戶端的請(qǐng)求,才能向客戶端輸出信息。它的作用與requst對(duì)象剛好相反,request對(duì)象包含了客戶請(qǐng)求的有關(guān)信息,而reponse對(duì)象包含了響應(yīng)客戶請(qǐng)求的信息。

14八月202493.session對(duì)象

Session對(duì)象表示目前個(gè)別用戶的會(huì)話(session)狀況,用此項(xiàng)機(jī)制可以輕易識(shí)別每一個(gè)用戶,然后針對(duì)每一個(gè)別用戶的要求,給予正確的響應(yīng)。系統(tǒng)是怎樣通過session對(duì)象來識(shí)別用戶的呢?原來,在用戶登錄網(wǎng)站時(shí),系統(tǒng)為其生成了一個(gè)獨(dú)一無二的session對(duì)象來記錄用戶的個(gè)人信息。即每個(gè)登錄網(wǎng)站的用戶所擁有的session對(duì)象是不同的。當(dāng)用戶退出網(wǎng)站時(shí),該session對(duì)象被注銷。

4.a(chǎn)pplication對(duì)象Application對(duì)象用于取得或更改Servlet的設(shè)定,它的生存期是由服務(wù)器產(chǎn)生開始至服務(wù)器關(guān)機(jī)為止。14八月202410在JSP服務(wù)器運(yùn)行時(shí)刻,僅有一個(gè)Application對(duì)象,它由服務(wù)器創(chuàng)建,也由服務(wù)器自動(dòng)清除,不能被用戶創(chuàng)建和清除。

5.out對(duì)象out對(duì)象代表了向客戶端發(fā)送數(shù)據(jù)的對(duì)象,與“response”對(duì)象不同,通過“out”對(duì)象發(fā)送的內(nèi)容將是瀏覽器需要顯示的內(nèi)容,是文本級(jí)的。6.ception對(duì)象exception對(duì)象處理JSP文件在執(zhí)行時(shí)所有發(fā)生的錯(cuò)誤和異常。14八月2024117.config對(duì)象

config對(duì)象是java.servletConfig接口的一個(gè)實(shí)例,它用于初始化參數(shù)。8.pageContext對(duì)象

pageContext對(duì)象存儲(chǔ)當(dāng)前JSP頁面的相關(guān)信息,如屬性、內(nèi)建對(duì)象等。9.page對(duì)象page對(duì)象表示當(dāng)前正在運(yùn)行的JSP頁面所產(chǎn)生的對(duì)象,該對(duì)象只有在當(dāng)前JSP頁面范圍之內(nèi)使用才合法。

14八月20241213.2JSP與JavaBean13.2.1JavaBeans簡介JavaBeans是基于java的組件模型,由屬性、方法和事件3部分組成,有點(diǎn)類似于Microsoft的COM組件概念。在該模型中,javabeans可以被修改或與其他組件結(jié)合生成新組件或完整的程序。它是一種java類,通過封裝成為具有某種功能或者處理某個(gè)業(yè)務(wù)的對(duì)象。因此,也可以通過嵌在JSP頁面內(nèi)的java代碼訪問bean及其方法。14八月20241313.2.2在JSP程序中使用JavaBean

1.JavaBean的編寫

JavaBean是用java語言編寫的可重用的軟件組件。編寫JavaBean組件的方法同編寫其他Java類一樣。2.JavaBean的調(diào)用

JavaBean的調(diào)用主要包括以下幾個(gè)方面的內(nèi)容:創(chuàng)建JavaBean的實(shí)例,需要使用<jsp:useBean>指令來完成;利用<jsp:setProperty>和<jsp:getProperty>來設(shè)置或獲取JavaBean的屬性值;調(diào)用其方法,格式為:實(shí)例名.方法名。14八月20241413.3JSP標(biāo)簽庫

JSP標(biāo)簽庫(也被稱作定制標(biāo)簽)是一種通過JavaBean生成基于XML的腳本的方法。從概念上講,標(biāo)簽就是很簡單而且可重用的代碼結(jié)構(gòu)。JSP標(biāo)簽庫最大的作用在于讓用戶可以自行指定一個(gè)標(biāo)簽。標(biāo)簽處理類是一個(gè)標(biāo)準(zhǔn)的Java類,在該類中定義了各種各樣的方法來對(duì)標(biāo)簽庫描述文件中定義的標(biāo)簽進(jìn)行處理。我們把該類的定義文件叫做TEI(TagExtraInformationfiles)文件,TEI文件在被編譯為calss類文件之后,被放到JSP服務(wù)器的相應(yīng)目錄中。13.3.1標(biāo)簽處理類14八月202415通俗地講,標(biāo)簽處理類就是用于解釋標(biāo)記的類。由于它是一個(gè)標(biāo)準(zhǔn)的Java類,因此編寫方法與普通的類一致,但因?yàn)閼?yīng)用環(huán)境的不同,TEI文件在實(shí)現(xiàn)上還是有自己的特殊之處。TEI中的Java類一般繼承自TagSupport類或dyTagSupport類,但如果是繼承自TagSupport類,則必須重載doStartTag()和doEndTag()方法。

14八月20241613.3.2標(biāo)簽庫描述文件JSP標(biāo)簽庫需要一個(gè)標(biāo)簽庫描述符(TLD)文件來定義標(biāo)簽的名稱、屬性以及操作該標(biāo)簽的Java類。TLD文件通常就以標(biāo)簽處理器命名并被存放在"\WEB-INF\"目錄之下。該文件的文件擴(kuò)展名是.tld。TLD文件是一個(gè)普通的XML格式的標(biāo)記定義文件,要使這個(gè)TLD文件被JSP文件訪問,它必須定義Tlibversion、jspversion、shortname、uri、info、tag六個(gè)屬性。由于TLD文件是一個(gè)XML文件,因此它也必須符合XML文件的規(guī)范。

14八月20241713.3.3在JSP程序中使用標(biāo)簽JSP程序中使用的標(biāo)簽庫有兩種,一種是標(biāo)準(zhǔn)標(biāo)簽庫(JSTL),另一種是用戶自定義標(biāo)簽庫。標(biāo)準(zhǔn)標(biāo)簽庫是一個(gè)為實(shí)現(xiàn)Web應(yīng)用程序的常用功能而定制的標(biāo)記庫集,這些功能包括基本輸入輸出、流程控制、循環(huán)、XML文件剖析、數(shù)據(jù)庫查詢、國際化和文字格式化的應(yīng)用等。在JSP程序中使用標(biāo)簽,是利用taglib指令來實(shí)現(xiàn)的。

14八月20241813.3.4自定義標(biāo)簽庫一個(gè)自定義的tag標(biāo)簽是用戶定義的一種JSP標(biāo)記。當(dāng)一個(gè)含有自定義的tag標(biāo)簽的JSP頁面被jsp引擎編譯成servlet時(shí),tag標(biāo)簽被轉(zhuǎn)化成了對(duì)一個(gè)稱為tag處理類的對(duì)象進(jìn)行的操作。于是當(dāng)JSP頁面被jsp引擎轉(zhuǎn)化為servlet后,實(shí)際上tag標(biāo)簽被轉(zhuǎn)化成為了對(duì)tag處理類的操作。14八月202419

JSP標(biāo)簽都實(shí)現(xiàn)了javax.servlet.jsp.tagext.JspTag接口。這個(gè)接口有兩個(gè)直接子接口。

SimpleTag接口:它是JSP2.0新增加的接口,代表了簡單的標(biāo)簽;Tag接口:它是必須要實(shí)現(xiàn)的接口,它有一個(gè)直接子接口就是IterationTag。

IterationTag接口有一個(gè)簡單的實(shí)現(xiàn)類為TagSupport,從TagSupport擴(kuò)展可以開發(fā)出迭代標(biāo)簽。IterationTag還有一個(gè)子接口BodyTag。這種標(biāo)簽允許帶有Body,BodyTag也有一個(gè)實(shí)現(xiàn)類,就是BodyTagSupport,在開發(fā)BodyTag時(shí),往往直接從它繼承就可以了。14八月202420使用Tag接口開發(fā)自定義標(biāo)簽程序有以下4個(gè)步驟:(1)開發(fā)標(biāo)簽實(shí)現(xiàn)類(2)編寫標(biāo)簽描述,這個(gè)描述通常是以.tld結(jié)尾的文件。tld文件描述和說明了屬性、信息和標(biāo)簽處理器文件位置等信息。JSP容器使用這一文件來映射被調(diào)用標(biāo)簽庫的位置和用法(3)在web.xml文件中指定標(biāo)簽庫的引用(4)編寫JSP頁面調(diào)用定義的標(biāo)簽

14八月20242113.4JSP與Servlet

13.4.1Web應(yīng)用程序的一般結(jié)構(gòu)

現(xiàn)在的Web應(yīng)用程序一般都采用了三層架構(gòu),將整個(gè)應(yīng)用劃分為顯示層、商業(yè)邏輯層和控制層。

顯示層包括HTML、XML和Applets等內(nèi)容,主要功能是提供操作接口,接收用戶的數(shù)據(jù)輸入和向用戶顯示數(shù)據(jù)。顯示層位于客戶端。商業(yè)邏輯層是三層結(jié)構(gòu)中的核心部分,它的主要功能是進(jìn)行數(shù)據(jù)的處理、連接數(shù)據(jù)庫并產(chǎn)生相應(yīng)的數(shù)據(jù)??刂茖又饕瓿尚畔鬟f,而不是數(shù)據(jù)處理。14八月202422對(duì)于使用JSP開發(fā)Web應(yīng)用程序的模式,Sun公司總結(jié)了兩種模式,分別稱為Model1(模型一)和Model2(模型二)。在Model1體系中,JSP頁面單獨(dú)完成響應(yīng)用戶請(qǐng)求并將處理結(jié)果返回客戶的工作。它又包括兩種結(jié)構(gòu)。第一種是僅包含JSP頁面的Web應(yīng)用程序;14八月202423第二種是由JSP和JavaBean組合的應(yīng)用程序14八月20242413.3.4自定義標(biāo)簽庫MVC設(shè)計(jì)模式由三部分組成。模型是應(yīng)用對(duì)象,沒有界面;視圖表示它在屏幕上的數(shù)據(jù)顯示,可能的形式為HTML、XML和Applet,主要功能是對(duì)采集用戶的數(shù)據(jù)輸入、用戶請(qǐng)求和對(duì)模型響應(yīng)用戶操作處理結(jié)果數(shù)據(jù)的顯示;控制器定義用戶界面對(duì)用戶輸入的響應(yīng)方式,負(fù)責(zé)把用戶的動(dòng)作轉(zhuǎn)換成針對(duì)模型的操作,它不做任何的數(shù)據(jù)處理;模型則通過更新視圖的數(shù)據(jù)來反映數(shù)據(jù)的變化。14八月20242513.4.2JSP與Servlet間的信息共享1.JSP向Servlet傳遞數(shù)據(jù)2.Servlet向JSP傳遞數(shù)據(jù)在Servlet中,可以通過標(biāo)準(zhǔn)的javax.Servlet.RequestDispatcher接口所提供的功能來調(diào)用JSP頁面,同時(shí)傳遞參數(shù)到JSP頁面14八月20242613.4.3JSP與Servlet間的控制傳遞重定向技術(shù)可以分為兩類,一類是客戶端重定向,一類是服務(wù)器端重定向。客戶端重定向可以通過設(shè)置特定的HTTP頭,或者寫JavaScript腳本實(shí)現(xiàn)。

服務(wù)器端的重定向可以有兩種方式,一是使用HttpServletResponse的sendRedirect()方法,一是使用RequestDispatcher的forward()方法。

14八月202427有三種方法可

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論