![JSP基礎學習2_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/3/be8f0094-7e1c-4a4f-b9c0-0661114500ac/be8f0094-7e1c-4a4f-b9c0-0661114500ac1.gif)
![JSP基礎學習2_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/3/be8f0094-7e1c-4a4f-b9c0-0661114500ac/be8f0094-7e1c-4a4f-b9c0-0661114500ac2.gif)
![JSP基礎學習2_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/3/be8f0094-7e1c-4a4f-b9c0-0661114500ac/be8f0094-7e1c-4a4f-b9c0-0661114500ac3.gif)
![JSP基礎學習2_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/3/be8f0094-7e1c-4a4f-b9c0-0661114500ac/be8f0094-7e1c-4a4f-b9c0-0661114500ac4.gif)
![JSP基礎學習2_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/3/be8f0094-7e1c-4a4f-b9c0-0661114500ac/be8f0094-7e1c-4a4f-b9c0-0661114500ac5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第4章章 JSP頁面元素與內置對象頁面元素與內置對象內容提要n介紹介紹JSP頁面的結構頁面的結構nJSP的編譯指令、操作指令和代碼的編譯指令、操作指令和代碼n重點介紹重點介紹JSP常用的六大基本對象:常用的六大基本對象:nout對象、對象、response對象、對象、request對象、對象、application對象、對象、session對象和對象和cookie對象。對象。理解服務器端執(zhí)行 n所有HTML文件可以在資源管理器中雙擊執(zhí)行n但是JSP文件必須先放到Web服務器中,然后通過HTTP的方式訪問。因為文件內所有內代碼是被Web服務器解釋執(zhí)行的。 理解服務器端執(zhí)行理解服務器端執(zhí)行案例名
2、稱:理解服務器端執(zhí)行案例名稱:理解服務器端執(zhí)行程序名稱:程序名稱:4-01.jspvar dnow = new Date();dhours = dnow.getHours();dminutes = dnow.getMinutes();dseconds = dnow.getSeconds();document.write(瀏覽器時間: + dhours + : + dminutes + : + dseconds);理解服務器端執(zhí)行理解服務器端執(zhí)行 JSP頁面結構 n在一個JSP頁面中,主要分為三種元素:編譯指令、操作指令和JSP代碼。n編譯指令告訴JSP的解釋引擎(比如:Tomcat),需要在編
3、譯時做什么動作,比如引入一個其它的類,設置JSP頁面的使用什么語言編碼等。n操作指令則是在JSP頁面被請求時,動態(tài)執(zhí)行的,比如可以根據(jù)某個條件動態(tài)跳轉到另外一個頁面。nJSP代碼指的就是我們自己嵌入在JSP頁面中的Java代碼,這又分為兩種:第一種是JSP頁面中一些變量和方法的聲明,在聲明時,使用“”標記。另外一種,就是常用到的用“”包含的JSP代碼塊:編譯指令 n可以通過一定的指令,讓JSP容器采取必要的動作。n例如:可以指定一個專門的錯誤處理頁面,當JSP頁面出現(xiàn)錯誤時,可以由JSP容器自動地調用錯誤處理頁面。 page指令 npage指令是針對當前頁面的指令。page指令有“”字符串構成
4、的標記符來指定。在標記符中是代碼體,包括指令的類型和值。例如:“”指令告訴JSP容器將java.sql包中的所有類都引入當前的JSP頁面。n常用的page指令標記有8個:nlanguage、extends、import、errorPage、isErrorPage、contentType、isThreadSafe和session。page指令nlanguage設置JSP頁面中用到的語言,默認值為“Java”,也是目前唯一有效的設定值。使用的語法是:“”。nextends設定目前JSP頁面要繼承的父類。一般情況下不需要進行設置。在默認情況下,JSP頁面的默認父類是HttpJspBase。例如:當前
5、JSP頁面要繼承mypackage包下的myclass類,相應的聲明語句為:“”。nimport設置目前JSP頁面中要用到的Java類,這些Java類可能是Sun JDK中的類,也有可能是程序員自己定義的類。例如:“”。n有些類在默認情況下已經被加入到當前JSP頁面,而不需要特殊聲明,包括四個類:java.lang.*;、java.servlet.*;、java.servlet.jsp.*;和java.servlet.http.*;。nerrorPage用來設定當JSP頁面出現(xiàn)異常(Exception)時,所要轉向的頁面。如果沒有設定,則JSP容器會用默認的當前網頁來顯示出錯信息。例如:“”n
6、isErrorPage用來設定當前的JSP頁面是否作為傳回錯誤頁面的網頁,默認值是“false”。如果設定為“true”,則JSP容器會在當前的頁面中生成一個exception對象。使用errorPage指令捕獲異常 案例名稱:案例名稱:JSP中中Exception的捕捉的捕捉程序名稱:程序名稱:4-02.jsp JSP中中Exception的捕捉的捕捉案例名稱:案例名稱:JSP中中Exception的捕捉的捕捉程序名稱:程序名稱:4-03.jsp當前頁面是:4-03.jspJSP中中Exception的捕捉的捕捉ncontentType這個屬性用來設定傳回網頁的文件格式和編碼方式,一般使用
7、“text/html;charset=GBK”。nisThreadSafe 定義JSP容器執(zhí)行JSP程序的方式,默認值為“true”,代表JSP容器會以多線程方式運行JSP頁面。當設定值為“false”時,JSP容器會以單線程方式運行JSP頁面。nsession定義當前JSP頁面中是否要用到session,默認值為“true”。include指令 ninclude指令用來指定怎樣把另一個文件包含到當前的JSP頁面中,這個文件可以是普通的文本文件,也可以是一個JSP頁面。例如:“”。n采用include指令,可以實現(xiàn)JSP頁面的模塊化,使JSP的開發(fā)和維護變得非常簡單。 使用使用include指
8、令指令n案例名稱:使用案例名稱:使用include指令指令n程序名稱:程序名稱:4-04.jspn taglib指令 ntaglib指令允許頁面使用標記擴展(定制標記)。它命名了標記庫。在JSP頁面里遇到定制的標記時,引擎將找到在標記庫中的該標記,并且找到要實施的操作實際上是執(zhí)行Java代碼。taglib指令的語法為:nn其中:nuri:一個URI標識標記庫描述器。一個標記庫描述器用來唯一的命名一組定制的標記,并且告訴包容器如何處理特殊的標記ntagPrefix:定義一個prefix:tagname形式的字符串前綴,用于定義定制的標記。所保留的前綴為jsp、jspx、java、servlet、
9、sun、sunw。操作指令 nJSP編譯指令是讓JSP容器自動采取的動作,但對于Web開發(fā)人員,有些時候想要自己控制JSP頁面的運行,這時可以采用JSP中的操作指令。n操作指令包括:njsp:include指令、jsp:forward指令、jsp:param指令、jsp:useBean指令、jsp:setProperty指令和jsp:getProperty指令等。jsp:include指令 njsp:include標準動作用于在當前的JSP頁面中加入靜態(tài)和動態(tài)的資源。n語法格式為:nnjsp:include指令必須以“/”結束,功能和include指令相同。jsp:forward指令 njsp
10、:forward操作指令用于把當前的JSP頁面轉發(fā)到另一個頁面上。n基本語法為:n“”,n使用該功能時,瀏覽器的地址欄中地址不會發(fā)生任何變化。 forward指令實現(xiàn)頁面間的跳轉指令實現(xiàn)頁面間的跳轉案例名稱:使用案例名稱:使用forward指令實現(xiàn)頁面間的跳轉指令實現(xiàn)頁面間的跳轉程序名稱:程序名稱:4-05.jspjsp:param指令 n使用jsp:param操作指令可以在執(zhí)行jsp:forward操作動作時,追加參數(shù),按照“名字/值”的方式進行傳遞。njsp:param操作指令以標記“”開始,以“/”結束。比如:“”??梢詫sp:forward操作指令和jsp:param操作指令結合到一
11、起來使用。 JSP代碼 nJSP代碼包括兩種,n第一種是JSP頁面中一些變量和方法的聲明,在聲明時,使用“”標記n另外一種,就是常用到的用“”包含的JSP代碼塊變量和方法 n在“”標記符號之間聲明變量和方法,變量類型可以是Java語言允許的任何數(shù)據(jù)類型。n在JSP頁面被編譯執(zhí)行的時候,整個頁面被編譯成一個類,這些變量是JSP頁面類的成員變量。變量的聲明和使用變量的聲明和使用案例名稱:變量的聲明和使用案例名稱:變量的聲明和使用程序名稱:程序名稱:4-06.jsp個人訪問本站變量的聲明和使用變量的聲明和使用n也可以聲明函數(shù),一般會在函數(shù)前面加上synchronized關鍵字,功能是當前一個用戶在執(zhí)
12、行該方法的時候,其他的用戶必須等待,直到該用戶完成操作。使用方法 案例名稱:函數(shù)的聲明和使用案例名稱:函數(shù)的聲明和使用程序名稱:程序名稱:4-07.jsp您是第個訪問本站的客戶。代碼塊 n可以在“”之間插入Java程序片,一個JSP頁面可以有許多程序片,這些代碼塊將被JSP服務器按照順序執(zhí)行。n在一個代碼塊中聲明的變量是JSP頁面的局部變量,只在當前頁面中有效。 代碼塊代碼塊案例名稱:代碼塊案例名稱:代碼塊程序名稱:程序名稱:4-08.jsp個人訪問本站 JSP隱含對象概述 nJSP根據(jù)Servlet API而提供了某些隱含對象??梢允褂脴藴实淖兞縼碓L問這些對象,并且不用編寫任何額外的代碼,就
13、可以在JSP中自動使用到它。在JSP頁面中可以獲得的主要的7個隱含對象變量為:nout對象:功能是把信息回送到客戶端的瀏覽器中。nresponse對象:功能是處理服務器端對客戶端的一些響應。nrequest對象:功能是用來得到客戶端的信息。napplication對象:用來保存網站的一些全局變量。nsession對象:用來保存單個用戶訪問時的一些信息。ncookie對象:將服務器端的一些信息寫到客戶端的瀏覽器中。npageContext對象:提供了訪問和放置頁面中共享數(shù)據(jù)的方式。out對象 nout對象是javax.servlet.jsp.JspWriter類的一個子類的對象,它的作用是把信息
14、回送到客戶端的瀏覽器中。在out對象中,最常用的方法就是print()和println()。在使用print()或println()方法時,由于客戶端是瀏覽器,因此向客戶端輸出時,可以使用HTML中的一些標記,例如:“out.println(”Hello,JSP“);”。n其他一些常用的方法是:out.write功能和out.print相同,newLine()的功能是輸出一個換行符,out.flush()的功能是輸出緩沖的內容。out.close()的功能是關閉輸出流。out對象的生命周期是當前頁面。因此對于每一個JSP頁面,都有一個out對象 使用使用out對象對象案例名稱:使用案例名稱:使
15、用out對象對象程序名稱:程序名稱:4-09.jspreponse對象 nresponse對象是一個javax.servlet.http.HttpServletResponse類的子類的對象 網頁轉向 n對于response對象,最常用到的是sendRedirect()方法,可以使用這個方法將當前客戶端的請求轉到其它頁面去。相應的代碼格式為:“response.sendRedirect(URL地址);”n和指令的最大區(qū)別就是:只能使用在本網站內跳轉,但我可以使用response.sendRedirect跳轉到任何一個地址的頁面 案例名稱:網頁轉向案例名稱:網頁轉向程序名稱:程序名稱:4-10.
16、jsp動態(tài)contentType響應 n當請求一個JSP頁面的時候,如果該頁面用page指令設置頁面的contentType屬性的值是text/html,那么服務器將把靜態(tài)頁面部分發(fā)送給客戶端。n也可以設置為其他一些相應類型,如:text/plain(文本文件)、application/x-msexcel(Excel文件)和application/msword(Word文件)等。 顯示為顯示為Word文檔文檔案例名稱:顯示為案例名稱:顯示為Word文檔文檔程序名稱:程序名稱:4-11.jspresponse對象 setContentType方法將當前頁面保存為word文檔嗎 HTTP文件頭響應
17、 n可以利用JSP動態(tài)改變客戶端的響應,使用的語法是“response.setHeader()”,比如讓客戶端自動每隔5秒刷新一次, 案例名稱:動態(tài)改變響應頭案例名稱:動態(tài)改變響應頭程序名稱:程序名稱:4-12.jsp現(xiàn)在的時間是:設置緩沖區(qū) n在實際的JSP應用開發(fā)中,為了確保顯示的正確性,需要將禁用頁面緩沖,否則會顯示其他用戶的一些的信息。為了解決這個問題,需要在每個JSP的頁面中添加語句 案例名稱:設置緩沖區(qū)案例名稱:設置緩沖區(qū)程序名稱:程序名稱:4-13.jsprequest對象 nrequest對象是javax.servlet.HttpServletRequest子類的對象,當客戶端
18、請求一個JSP頁面時,JSP容器會將客戶端的請求信息包裝在這個request對象中n請求信息的內容包括請求的頭信息(Header)、系統(tǒng)信息(比如:編碼方式)、請求的方式(比如:GET或POST)、請求的參數(shù)名稱和參數(shù)值等信息 得到Form表單的信息 n通常我們用得最多的就是客戶端請求的參數(shù)名稱和參數(shù)值信息。得到某參數(shù)值的語法為:“request.getParameter(”param1“)”。n也可以通過request對象的getParameterNames()方法得到客戶端傳遞過來的所有參數(shù)名字,如:n“Enumeration params = request.getParameterNa
19、mes();”。得到Form表單的信息案例名稱:案例名稱:HTML表單表單程序名稱:程序名稱:4-14.html姓名:密碼: 讀取表單數(shù)據(jù)讀取表單數(shù)據(jù)案例名稱:讀取表單數(shù)據(jù)案例名稱:讀取表單數(shù)據(jù)程序名稱:程序名稱:4-15.jsp姓名:密碼:第二種讀取值的方法是利用集合案例名稱:使用案例名稱:使用request對象獲取用戶提交數(shù)據(jù)的所有參數(shù)名字和值對象獲取用戶提交數(shù)據(jù)的所有參數(shù)名字和值程序名稱:程序名稱:4-17.jsp%String current_param = ;request.setCharacterEncoding(GBK);Enumeration params = request.
20、getParameterNames();while(params.hasMoreElements() current_param = (String)params.nextElement(); out.println(Name: + current_param + );out.println(Values: + request.getParameter(current_param) + );%得到客戶的信息 n利用request對象可以獲得客戶提交的信息,比如:JSP文件目錄、客戶端的地址、以及服務器的端口等, 案例名稱:獲得客戶的信息案例名稱:獲得客戶的信息程序名稱:程序名稱:4-18.js
21、p漢字問題兩種解決方法 n當利用request.getParameter得到Form種元素的時候,默認的情況字符編碼為ISO-8859-1,這種編碼不能正確的顯示漢字。n目前有兩種解決方法,一種是在執(zhí)行操作之前,設置request的編碼格式,語法是:“request.setCharacterEncoding(GBK);”另一種方法是轉換字符編碼 調查表信息的讀取 案例名稱:調查表輸入頁面案例名稱:調查表輸入頁面程序名稱:程序名稱:input.htm調查表信息的讀取案例名稱:調查表處理頁面案例名稱:調查表處理頁面程序名稱:程序名稱:handle.jspapplication對象 n站點所有的用戶
22、公用一個application對象,當站點服務器開啟的時候,application就被創(chuàng)建,直到網站關閉。利用application這一特性,可以方便地創(chuàng)建聊天室和網站計數(shù)器等常用站點應用程序 application的自定義屬性 npublic void setAttribute(String key, Object obj),將對象obj添加到application對象中,并為添加的對象添加一個索引關鍵字key。npublic Object getAttribute(String key),獲取application對象中含有關鍵字key的對象。由于任何對象都可以添加到application
23、中,因此用此方法取回對象的時候,需要強制轉化為原來的類型。自定義屬性自定義屬性案例名稱:自定義屬性案例名稱:自定義屬性程序名稱:程序名稱:4-19.jsp自定義屬性自定義屬性案例名稱:自定義屬性案例名稱:自定義屬性程序名稱:程序名稱:4-20.jsp實現(xiàn)聊天室 n聊天室允許多用戶實時進行信息交流,所有用戶可以看到彼此的信息,這與application對象的特點正好符合,所以可以方便地利用application實現(xiàn)聊天室。 案例名稱:簡易聊天室案例名稱:簡易聊天室程序名稱:程序名稱:4-21.jsp網頁計數(shù)器 n網頁計數(shù)器是application 對象的又一個用途,因為application是所
24、有的用戶所共有的,所以可以存儲計數(shù)器的值,當有新用戶訪問網頁時自動增加計數(shù)器的值。 案例名稱:網頁計數(shù)器版本一案例名稱:網頁計數(shù)器版本一程序名稱:程序名稱:CountV1.jsp案例名稱:網頁計數(shù)器版本二案例名稱:網頁計數(shù)器版本二程序名稱:程序名稱:CountV2.asp session對象 nsession對象是java.servlet.http.HttpSession類的子類的對象,它表示當前的用戶會話信息。在session中保存在對象在當前用戶連接的所有頁面中都是可以被訪問到的。n可以使用Session 對象存儲用戶登錄網站時候的信息。當用戶在頁面之間跳轉時,存儲在Session對象中的
25、變量不會被清除 對session的理解 案例名稱:使用案例名稱:使用ID屬性屬性程序名稱:程序名稱:4-22.jsp你的session ID:自定義屬性 n對于session對象中,經常用到的方法是setAttribute()、getAttribute()和removeAttribute()。分別可以對session中的對象進行存取和刪除操作。nsession對象的主要用途也是保存信息,當用戶第一次到達網站時,系統(tǒng)為其分配一個session。session和application一樣也使用自己的自定義屬性 使用使用session的自定義屬性的自定義屬性案例名稱:使用案例名稱:使用session的自定義屬性的自定義屬性程序名稱:程序名稱:4-23.jsp下一頁使用使用session的自定義屬性的自定義屬性案例名稱:使用案例名稱:使用session的自定義屬性的自定義屬性程序名稱:程序名稱:4-24.jsp下一頁簡易session版購物車 n利用session保存用戶選購的商品信息,本購物車程序包含三個程序:n(1)buy1.jsp:購物網頁一。n(2)buy2.jsp:購物網頁二。n(3)display.jsp:查看購物車程序。簡易session版購物車案例名稱:購物網頁一案例名稱:購物網頁一程序名稱:程序名稱:buy1.jsp案例名稱:購物網頁二案例名稱
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國尖峰鯉數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國發(fā)泡地板革數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國光纖配線數(shù)據(jù)監(jiān)測研究報告
- 2025年中國蠕動泵用高耐磨橡膠件市場調查研究報告
- 搪瓷衛(wèi)生潔具的國內外標準對比考核試卷
- 婦幼保健院預防保健知識考核試卷
- 2025-2030年地下空洞穩(wěn)定性評估系統(tǒng)企業(yè)制定與實施新質生產力戰(zhàn)略研究報告
- 2025-2030年復古軍裝風格男裝行業(yè)深度調研及發(fā)展戰(zhàn)略咨詢報告
- 2025-2030年廚電產品用戶訪談企業(yè)制定與實施新質生產力戰(zhàn)略研究報告
- 2025-2030年復古工裝風格男裝行業(yè)深度調研及發(fā)展戰(zhàn)略咨詢報告
- 世界老年人跌倒的預防和管理指南解讀及跌倒應急處理-
- GB/T 7251.2-2023低壓成套開關設備和控制設備第2部分:成套電力開關和控制設備
- 第五講影響研究及研究方法(比較文學概論)課件
- 四川省地圖模板含市縣圖課件
- 帶拼音生字本模板(可A4打印)
- 小學語文必備文學常識???00題匯總(含答案)
- 英語人教版高中必修三(2019新編)第一單元教案
- 超高大截面框架柱成型質量控制
- GB 9706.1-2020醫(yī)用電氣設備第1部分:基本安全和基本性能的通用要求
- 森林法講解課件
- 口腔頜面外科:第十六章-功能性外科與計算機輔助外科課件
評論
0/150
提交評論