版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
JSP程序設計14八月2024213.1JSP簡介13.1.1JSP程序
JSP(JavaServerPages)是由SunMicrosystems公司倡導、許多公司參與建立的一種動態(tài)網(wǎng)頁技術標準。JSP技術是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標記(tag),從而形成JSP文件(*.jsp)。14八月20243Web服務器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實現(xiàn)建立動態(tài)網(wǎng)頁所需要的功能。
JSP是在服務器端執(zhí)行的,通常返回給客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽,不需要附加任何的支持軟件。14八月2024413.1.2JSP語法概述
JSP語法分為三類:腳本元素(Scripting)、指令元素(Directive)和動作元素(Actions)。JSP的腳本元素,包含注釋、聲明、腳本和表達式四個部分。在JSP文件中可以加入兩種形式的注釋,一種其內(nèi)容可以被瀏覽器查看,另一種瀏覽器不能查看。聲明用于在JSP頁面中定義方法或變量,這些方法或變量可被同一個頁面中的其它代碼訪問。腳本即在JSP頁面中插入的Java程序代碼段,這些代碼段嵌在標記“<%”與“%>”之間。表達式用于直接將數(shù)據(jù)輸出到頁面。14八月20245JSP指令元素有三個,分別是page、include和taglib。這些指令元素是針對JSP引擎設計的,不會產(chǎn)生任何直接輸出。它們包含在標記“<%@”和“%>”之間。page指令用于定義JSP文件中的全局屬性,include指令用于在JSP頁面中包含另外一個文件的內(nèi)容,taglib指令用于定義一個標簽庫以及自定義標簽的前綴。14八月20246在JSP2.0規(guī)范中定義了20多個動作元素。在JSP語法中,用<jsp:xxx>表示動作,可以用它控制JSP引擎的動作。以下是常見的動作:<jsp:useBean>:創(chuàng)建一個Bean實例并指定它的名字和作用范圍;<jsp:setProperty>:設置Bean的屬性值;<jsp:getProperty>:獲取Bean實例的屬性值;<jsp:include>:包含一個靜態(tài)或動態(tài)文件;14八月20247<jsp:forward>:重定向一個到另一個JSP頁面;<jsp:plugin>:該指令用于向瀏覽器插入一個Java插件來運行一個applet或者Bean對象。14八月2024813.1.3JSP內(nèi)置對象
1.request對象
request對象是與用戶請求相關的對象,它是HttpServletRequest的一個子類。該對象包含了所有來自客戶端的請求信息,如請求的來源、標頭、類型、Cookies和HTML表單變量等。2.response對象response對象是最重要的對象之一,只有通過它,才能響應客戶端的請求,才能向客戶端輸出信息。它的作用與requst對象剛好相反,request對象包含了客戶請求的有關信息,而reponse對象包含了響應客戶請求的信息。
14八月202493.session對象
Session對象表示目前個別用戶的會話(session)狀況,用此項機制可以輕易識別每一個用戶,然后針對每一個別用戶的要求,給予正確的響應。系統(tǒng)是怎樣通過session對象來識別用戶的呢?原來,在用戶登錄網(wǎng)站時,系統(tǒng)為其生成了一個獨一無二的session對象來記錄用戶的個人信息。即每個登錄網(wǎng)站的用戶所擁有的session對象是不同的。當用戶退出網(wǎng)站時,該session對象被注銷。
4.a(chǎn)pplication對象Application對象用于取得或更改Servlet的設定,它的生存期是由服務器產(chǎn)生開始至服務器關機為止。14八月202410在JSP服務器運行時刻,僅有一個Application對象,它由服務器創(chuàng)建,也由服務器自動清除,不能被用戶創(chuàng)建和清除。
5.out對象out對象代表了向客戶端發(fā)送數(shù)據(jù)的對象,與“response”對象不同,通過“out”對象發(fā)送的內(nèi)容將是瀏覽器需要顯示的內(nèi)容,是文本級的。6.ception對象exception對象處理JSP文件在執(zhí)行時所有發(fā)生的錯誤和異常。14八月2024117.config對象
config對象是java.servletConfig接口的一個實例,它用于初始化參數(shù)。8.pageContext對象
pageContext對象存儲當前JSP頁面的相關信息,如屬性、內(nèi)建對象等。9.page對象page對象表示當前正在運行的JSP頁面所產(chǎn)生的對象,該對象只有在當前JSP頁面范圍之內(nèi)使用才合法。
14八月20241213.2JSP與JavaBean13.2.1JavaBeans簡介JavaBeans是基于java的組件模型,由屬性、方法和事件3部分組成,有點類似于Microsoft的COM組件概念。在該模型中,javabeans可以被修改或與其他組件結(jié)合生成新組件或完整的程序。它是一種java類,通過封裝成為具有某種功能或者處理某個業(yè)務的對象。因此,也可以通過嵌在JSP頁面內(nèi)的java代碼訪問bean及其方法。14八月20241313.2.2在JSP程序中使用JavaBean
1.JavaBean的編寫
JavaBean是用java語言編寫的可重用的軟件組件。編寫JavaBean組件的方法同編寫其他Java類一樣。2.JavaBean的調(diào)用
JavaBean的調(diào)用主要包括以下幾個方面的內(nèi)容:創(chuàng)建JavaBean的實例,需要使用<jsp:useBean>指令來完成;利用<jsp:setProperty>和<jsp:getProperty>來設置或獲取JavaBean的屬性值;調(diào)用其方法,格式為:實例名.方法名。14八月20241413.3JSP標簽庫
JSP標簽庫(也被稱作定制標簽)是一種通過JavaBean生成基于XML的腳本的方法。從概念上講,標簽就是很簡單而且可重用的代碼結(jié)構(gòu)。JSP標簽庫最大的作用在于讓用戶可以自行指定一個標簽。標簽處理類是一個標準的Java類,在該類中定義了各種各樣的方法來對標簽庫描述文件中定義的標簽進行處理。我們把該類的定義文件叫做TEI(TagExtraInformationfiles)文件,TEI文件在被編譯為calss類文件之后,被放到JSP服務器的相應目錄中。13.3.1標簽處理類14八月202415通俗地講,標簽處理類就是用于解釋標記的類。由于它是一個標準的Java類,因此編寫方法與普通的類一致,但因為應用環(huán)境的不同,TEI文件在實現(xiàn)上還是有自己的特殊之處。TEI中的Java類一般繼承自TagSupport類或dyTagSupport類,但如果是繼承自TagSupport類,則必須重載doStartTag()和doEndTag()方法。
14八月20241613.3.2標簽庫描述文件JSP標簽庫需要一個標簽庫描述符(TLD)文件來定義標簽的名稱、屬性以及操作該標簽的Java類。TLD文件通常就以標簽處理器命名并被存放在"\WEB-INF\"目錄之下。該文件的文件擴展名是.tld。TLD文件是一個普通的XML格式的標記定義文件,要使這個TLD文件被JSP文件訪問,它必須定義Tlibversion、jspversion、shortname、uri、info、tag六個屬性。由于TLD文件是一個XML文件,因此它也必須符合XML文件的規(guī)范。
14八月20241713.3.3在JSP程序中使用標簽JSP程序中使用的標簽庫有兩種,一種是標準標簽庫(JSTL),另一種是用戶自定義標簽庫。標準標簽庫是一個為實現(xiàn)Web應用程序的常用功能而定制的標記庫集,這些功能包括基本輸入輸出、流程控制、循環(huán)、XML文件剖析、數(shù)據(jù)庫查詢、國際化和文字格式化的應用等。在JSP程序中使用標簽,是利用taglib指令來實現(xiàn)的。
14八月20241813.3.4自定義標簽庫一個自定義的tag標簽是用戶定義的一種JSP標記。當一個含有自定義的tag標簽的JSP頁面被jsp引擎編譯成servlet時,tag標簽被轉(zhuǎn)化成了對一個稱為tag處理類的對象進行的操作。于是當JSP頁面被jsp引擎轉(zhuǎn)化為servlet后,實際上tag標簽被轉(zhuǎn)化成為了對tag處理類的操作。14八月202419
JSP標簽都實現(xiàn)了javax.servlet.jsp.tagext.JspTag接口。這個接口有兩個直接子接口。
SimpleTag接口:它是JSP2.0新增加的接口,代表了簡單的標簽;Tag接口:它是必須要實現(xiàn)的接口,它有一個直接子接口就是IterationTag。
IterationTag接口有一個簡單的實現(xiàn)類為TagSupport,從TagSupport擴展可以開發(fā)出迭代標簽。IterationTag還有一個子接口BodyTag。這種標簽允許帶有Body,BodyTag也有一個實現(xiàn)類,就是BodyTagSupport,在開發(fā)BodyTag時,往往直接從它繼承就可以了。14八月202420使用Tag接口開發(fā)自定義標簽程序有以下4個步驟:(1)開發(fā)標簽實現(xiàn)類(2)編寫標簽描述,這個描述通常是以.tld結(jié)尾的文件。tld文件描述和說明了屬性、信息和標簽處理器文件位置等信息。JSP容器使用這一文件來映射被調(diào)用標簽庫的位置和用法(3)在web.xml文件中指定標簽庫的引用(4)編寫JSP頁面調(diào)用定義的標簽
14八月20242113.4JSP與Servlet
13.4.1Web應用程序的一般結(jié)構(gòu)
現(xiàn)在的Web應用程序一般都采用了三層架構(gòu),將整個應用劃分為顯示層、商業(yè)邏輯層和控制層。
顯示層包括HTML、XML和Applets等內(nèi)容,主要功能是提供操作接口,接收用戶的數(shù)據(jù)輸入和向用戶顯示數(shù)據(jù)。顯示層位于客戶端。商業(yè)邏輯層是三層結(jié)構(gòu)中的核心部分,它的主要功能是進行數(shù)據(jù)的處理、連接數(shù)據(jù)庫并產(chǎn)生相應的數(shù)據(jù)??刂茖又饕瓿尚畔鬟f,而不是數(shù)據(jù)處理。14八月202422對于使用JSP開發(fā)Web應用程序的模式,Sun公司總結(jié)了兩種模式,分別稱為Model1(模型一)和Model2(模型二)。在Model1體系中,JSP頁面單獨完成響應用戶請求并將處理結(jié)果返回客戶的工作。它又包括兩種結(jié)構(gòu)。第一種是僅包含JSP頁面的Web應用程序;14八月202423第二種是由JSP和JavaBean組合的應用程序14八月20242413.3.4自定義標簽庫MVC設計模式由三部分組成。模型是應用對象,沒有界面;視圖表示它在屏幕上的數(shù)據(jù)顯示,可能的形式為HTML、XML和Applet,主要功能是對采集用戶的數(shù)據(jù)輸入、用戶請求和對模型響應用戶操作處理結(jié)果數(shù)據(jù)的顯示;控制器定義用戶界面對用戶輸入的響應方式,負責把用戶的動作轉(zhuǎn)換成針對模型的操作,它不做任何的數(shù)據(jù)處理;模型則通過更新視圖的數(shù)據(jù)來反映數(shù)據(jù)的變化。14八月20242513.4.2JSP與Servlet間的信息共享1.JSP向Servlet傳遞數(shù)據(jù)2.Servlet向JSP傳遞數(shù)據(jù)在Servlet中,可以通過標準的javax.Servlet.RequestDispatcher接口所提供的功能來調(diào)用JSP頁面,同時傳遞參數(shù)到JSP頁面14八月20242613.4.3JSP與Servlet間的控制傳遞重定向技術可以分為兩類,一類是客戶端重定向,一類是服務器端重定向??蛻舳酥囟ㄏ蚩梢酝ㄟ^設置特定的HTTP頭,或者寫JavaScript腳本實現(xiàn)。
服務器端的重定向可以有兩種方式,一是使用HttpServletResponse的sendRedirect()方法,一是使用RequestDispatcher的forward()方法。
14八月202427有三種方法可
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度古建筑裝修驗收及保護合同
- 2025年度藝術壁畫墻面粉刷與文化傳播合同
- 二零二五年度抵押貸款合同協(xié)議書(三)
- 二零二五年度河北省高新技術企業(yè)勞動合同協(xié)議
- 二零二五年度企業(yè)高層管理人員股權激勵合同模板
- 二零二五年度別墅水電裝修定制服務合同
- 二零二五年度水電工程進度控制合同
- 二零二五年度煤炭購銷居間不可撤銷中介代理合同
- 2025年書籍貨物合同
- 2025年在線音樂視頻服務合同
- 新聞記者證600道考試題-附標準答案
- TSG ZF001-2006《安全閥安全技術監(jiān)察規(guī)程》
- 中考語文二輪復習:記敘文閱讀物象的作用(含練習題及答案)
- 老年外科患者圍手術期營養(yǎng)支持中國專家共識(2024版)
- 子宮畸形的超聲診斷
- 2024年1月高考適應性測試“九省聯(lián)考”數(shù)學 試題(學生版+解析版)
- (正式版)JBT 11270-2024 立體倉庫組合式鋼結(jié)構(gòu)貨架技術規(guī)范
- DB11∕T 2035-2022 供暖民用建筑室溫無線采集系統(tǒng)技術要求
- 《復旦大學》課件
- 針灸與按摩綜合療法
- T-GDWJ 013-2022 廣東省健康醫(yī)療數(shù)據(jù)安全分類分級管理技術規(guī)范
評論
0/150
提交評論