Java Web應用程序開發 (8)教學課件_第1頁
Java Web應用程序開發 (8)教學課件_第2頁
Java Web應用程序開發 (8)教學課件_第3頁
Java Web應用程序開發 (8)教學課件_第4頁
Java Web應用程序開發 (8)教學課件_第5頁
已閱讀5頁,還剩25頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 JSP(三)企業級卓越人才培養天津濱海迅騰科技集團有限公司第八章目標q 理解session、Cookie、application、pageContext 、config原理q 掌握session、Cookie、application、pageContext 、config的用法session對象 q什么是會話(session)?會話就是指訪問者從到達某個特定網絡到離開為止的那段時間。qJSP中使用session對象提供在這段時間內跟蹤用戶信息的方法session對象基礎 q當用戶第一次訪問Web站點時,即向Web服務器發出第一個請求時,Web服務器就會為這個用戶請求建立起一個HttpSess

2、ion會話對象,并分配一個獨一無二的SessionID來標示,即每個用戶都有各自的會話對象q會話對象被服務器用來跟蹤、描述用戶對整個網站的訪問過程 session對象基礎 qHTTP協議是一個沒有持續狀態的協議。當用戶在多個頁間轉換時,HTTP服務器無法知道他的身份 q會話的引入彌補了HTTP協議的缺陷 在session(服務器中)中保存用戶信息 在客戶端維持sessionID sessionID隨每次客戶請求發送到服務器 服務器根據request中的sessionID來定位sessionsession對象基礎 session對象的基類(接口)為: javax.servlet.http.Htt

3、pSessionrequest.getRequestedSessionId()request.getSession()request.getSession(boolean)q判斷session對象是否新建session.isNew();qrequest對象中與session對象相關的方法 session的生命周期qsession對象創建:在客戶端第一次發出請求時qsession對象失效:在客戶端關閉所有瀏覽器時 瀏覽器超時(默認超時時間30分鐘)調用invalidate()方法強制失效session的生命周期q 與session生命周期相關的方法: session.getCreateTime(

4、) /創建時間session.getLastAccessedTime() /最后訪問時間session.setMaxInactiveInterval(int) /設置超時時間(毫秒)session.getMaxInactiveInterval() /獲取超時時間session.invalidate()/強制銷毀sessionsession信息維持q 利用session臨時存放一些中間變量,以在多頁面之間共享數據 在session中設置名稱/值對,如果已存在則更新之session.setAttribute(String , Object )session.setAttribute(name,em

5、p);根據名稱獲取值,不存在返回nullsession.getAttribute(String)Emp str = (Emp)session.getAttribute(name)session信息維持qvalidateLogin.jsp頁面驗證用戶名和密碼的正確性,如果正確將用戶名寫入session,跳轉到指定的頁面if(DBoperator.userValidate(name,pass)session.setAttribute(username,name);response.sendRedirect(Session03.jsp);elseresponse.sendRedirect(login

6、.html);qSession03.jsp從session中讀取出前一頁面寫入的信息,將其顯示在頁面上歡迎光臨application對象qapplication對象用來在多個程序或者是多個用戶之間共享數據 q用戶使用的所有application對象都是同一個qapplication對象的基類(接口)為:javax.servlet.ServletContext application對象application的生命周期創建:服務啟動時自動創建application對象 銷毀:服務器關閉,application 消失 application對象qapplication對象內包含有系統信息 appl

7、ication.getMajorVersion() /主版本信息application.getMinorVersion() /次版本信息application.getResource(String) /映射到特定資源的URLapplication.getRealPath(String) /映射到特定資源的實際路徑application.getServerInfo() /服務器信息application對象qapplication中存儲的數據被所有用戶共享在application中設置名稱/值對,如果已存在則更新之application.setAttribute(String , Object

8、)根據名稱獲取值,不存在返回nullapplication.getAttribute(String)pageContext對象q pageContext對象代表當前正在處理的頁面qpageContext對象的基類為javax.servlet.jsp.PageContextpageContext對象q通過 pageContext 可以取得與JSP相關的其他隱含對象pageContext.getRequest()pageContext.getResponse()pageContext.getServletContext()pageContext.getOut()pageContext.getSes

9、sion()pageContext對象q pageContext對象本身擁有屬性功能,還能處理其他隱式對象的屬性 在pageContext中設置或增加屬性pageContext.setAttribute(String , Object )在指定的隱含對象范圍內設置或增加屬性pageContext.setAttribute(String , Object , int )常量常量含義含義PageContext.APPLICATION_SCOPE application對象范圍PageContext.PAGE_SCOPEPage對象范圍PageContext.REQUEST_SCOPErequest

10、對象范圍PageContext.SESSION_SCOPEsession對象范圍q第三個參數為代表指定范圍的常量pageContext對象q pageContext屬性示例: pageContext.setAttribute(sample , test , PageContext.SESSION_SCOPE) ;/等效于session.setAttribute( sample , test ) ;pageContext對象q取得屬性值 pageContext.getAttribute(String) pageContext.getAttribute(String , int)q在所有隱含對象的

11、范圍內查找指定的屬性 pageContext.findAttribute(String)搜索順序為pageContext、request、session、application CookieqCookie是服務器發送給客戶端瀏覽器的體積較小的純文本信息,存儲在客戶端計算機上qCookie隨著用戶的每次請求,附加在http包中傳遞到服務器端 Cookieq Cookie需要手動聲明 q 新建一個Cookie q 設置Cookie的屬性 q 通過response對象的addCookie()方法將其存入客戶端 q 獲取Cookie對象q 通過request對象的getCookies()方法獲取Coo

12、kie數組Cookieq創建Cookie對象Cookie的構造方法public Cookie(String name, String value)Cookie cookie = new Cookie(favorColor , blue );q示例Cookieq設置與讀取Cookie屬性public int getMaxAge() /獲取過期時間(秒)public void setMaxAge(int expiry) /設置過期時間(秒)public String getName()public void setName(String newName)public String getValue

13、()public void setValue(String newValue)Cookieq將Cookie加入HTTP頭部/利用response將Cookie寫回到客戶端 public void addCookie(Cookie cookie)q示例 Cookie cookie = new Cookie(favorColor , blue );response.addCookie(cookie);Cookieq讀取Cookie/從request中讀取Cookie數組 public Cookie getCookies()q示例 Cookie cookies = request.getCookies();for(int i=0; icookies.length; i+) Cookie cookie = cookiesi;/查找所要的CookieCookie實例:假設我們在做一個安全性要求不高的論壇,希望實現用戶注冊登錄后,下次就不需要再進行用戶名密碼驗證 。設計思路:q 在用戶注冊登錄過后將用戶名信息使用Cookie保存q 用戶再次訪問時檢查是否有包含用戶名的Cookie。如果沒有則顯示登錄頁面,如果有則顯示歡迎信息Cookie本例仍以上一章

溫馨提示

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

評論

0/150

提交評論