Java-Web應(yīng)用開發(fā)技術(shù)與案例教程課件第3章第6-9節(jié)_第1頁(yè)
Java-Web應(yīng)用開發(fā)技術(shù)與案例教程課件第3章第6-9節(jié)_第2頁(yè)
Java-Web應(yīng)用開發(fā)技術(shù)與案例教程課件第3章第6-9節(jié)_第3頁(yè)
Java-Web應(yīng)用開發(fā)技術(shù)與案例教程課件第3章第6-9節(jié)_第4頁(yè)
Java-Web應(yīng)用開發(fā)技術(shù)與案例教程課件第3章第6-9節(jié)_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第6節(jié)session對(duì)象

會(huì)話(session)的含義:用戶在瀏覽某個(gè)網(wǎng)站時(shí),從進(jìn)入網(wǎng)站到瀏覽器關(guān)閉所經(jīng)過的這段時(shí)間稱為一次會(huì)話。

當(dāng)客戶重新打開瀏覽器建立到該網(wǎng)站的連接時(shí),JSP引擎為該客戶再創(chuàng)建一個(gè)新的session對(duì)象,屬于一次新的會(huì)話。主要內(nèi)容:session對(duì)象主要方法創(chuàng)建及獲取客戶的會(huì)話信息6.1session對(duì)象主要方法方法說明ObjectgetAttribute(Stringattriname)用于獲取與指定名字相聯(lián)系的屬性如果屬性不存在,將會(huì)返回nullvoidsetAttribute(Stringname,Objectvalue)用于設(shè)定指定名字的屬性值,并且把它存儲(chǔ)在session對(duì)象中voidremoveAttribute(Stringattriname)用于刪除指定的屬性(包含屬性名、屬性值)EnumerationgetAttributeNames()用于返回session對(duì)象中存儲(chǔ)的每一個(gè)屬性對(duì)象,結(jié)果集是一個(gè)Enumeration類的實(shí)例longgetCreationTime()用于返回session對(duì)象被創(chuàng)建時(shí)間,單位為毫秒longgetLastAccessedTime()用于返回session最后發(fā)送請(qǐng)求的時(shí)間,單位為毫秒StringgetId()用于返回Session對(duì)象在服務(wù)器端的編號(hào)longsetMaxInactiveInterval()用于返回session對(duì)象的生存時(shí)間,單位為秒booleanisNew()用于判斷目前session是否為新的Session,若是則返回ture,否則返回falsevoidinvalidate()用于銷毀session對(duì)象,使得與其綁定的對(duì)象都無(wú)效6.2創(chuàng)建及獲取客戶的會(huì)話信息【例3-13】利用session對(duì)象獲取會(huì)話信息并顯示(ch03_13_session.jsp)。<%@pagecontentType="text/html"pageEncoding="UTF-8"import="java.util.*"%><html><head><title>利用session對(duì)象獲取會(huì)話信息并顯示</title></head><body><hr>session的創(chuàng)建時(shí)間是:<%=newDate(session.getCreationTime())%><br>session的Id號(hào):<%=session.getId()%><br>

客戶最近一次訪問時(shí)間是:<%=newjava.sql.Time(session.getLastAccessedTime())%><br>

兩次請(qǐng)求間隔多長(zhǎng)時(shí)間session將被取消(ms):<%=session.getMaxInactiveInterval()%><br>

是否是新創(chuàng)建的session:<%=session.isNew()?"是":"否"%><hr></body></html>【實(shí)現(xiàn)】《源代碼》【運(yùn)行】《運(yùn)行程序》第7節(jié)application對(duì)象application對(duì)象用于保存應(yīng)用程序中的公有數(shù)據(jù),在服務(wù)器啟動(dòng)時(shí)對(duì)每個(gè)Web程序都自動(dòng)創(chuàng)建一個(gè)application對(duì)象,只要不關(guān)閉服務(wù)器,application對(duì)象將一直存在,所有訪問同一工程的用戶可以共享application對(duì)象。主要內(nèi)容:application對(duì)象的主要方法案例——統(tǒng)計(jì)網(wǎng)站訪問人數(shù)7.1application對(duì)象的主要方法

在application對(duì)象中也可以實(shí)現(xiàn)屬性的設(shè)置、獲取,application對(duì)象的屬性操作有:(1)獲取指定屬性的值;ObjectgetAttribute(Stringattriname)(2)設(shè)置一個(gè)新屬性并保存值voidsetAttribute(Stringattriname,Objectattrivalue)(3)從application對(duì)象中刪除指定的屬性voidremoveAttribute(Stringattriname)(4)獲取application對(duì)象中所有屬性的形成

EnumerationgetAttributeNames()7.2案例——統(tǒng)計(jì)網(wǎng)站訪問人數(shù)【例3-14】利用application對(duì)象的屬性存儲(chǔ)統(tǒng)計(jì)網(wǎng)站訪問人數(shù)。【分析】

對(duì)于統(tǒng)計(jì)網(wǎng)站訪問人數(shù),需要判斷是否是一個(gè)新的會(huì)話,從而判斷是否是一個(gè)新訪問網(wǎng)站的用戶,然后才能統(tǒng)計(jì)人數(shù)。【實(shí)現(xiàn)】《源代碼》【運(yùn)行】《運(yùn)行程序》【實(shí)現(xiàn)】設(shè)計(jì)程序ch03_14_applicatin.jsp,其代碼如下:

<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%><html><head><title>統(tǒng)計(jì)網(wǎng)站訪問人數(shù)及其當(dāng)前在線人數(shù)</title></head><body><%!IntegeryourNumber=newInteger(0);%><%if(session.isNew()){//如果是一個(gè)新的會(huì)話

Integernumber=(Integer)application.getAttribute("Count");if(number==null)//如果是第1個(gè)訪問本站

{number=newInteger(1);}else{number=newInteger(Value()+1);}application.setAttribute("Count",number);yourNumber=(Integer)application.getAttribute("Count");}%>

歡迎訪問本站,您是第<%=yourNumber%>個(gè)訪問用戶。

</body></html>第8節(jié)out對(duì)象

out對(duì)象的主要功能是向客戶輸出響應(yīng)信息。其主要方法為“print()”,可以輸出任意類型的數(shù)據(jù),HTML標(biāo)記可以作為out輸出的內(nèi)容?!纠?-15】分析下面程序的運(yùn)行情況,并給出運(yùn)行界面。<%@pagelanguage="java"pageEncoding="UTF-8"%><html><head><title>out的使用</title></head><body>

利用out對(duì)象輸出的頁(yè)面信息:<br><hr><%out.print("aaa<br/>bbb"); out.print("<br/>用戶名或密碼不正確,請(qǐng)重新

<ahref=''><fontsize='15'color='red'>登錄</font></a>"); out.print("<br><ahref='javascript:history.back()'>后退</a>……");%></body></html>【實(shí)現(xiàn)】《源代碼》【運(yùn)行】《運(yùn)行程序》第9節(jié)JSP應(yīng)用程序設(shè)計(jì)綜合示例網(wǎng)上答題及其自動(dòng)評(píng)測(cè)系統(tǒng)

設(shè)計(jì)簡(jiǎn)單的購(gòu)物車應(yīng)用案例9.1網(wǎng)上答題及其自動(dòng)評(píng)測(cè)系統(tǒng)【例3-17】設(shè)計(jì)一個(gè)網(wǎng)上答題及其自動(dòng)評(píng)測(cè)系統(tǒng)。本案例設(shè)計(jì)一個(gè)簡(jiǎn)單的網(wǎng)上答題與評(píng)測(cè),其運(yùn)行界面如圖3-17所示。該程序包括兩部分,首先是試題頁(yè)面的設(shè)計(jì)及其解答的提交,其次是,當(dāng)提交解答后,系統(tǒng)自動(dòng)評(píng)閱并給出評(píng)閱結(jié)果。圖3-17(a)是試題頁(yè)面,圖3-17(b)是評(píng)閱后給出的解答頁(yè)面?!痉治觥?/p>

該案例的設(shè)計(jì),需要設(shè)計(jì)兩個(gè)JSP頁(yè)面:一個(gè)是提交信息頁(yè)面,另一個(gè)是獲取提交信息并進(jìn)行處理顯示結(jié)果頁(yè)面。

其設(shè)計(jì)關(guān)鍵是如下兩點(diǎn):(1)對(duì)于互斥的單選框、只允許的單選的列表框,只傳遞一個(gè)參數(shù)。(2)對(duì)于復(fù)選框、可多選列表框,需傳遞多個(gè)參數(shù),通過數(shù)組保存并獲取參數(shù)值。【實(shí)現(xiàn)】(1)提交信息頁(yè)面(2)獲取提交信息并進(jìn)行處理顯示結(jié)果頁(yè)面【運(yùn)行】《運(yùn)行程序》9.2設(shè)計(jì)簡(jiǎn)單的購(gòu)物車應(yīng)用案例【例3-18】設(shè)計(jì)一個(gè)簡(jiǎn)單的購(gòu)物車程序。該案例提供了兩類不同的商品,不同類型的商品需要在不同的網(wǎng)頁(yè)上瀏覽,并添加到購(gòu)物車中,最后顯示購(gòu)物車中所選購(gòu)的商品。其運(yùn)行界面如圖3-18所示,圖(a)是購(gòu)買“肉類”商品的頁(yè)面,圖(b)是購(gòu)買“球類”的頁(yè)面,兩個(gè)頁(yè)面可以互相跳轉(zhuǎn),并可以再向購(gòu)物車中添加商品,圖(c)是購(gòu)物車中已經(jīng)購(gòu)買的商品顯示頁(yè)面。【分析】

從所給出的需求,該系統(tǒng)需要3個(gè)頁(yè)面,且三個(gè)頁(yè)面共享購(gòu)物信息,直到購(gòu)物結(jié)束,顯然,該購(gòu)物過程是在ssesion范圍內(nèi)完成的,需要使用ssesion對(duì)象實(shí)現(xiàn)信息的共享?!緦?shí)現(xiàn)】

(1)購(gòu)買“肉類”商品的頁(yè)面(2)購(gòu)買“球類”商品的頁(yè)面(3)顯示購(gòu)物車信息的頁(yè)面【運(yùn)行】《程序運(yùn)行》本章小結(jié)介紹了JSP的基本語(yǔ)法,JSP指令和JSP動(dòng)作并通過案例介紹其使用方法。(1)JSP腳本:變量、方法的聲明,表達(dá)式,腳本段。(2)JSP注釋:HTML注釋,JSP注釋,java語(yǔ)言注釋。(3)JSP指令:page指令:定義整個(gè)頁(yè)面的全局屬性;include指令:用于包含一個(gè)文本或代碼的文件。(4)JSP動(dòng)作:jsp:include動(dòng)作:在頁(yè)面得到請(qǐng)求時(shí)包含一個(gè)文件;jsp:forward動(dòng)作:引導(dǎo)請(qǐng)求者進(jìn)入新的頁(yè)面。(5)JSP內(nèi)置對(duì)象:out、request、response、session、pageContext、application、config、page、exception,主要介紹了request、response、session、application對(duì)象的常用方法和常用屬性。重點(diǎn):利用這些內(nèi)容設(shè)計(jì)jsp程序。

上機(jī)實(shí)習(xí)1.應(yīng)用Date函數(shù)讀取系統(tǒng)當(dāng)前時(shí)間,根據(jù)不同的時(shí)間段,在瀏覽器輸出不同的問候語(yǔ),例如上午0~12點(diǎn)之間輸出“早上好”,同時(shí)把系統(tǒng)的年、月、日、小時(shí)、分、秒和星期輸出到用戶的瀏覽器。2.加載文件,制作一個(gè)JSP文件,計(jì)算一個(gè)數(shù)的平方,然后再制作一個(gè)JSP文件,在客戶端顯示出來(lái)。要求,應(yīng)用<jsp:include>動(dòng)作加載上述的JSP文件并在客戶端的“查看源文件”中觀察源文件。該題目,是否可以采用include指令實(shí)現(xiàn)加載?為什么?3.設(shè)計(jì)表單,制作讀者選購(gòu)圖書的界面,當(dāng)讀者選中一本圖書后,單擊“確定”按鈕,用“jsp:forwardpage=”語(yǔ)句將頁(yè)面跳轉(zhuǎn)到介紹該圖書信息頁(yè)面。4.設(shè)計(jì)求任意兩個(gè)整數(shù)和的Web程序,要求,用戶通過提交頁(yè)面(input.jsp)輸入兩個(gè)整數(shù),并提交給一個(gè)sum.jsp程序,在sum.jsp中計(jì)算這兩個(gè)數(shù)的代數(shù)和,如果代數(shù)和為非負(fù)數(shù),則跳轉(zhuǎn)到positive.jsp頁(yè)面,給出“結(jié)果為正!”信息提示并顯示計(jì)算結(jié)果,否則跳轉(zhuǎn)到negative.jsp頁(yè)面,給出“結(jié)果為負(fù)!”信息提示并顯示計(jì)算結(jié)果。5.設(shè)計(jì)一個(gè)用戶注冊(cè)表單,其提交頁(yè)面和信息獲取后顯示頁(yè)面,如圖3-19所示,用戶填寫完并提交后輸出用戶填寫的信息。6.設(shè)計(jì)兩個(gè)頁(yè)面6_1.jsp、6_2.jsp,理解JSP中四種作用范圍的區(qū)別:page,request,session,application。6_1.jsp中分別在四個(gè)范圍內(nèi)存儲(chǔ)四個(gè)字符串,其主要代碼如下:pageContext.setAttribute("p","pagestr");request.setAttribute("r","requeststr");session.setAttribute("s","sessionstr");application.setAttribute("a","applicationstr")

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論