『壹』 cookie的在jsp中
jsp中使用cookie完成狀態管理:
cookie也算http消息報頭的一部分,它的作用有以下方面:
一 記錄訪客的某些信息。例如可以利用cookie記錄用戶光臨的網頁次數,或者訪客曾經輸入過的信息。某些網站可以自動記錄用戶上次登錄的用戶名,用的就是cookie。
二 頁面之間傳遞變數。瀏覽器並不會保存當前頁面上任何變數的信息,當頁面被關閉時,頁面上的所有變數信息將隨之消失。
使用舉例
在jsp中創建簡單的cookie:
String cookiename=visitTimes;
Cookie cookie=new Cookie(cookiename,1); setMaxAge(10*60);//設置cookie存活期 addCookie(cookie);//將cookie寫入客戶端 在jsp中處理cookie數據的常用方法:
getDomain();返回cookie的域名.
getMaxAge();返回cookie的存活時間
getName();返回cookie的名字
getPath();返回cookie適用的路徑
getSecure();如果瀏覽器通過安全協議發送Cookie將返回true值,如果瀏覽器使用標准協議剛返回false值
getValue();返回cookie的值
getVersion();返回cookie所遵從的協議版本setComment(String purpose);設置cookie的注釋
setPath(String url);設置Cookie的適用路徑
setSecure(Boolean flag);設置瀏覽器是否僅僅使用安全協議來發送cookie,例如使用Https或ssl
setValue(String newvalue);cookie創建後設置一個新的值
setVersion(int v);設置cookie所遵從的協議版本。
『貳』 jsp內置對象之Cookie對象
Cookie是Web伺服器保存在用戶硬碟上的一段文本。Cookie允許一個Web站點在用戶電腦上保存信息並且隨後再取回它。
舉例來說,一個Web站點可能會為每一個訪問者產生一個唯一的ID,然後以Cookie文件的形式保存在每個用戶的機器上。
如果用戶使用IE瀏覽器訪問Web,用戶就會看到所有保存在自己硬碟上的Cookie。它們最常存放的地方是:C:\Windows\Cookies。Cookie是以「關鍵字key=值value」的格式來保存記錄的。
(2)創建一個Cookie對象
調用Cookie對象的構造函數就可以創建Cookie對象。Cookie對象的構造函數有兩個字元串參數:Cookie名字和Cookie值。
例如:Cookie c = new Cookie("username","john");
(3)將Cookie對象傳送到客戶端
在JSP中,如果要將封裝好的Cookie對象傳送到客戶端,可使用Response對象的addCookie()方法。
例如:response.addCookie(c)。
(4)讀取保存到客戶端的Cookie
使用Request對象的getCookie()方法,執行時將所有客戶端傳來的Cookie對象以數組的形式排列,如果要取出符合需要的Cookie對象,就需要循環比較數組內每個對象的關鍵字。
例如:
Cookie[] c = request.getCookies();
if(c != null)
for(int i = 0;i < c.length;i++){
if("username".equals(c.getName()))
out.println(c.getValue());
}
(5)設置Cookie對象的有效時間
調用Cookie對象的setMaxAge()方法便可以設置Cookie對象的有效時間,
例如:Cookie c = new Cookie("username","john");
c.setMaxAge(3600);
(6)Cookie應用
Cookie對象的典型應用時用來統計網站的訪問人數。由於代理伺服器、緩存等的使用,唯一能幫助網站精確統計來訪人數的方法就是為每個訪問者建立一個唯一ID。使用Cookie,網站可以完成一下工作。
● 測定多少人訪問過。
● 測定訪問者有多少是新用戶(即第一次來訪),多少是老用戶。
● 測定一個用戶多久訪問一次網站
當一個用戶第一次訪問時,網站在資料庫中建立一個新的ID,並把ID通過Cookie傳送給用戶。用戶再次來訪時,網站把該用戶ID對應的計數器加1,得到用戶的來訪次數。
『叄』 在java中,JSP重定向,轉發,Cookie,session
既然不需要解釋重定向和轉發的概念 上面的逐條注釋就解釋的很清楚了 要別人專解釋也是大同小異
首先屬對於重定向,轉發 要了解他們的工作流程 然後對於Cookie,session的值
Cookie保存於客戶端 session保存於伺服器 還有一些概念自己查
重定向是客戶端跳轉,共有二次請求 轉發是伺服器端跳轉 只有最開始打開頁面的一次請求
對照上面的概念 自己看看就明白了
第一個是對的 我就不說了
第二個 要記住對Cookie的賦值只有等下一次瀏覽請求時才能生效。
第三個 第四個 沒寫入Cookie
第五個 第六個 第七個 第八個 了解session作用范圍 基本上寫入session的東西 只要不是編譯報錯 都能取得到 一般很少會把值保存 session裡面
還說個request 作用域更小了 保存值+然後重定向=獲取不到 以後request 用的多
『肆』 jsp有哪些內置對象 作用分別是什麼
jsp一共有9個內置對象,分別是以下9個:
1.Request對象
發送請求時,該對象被創建,一次請求結束後即銷毀。(一次請求產生一個request對象)
該對象封裝了用戶提交的信息,通過調用該對象相應的方法要以獲取封裝的信息。即,使用該對象可以獲取用戶提交的信息。
當Request對象獲取客戶提交的內容為漢字字元時,會出現亂碼現象,則必須進行特殊處理。首先,將獲取的字元串用ISO8859-1進行編碼,並將編碼存放到一個位元組數組中,然後將這個數組轉化為字元串對象即可。如下代碼:
String text = request.getParameter("body");
byte [] b = text.getBytes("ISO8859-1"); //將text字元串轉換成位元組數組---編碼的過程
text = new String(b); //構造字元串,按照當前操作系統的字元集進行構造。將位元組轉換成字元串---解碼的過程
Request常用的方法:
getParameter(String s) ----- 獲取表單提交的信息
String s = request.getParameter("name");
getProtocol() -----獲取客戶使用的協議
String s = request.getProtocol() ;
getServletPath() ----獲取客戶提交信息的頁面
String s = request.getServletPath();
getMethod() -----獲取客戶提交信息的方式 get或post
String s = request.getMethod();
getHeader() ----- 獲取HTTP頭文件中的accept、accept-encoding和host的值
String s = request.getHeader("accept");
getRemoteAddr() --獲取客戶的ip地址
String s = request.getRemoteAddr();
getServerHost() ---獲取客戶機的名稱
String s = request.getServerHost();
getServerName() ---獲取伺服器名稱
String s = request.getServerName();
getServerPort() ----獲取伺服器的商口號
String s = request.getServerPort();
getPamameterNames() ----獲取客戶端提交的所有參數的名字
Enumeration enum = request.getParameterNames();
while(enum.hasMoreElements()){
String s = (String) enum.nextElement();
out.println(s);
}
2. Response對象:對客戶的請求做出動態響應,向客戶端發送數據。響應客戶請求時創建,響應結束時銷毀。(一次響應產生一個response對象)
動態響應contentType屬性
當一個用戶訪問了一個jsp頁面時,如果該頁面用page指令設置頁面的contentType屬性為text/html,那麼jsp引擎將按照這個屬性值做出反應。如果要動態改變這個屬性值來響應客戶,就需要使用Response對象的setContentType(String s);方法來改變contentType屬性的值。
格式:response.setContentType(String s) -----參數s可取:text/html,application/x-msexcel,application/msword等
Response重定向
在某些情況下,當響應客戶時,需要將客戶重新引導到另一個頁面,可以使用Response的sendRedirect(URL);方法,實現客戶的重定向
格式:response.sendRedirect("index.jsp");
3. Session對象: 在頁面的page指令加上session="true" 或預設 情況下以及在servlet中使用request.getSession();的方式進行創建。超時或服務停止時,session結束。(一個用戶對應一個session對象)
什麼是session對象? ----- 它是一個jsp內置對象,它在第一個jsp被裝載時自動創建,完成會話期管理。從一個客戶打開瀏覽器並連接到伺服器開始,到客戶關閉瀏覽器離 開這個伺服器結束(或者超時),被稱為一個會話。當一個客戶訪問一個伺服器時,可能會在這個伺服器的幾個頁面之間切換,伺服器應當通過某種辦法知道這是一個客戶,就需要創建session對象。
session對象的ID -----當一個客戶首次訪問伺服器上的一個jsp頁面時,jsp引擎會產生一個session對象,同時分配一個String類型的的ID號,jsp引擎同時將這個ID號發送到客戶端,存放在cookie中,這樣,session對象直到客戶關閉瀏覽器後,伺服器端,該客戶的session對象才會消失,會並,和客戶的會話對應關系消失。當客戶重新打開瀏覽器再連接到該伺服器時,伺服器為該客戶再創建一個新的session對象。
session對象的常用方法:
public String getId() ----獲取Session對象的編號
pulbic void setAttribute(String key,Object obj) --- 將參數object指定的對象obj添加到Session對象中,並為添加的對象指定一個索引關鍵字
public Object getAttribute(String key) --- 獲取session對象中含有關鍵字的對象
public Blooean isNew() ----判斷是否為一個新的客戶
4. Application對象:啟動服務時創建,停止服務時銷毀。(整個程序只有一個application對象)
什麼是Application對象? --- 伺服器啟動後就產生了這個Application對象,當客戶在所訪問的的網站的各個頁面之間瀏覽時,這個Application對象都是同一個,直到伺服器關閉。但是,與session對象不同的是,所有客戶的Application對象都是同一個,即,所有客戶共享這個內置的Application對象。
Application對象的常用方法
setAttribute(String key,Ojbect obj) ----將參數obj添加到Application對象中,並為添加的對象指定一個索引關鍵字
getAttribute(String key); ---- 獲取Application對象中含有關鍵字的對象
5.Out對象:請求時,就創建,請求結束時,銷毀。(一個請求,創建一個out對象)
Out對象是一個輸出流,用來向客戶端輸出數據。out對象用於各種數據的輸出。其常用方法如下:
out.print(); ---- 向瀏覽器輸出各種類型數據
out.newLine(); --- 輸出一個換行符
out.close(); ---關閉流
6.cookie對象:
什麼是cookie?----cookie是web伺服器保存在用戶硬碟上的一段文本。cookie允許一個web站點在用戶電腦上保存信息並且隨後再取它。
舉例來說,一個web站點可能會為每一個訪問者產生一個唯一的ID、然後以cookie文件的形式保存在每個用戶的機器上。
如果用戶選擇的是IE瀏覽器訪問web,用戶就會看到所有保存在自己硬碟上的cookie。它們最常存放的地方是:c:/Windows/Cookies。cookie是以」關鍵字 key = 值 value「的格式來保存記錄的。
創建一個cookie對象
調用cookid對象的構造函數就可以創建cookie對象。cookie的構造函數有兩個字元串參數:cookie名字和cookie值。
如:Cookie c = new Cookie("username","hyc");
將cookie對象傳送到客戶端
在jsp中,如果要將封裝好的cookie對象傳送到客戶端,可使用Response對象的addCookie()方法
如:Response.addCookie();
讀取保存在客戶端的cookie
使用request對象的getCookie()方法,執行時,將所有客戶端傳來的cookie對象以數組的形式排列。如果要取出更符合需求的cookie對象,就需要循環比較數組內每個對象的關鍵字。
如:Cookie [] c = request.getCookies();
if (c! = null){
for (int i = 0;i<c.length;i++){
if("username".equals("c,getName))
out.println(c.getValue());
}
}
設置cookie對象的有效時間
調用cookie對象的setMaxAge()方法,可以設置cookie對象的有效時間。如
Cookie c = new Cookie("username","hyc");
c.setMaxAge(3600);
cookie應用
cookie對象的典型應用是用來統計網站的訪問人數。由於代理伺服器、緩存等的使用,唯一能幫助網站精確統計來訪人數的方法就是為每個訪問者建立一個唯 一的ID。使用cookie,網站可以完成以下工作
測試定多少人訪問過;
測定訪問者有多少是新用戶(即第一次來訪)、有多少老用戶;
測定一個用戶多久訪問一次網站
當一個用戶第一次訪問時,網站在資料庫中建立一個新的ID,並把ID通過Cookie傳送給用戶。用戶再次來訪時,網站把該用戶的ID對應的計數器加1,得到用戶來訪的次數。
7.config對象:配置對象
8.page對象:頁面對象
9.Exception對象:在處理異常的網頁中可以直接訪問exception隱式對象