JSP內(nèi)置對象(3)_第1頁
JSP內(nèi)置對象(3)_第2頁
JSP內(nèi)置對象(3)_第3頁
JSP內(nèi)置對象(3)_第4頁
JSP內(nèi)置對象(3)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、3、Session對象在web應(yīng)用中,當(dāng)一個客戶首次訪問服務(wù)器上的某個JSP頁面時,JSP引擎(比如Tomcat)將為這個客戶創(chuàng)建一個session對象,當(dāng)客戶關(guān)閉瀏覽器離開之后,session對象被注銷。設(shè)置session對象是為了服務(wù)器端識別客戶,由于HTTP協(xié)議是無連接的,客戶瀏覽器與服務(wù)器建立連接,發(fā)出請求,得到響應(yīng)。一旦發(fā)送響 應(yīng),Web服務(wù)器就會忘記你是誰。下一次再做請求時,Web服務(wù)器不會認(rèn)識你。換句話說,它們不記得你曾經(jīng)做過請求,也不記得它們曾經(jīng)給你發(fā)出過響應(yīng),什 么都不記得。有時這樣做沒什么,但有些時候可能需要跨多個請求保留與客戶的會話狀態(tài)。Session的常用方法方法名稱說

2、明setAttribute(String attName,Objectvalue)設(shè)定指定名字屬性值,并把它存儲在session對象中g(shù)etAttribute(String attName)獲取指定名字屬性值,若屬性不存在,返回nullremoveAttribute(String attName)刪除指定屬性setManInactiveInterval(int interval)設(shè)置session有效時間,單位為秒getManInactiveInterval()獲取session對象生存時間,單位為秒invalidate()銷毀session,并釋放所有與之相關(guān)聯(lián)的對象。要牢記會話與用戶相關(guān)聯(lián)

3、,而不是單個Servlet或JSP頁面getId()返回當(dāng)前session的IDisNew()判斷當(dāng)前用戶是否為新用戶,可以判斷用戶是否刷新了當(dāng)前頁面。如果沒有響應(yīng),則返回truesession購物例子: /*example.jsp*/ <html> <body> 歡迎訪問,請輸入姓名: <form> <input type="text" name="name"> <input type="submit" name="submit" value="提交

4、"> </form> <% String name = request.getParameter("name"); if(name=null) name="" else byte b=name.getBytes("UTF-8"); name=new String(b); session.setAttribute("customerName", name); %> <% if(name.length()>0) %> <a href="book.

5、jsp">歡迎去選書!</a> <% %> </body> <font></font></html>/*book.jsp*/<html> <body> <A href="example.jsp">修改姓名!</A> <p> 請選擇您要購買的書: <form> <input type="checkbox" name="item" value="Java"

6、>Java <input type="checkbox" name="item" value="JSP">JSP <input type="checkbox" name="item" value="Structs">Structs <p> <input type="submit" name="submit" value="提交"> </form> &l

7、t;% String book=request.getParameterValues("item"); if(book!=null) for(int k=0;k<book.length;k+) session.setAttribute(bookk, bookk); %> <a href="count.jsp">去結(jié)賬!</a> </body></html>/*count.jsp*/<html><body> 這里是結(jié)賬處: <% String personName=(

8、String)session.getAttribute("customerName"); out.print("<br>您的姓名:" + personName); Enumeration enumGoods=session.getAttributeNames(); out.print("<br>購物車中的商品:<br>"); while(enumGoods.hasMoreElements() String key=(String)enumGoods.nextElement(); String goo

9、ds=(String)session.getAttribute(key); if(!(goods.equals(personName) out.print(goods+"<br>"); %> <p> <a href="book.jsp">請繼續(xù)購買書籍!</a> <br><a href="example.jsp">修改姓名!</a> </body></html>4、Application對象對于一個容器而言,每個用戶共同使

10、用一個application對象,這和session對象是不一樣的,它用于實現(xiàn)用戶間數(shù)據(jù)共享。服務(wù)器啟動后,自動創(chuàng)建application對象,這個對象一直會保持,直到服務(wù)器關(guān)閉為止。 application對象常用方法方法名稱說明setAttribute(String attName,Object value)設(shè)置指定名字屬性值getAttributr(String attName)獲取指定名字屬性值Enumeration getAttributeNames()返回所有application對象的屬性名字removeAttribute(String attName)刪除指定屬性String

11、getRealPath(String path)返回虛擬路徑的真實路徑提交并查看留言板的例子: application.jsp:<html> <body> <form action="messagePane.jsp" method="post" name="form"> 輸入您的名字:<br><input type="text" name="peopleName"> <br>輸入您的留言標(biāo)題:<br> <i

12、nput type="text" name="Title"> <br>輸入您的留言:<br> <textarea name="messages" rows="10" cols="36"></textarea> <br><input type="submit" value="提交信息" name="submit"> </form> <form

13、action="showMessage.jsp" method="post" name="form1"> <input type="submit" value="查看留言板" name="look"> </form> </body></html>messagePane.jsp:<html> <body> <%!Vector<String> v=new Vector<Strin

14、g>(); int i=0;ServletContext application; synchronized void sendMessage(String s) application=getServletContext(); i+; v.add("No."+i+","+s); application.setAttribute("Mess",v); %> <% String name=request.getParameter("peopleName"); String title=request

15、.getParameter("Title"); String messages=request.getParameter("messages"); if(name=null) name="guest"+(int)(Math.random()*10000); if(title=null) title="無標(biāo)題" if(messages=null) messages="無信息" String s="姓名"+name+"# "+"標(biāo)題:"+t

16、itle+"# "+"內(nèi)容:"+"<br>"+messages; sendMessage(s); out.println("您的信息已提交"); %> </body></html>showMessage.jsp:<html> <body> <%Vector v=(Vector)application.getAttribute("Mess"); for(int i=0;i<v.size();i+) String message=(String)v.elementAt(i); StringTokenizer fenxi=new StringTokenizer(message,"# "); while(f

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論