jsp資料互動(二)
01.Application原理與應用
01.application物件的作用域範圍是整個應用服務,而它在應用中所承擔的責任就類似於一個全域性變數。只要服務啟動,則application物件就會存在。
02.在一個應用中只有一個application,每一個使用者都會共享這一個application物件。
03.通過統計網站訪問次數來講解application的用法
02.物件作用域
03.Cookie簡介
解析:cookie是Web伺服器儲存在客戶端的一系列文字資訊,根據域名和埠號區分是否儲存成一個檔案,檔案大小為4k。注意:http://localhost:8080/news 和http://localhost:8080/news/util會形成兩個cookie檔案。
1. 什麼是cookie
瀏覽器與WEB伺服器之間是使用HTTP協議進行通訊的,當某個使用者發出頁面請求時,WEB伺服器只是簡單的進行響應,然後就關閉與該使用者的連線。因此當一個請求傳送到WEB伺服器時,無論其是否是第一次來訪,伺服器都會把它當作第一次來對待,這樣的不好之處可想而知。為了彌補這個缺陷,Netscape開發出了cookie這個有效的工具來儲存某個使用者的識別資訊,因此人們暱稱為“小甜餅”。cookies是一種WEB伺服器通過瀏覽器在訪問者的硬碟上儲存資訊的手段:Netscape Navigator使用一個名為cookies.txt本地檔案儲存從所有站點接收的Cookie資訊;而IE瀏覽器把Cookie資訊儲存在類似於C:\windows\cookies的目錄下。當用戶再次訪問某個站點時,服務端將要求瀏覽器查詢並返回先前傳送的Cookie資訊,來識別這個使用者。
2.使用Cookie
解析:
獲取指定key值cookie的核心程式碼
<%
Cookie[] cookies = request.getCookies();
if(cookies!=null){
for(int i=0;i<cookies.length;i++){
if(cookies[i].getName().equals("uname")){
response.sendRedirect(path+"/welcome.jsp");
}
}
}
%>
3.JavaBean
解析:從JavaBean的功能上可以分為封裝資料和封裝業務的JavaBean
一個JavaBean至少符合以下條件
01.是一個公有類
02.屬性私有
03.有getter和setter方法
04.無參的公有構造
3.補充一下 Session使用
TTP協議是無狀態的,即資訊無法通過HTTP協議本身進傳遞。為了跟蹤使用者的操作狀態,ASP應用SESSION物件。JSP使用一個叫HttpSession的物件實現同樣的功能。HTTPSession 是一個建立在cookies 和URL-rewriting上的高質量的介面。Session的資訊儲存在伺服器端,Session的id儲存在客戶機的cookie中。事實上,在許多伺服器上,如果瀏覽器支援的話它們就使用cookies,但是如果不支援或廢除了的話就自動轉化為URL-rewriting,session自動為每個流程提供了方便地儲存資訊的方法。
Session一般在伺服器上設定了一個30分鐘的過期時間,當客戶停止活動後自動失效。Session 中儲存和檢索的資訊不能是基本資料型別如 int, double等,而必須是java的相應的物件,如Integer, Double。
Httpsession具有如下API:
getId 此方法返回唯一的標識,這些標識為每個session而產生。當只有一個單一的值與一個session聯合時,或當日志資訊與先前的sessions有關時,它被當作鍵名用。
GetCreationTime 返回session被建立的時間。最小單位為千分之一秒。為得到一個對列印輸出很有用的值,可將此值傳給Date constructor 或者GregorianCalendar的方法setTimeInMillis。
GetLastAccessedTime 返回session最後被客戶傳送的時間。最小單位為千分之一秒。
GetMaxInactiveInterval 返回總時間(秒),負值表示session永遠不會超時。
getAttribute 取一個session相聯絡的資訊。(在jsp1.0中為 getValue)
Integer item = (Integer) session.getAttrobute("item") //檢索出session的值並轉化為整型
setAttribute 提供一個關鍵詞和一個值。會替換掉任何以前的值。(在jsp1.0中為putValue)
session.setAttribute("ItemValue", itemName); // ItemValue 必須不是must簡單型別
在應用中使用最多的是getAttribute和setAttribute。現以一個簡單的例子來說明session的應用, test1.jsp(資訊寫入session),test2.jsp(從session讀出資訊)。
1 test1.jsp
2
3 <HTML>
4
5 <HEAD>
6
7 <TITLE> Document </TITLE>
8
9 </HEAD>
10
11 <BODY BGCOLOR="#FFFFFF">
12 session.setAttribute("str",new String(“this is test”));
13 </BODY>
14
15 </HTML>
16 test2.jsp
17 <HTML>
18
19 <HEAD>
20 <TITLE> New Document </TITLE>
21
22 </HEAD>
23
24 <BODY BGCOLOR="#FFFFFF">
25 <%
26 String ls_str=null;
27 ls_str=(String)session.getAttribute("str");
28 out.println(“從session裡取出的值為:”+ls_str);
29 %>
30 </BODY>
31
32 </HTML>