1. 程式人生 > >jsp資料互動(二)

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>