国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java_Web之狀態管理

2019-11-15 00:09:23
字體:
來源:轉載
供稿:網友
java_Web之狀態管理

回顧及作業點評:

(1)jsp如何處理客戶端的請求?

使用response對象處理響應

(2)請描述轉發與重定向有何區別?

轉發是在服務器端發揮作用,通過forward方法將提交信息在多個頁面間進行傳遞。客戶端瀏覽器的地址欄不會顯示出轉向后的地址

重定向是在客戶端發揮作用,通過請求新的地址實現頁面轉向,在地址欄中可以顯示轉向后的地址

(3)JSP如何實現數據庫訪問?

使用JDBC訪問數據庫

預習檢查:(1)除了request對象和response對象,JSP還包括哪些內置對象?1、Cookie 2、session是JSP內置對象 3、application對象(2)Cookie的作用?1、對特定對象的追蹤 2、統計網頁瀏覽次數 3、簡化登錄(3)請說明session對象與application對象的區別?在一次會話范圍內容有效,在會話期間與session綁定的對象皆屬于該范圍在一個應用服務器范圍內有效,當應用服務啟動后即創建該對象,并向所有用戶所共享

本章目標

掌握Cookie的原理及應用

掌握session的原理及應用

掌握application的原理及應用

本章任務

一、使用Cookie實現保存已訪問的信息

(1)什么是Cookie?

Cookie是Web服務器保存在客戶端的一系列文本信息

Cookie的作用

對特定對象的追蹤

統計網頁瀏覽次數

簡化登錄

安全性能 容易信息泄露

(2)Cookie的語法

第一步:導入包import="javax.servlet.http.Cookie"第二步:創建CookieCookie newCookie=new Cookie("parameter", "value");parameter:用于代表cookie的名稱(key)value:用于表示當前key名稱所對應的值第三步:寫入Cookieresponse.addCookie(newCookie)

(3)設置Cookie屬性的常用方法

類型          方法名稱                  說  明void       setMaxAge(int expiry)      設置Cookie的有效期,以秒為單位void       setValue(String value)     在Cookie創建后,對Cookie進行賦值 String     getName()                  獲取Cookie的名稱String     getValue()                 獲取Cookie的值String     getMaxAge()                獲取Cookie的有效時間,以秒為單位
案例:------從登錄驗證頁面表單中獲取用戶名------<%       String username=reqeust.getParameter("username");//以key/value的形式創建Cookie創建Cookie,使用response的addCookie方法保存CookieCookie uname=new Cookie("uname", username); response.addCookie(uname);... ...%>-----在顯示頁面顯示用戶名---------------<%//獲取請求中的Cookie,以數組方式保存使用reqeust獲取Cookie數組,通過cookie的名稱獲取對應的內容       Cookie cookies[ ]=request.getCookies();       //循環遍歷數組,得到key=uname的Cookie      for(int i=0;i<cookies.length;i++){              Cookie ucookie=cookies[i];              if(ucookie.getName().equals("uname”));//判斷Cookie的名稱 %>    歡迎你:<%=ucookie.getValue() %>//獲取key對應的value,輸出顯示    <%  }  %>

二、使用session對象實現頁面訪問控制

(1)如圖:

(2)什么是會話?一個會話就是瀏覽器與服務器之間的一次通話,包含瀏覽器與服務器之間的多次請求、響應過程

(3)JSP內置對象session

(4)session與窗口的關系一個session對應一個窗口,那么通過超鏈接打開的窗口是否也是新的session呢?答案:不是每個session對象都與瀏覽器一一對應 重新開啟一個瀏覽器,相當于重新創建一個session對象重新開啟一個IE窗口,直接訪問系統首頁面通過超鏈接打開的新窗口,新窗口的session與其父窗口的session相同

(5)使用session實現訪問控制

在控制頁面獲取用戶請求的登錄信息進行驗證------登錄處理頁面的代碼片斷------<%if (rs.next()) {  //如果是已注冊用戶在session中存放用戶登錄信息session.setAttribute("LOGINED_USER", loginedUser);response.sendRedirect("index.jsp");} else {response.sendRedirect("login.html");}%>--如果session中不存在該用戶的登錄信息,轉入登錄頁面--<%User user = (User) session.getAttribute("LOGINED_USER");if (user == null) {response.sendRedirect("login.jsp");}%>

(6)include指令除了首頁面,其它頁面中同樣需要加入登錄驗證, 有沒有辦法避免冗余代碼的出現?可以將一些共性的內容寫入一個單獨的文件中,然后通過include指令引用該文件,從而降低代碼的冗余問題,也便于修改共性內容

案例:創建登錄驗證文件 loginControl.jsp<%@ page import="org.jbit.bean.User"%><%User user = (User) session.getAttribute("LOGINED_USER");if (user == null) {response.sendRedirect("login.html");}%>在后臺首頁面中使用include指令引用登錄驗證文件<%@ include file="loginControl.jsp"    %>

(7)Cookie與session的比較session是在服務器端保存用戶信息,Cookie是在客戶端保存用戶信息session中保存的是對象,Cookie保存的是字符串session隨會話結束而關閉,Cookie可以長期保存在客戶端Cookie通常用于保存不重要的用戶信息,重要的信息使用session保存

三、使用application對象實現統計在線人數

(1)JSP內置對象application

application類似于系統的“全局變量”,用于實現用戶之間的數據共享 application對象的常用方法:

void setAttribute(String key, Object value):以鍵/值的方式,將一個對象的值存放到application中 application.setAttribute("LOGINED_USER", new ArrayList());

Object getAttribute(String key):根據鍵去獲取application中存放對象的值

if (application.getAttribute("LOGINED_USER") != null) { List loginedUsers = (List) application.getAttribute("LOGINED_USER"); }

(2)application對象

(3)實現訪問人數統計2-1

創建登錄處理頁面------登錄處理頁面代碼片斷------if (rs.next()) {User logineduser = new User(name, pass);session.setAttribute("LOGINED_USER", logineduser);List loginedUsers = new ArrayList();  //訪問者列表if (application.getAttribute("LOGINED_USER") != null) loginedUsers = (List) application.getAttribute("LOGINED_USER");loginedUsers.add(logineduser); //把新登錄用戶的信息存入訪問者列表中application.setAttribute("LOGINED_USER", loginedUsers);response.sendRedirect("index.jsp");}創建已訪問人數統計頁面------已訪問人數統計頁面代碼片斷------<%  List loginedUsers = new ArrayList();  //訪問者列表if (application.getAttribute("LOGINED_USER") != null) loginedUsers = (List) application.getAttribute("LOGINED_USER"); %>目前,有<%=loginedUsers.size()%>人已經訪問過本網站!<br><br>

(4)JSP內置對象的范圍


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大同县| 上饶市| 郸城县| 乐亭县| 长垣县| 酒泉市| 社旗县| 栾城县| 长兴县| 宿州市| 昌乐县| 安化县| 夏邑县| 普陀区| 汶上县| 泸水县| 贺州市| 岱山县| 余庆县| 睢宁县| 博白县| 芒康县| 中西区| 伊金霍洛旗| 茶陵县| 长治市| 阿拉善盟| 蕉岭县| 康马县| 子洲县| 麦盖提县| 东乌珠穆沁旗| 蓝山县| 磐石市| 巴青县| 珲春市| 紫云| 方正县| 内江市| 武威市| 临海市|