當前位置:吉日网官网 - 油畫收藏 - 如何在html中獲取jsp中session的值?

如何在html中獲取jsp中session的值?

服務器有幾種方法來跟蹤用戶的狀態。壹種方法是服務器保留會話並給客戶機壹個sessionid。客戶端每次發送請求,都會把這個sessionid提交給服務器(瀏覽器就是這麽做的),服務器會根據這個sessionid找到對應的會話。如果使用jsp,jsp引擎(比如tomcat)會把這個會話作為實例變量放在jsp頁面中,妳可以直接使用。如果是html文件,jsp引擎會將html文件的內容直接發送給客戶端。

客戶端的js訪問cookie的方法只能訪問存儲在客戶端的cookie(使用js或session cookies存儲)。

壹般來說,只有服務器端的CGI程序(ASP,PHP,JSP)才有session session功能,用來保存用戶在網站會話過程中的活動數據信息。對於大量的靜態頁面(HTML),只能使用客戶端的cookie來保存臨時的活動數據,但是cookie的操作是壹個非常復雜的過程,遠沒有session操作那麽簡單。

因此,本文向讀者推薦壹種DHTML中的解決方案“持久化技術”,使會話功能也可以用在靜態頁面中。

持久化技術允許我們在當前會話期間將壹些數據對象保存到客戶端,減少了對服務器的訪問請求,充分發揮了客戶端計算機的數據處理能力,從而提高了整體頁面顯示效率。

Microsoft Internet Explorer 5瀏覽器和更高版本支持使用持久性技術,該技術有以下行為可供調用:

保存收藏夾—將頁面添加到收藏夾時保存頁面狀態和信息。

保存歷史記錄—保存當前會話中的頁面狀態和信息。

保存快照—保存頁面狀態,當頁面保存到硬盤時,信息仍然存在。

當用戶將網頁保存到

他們的硬盤。

UserData在當前會話中以XML格式保存頁面狀態和信息的網頁創建。

持久化技術打破了過去使用cookies和session的傳統。它繼承了過去cookies的壹些安全策略,同時增加了存儲和管理數據的能力。我們的頁面有64KB的用戶數據存儲容量,每個站點的總存儲容量限制為640KB。

持久化技術存儲的數據格式符合XML標準,所以可以使用DOM技術中的getAttribute和setAttribute方法來訪問數據。

下面是持久化技術的壹個典型應用。通過分析持久化存儲的數據,靜態頁面具有驗證功能。

實際的判斷過程是這樣的:

有三個對象:遊客V,導航頁A,內容頁c。

訪問者V只能通過導航頁A的鏈接看到內容頁C;

如果訪問者V通過其他渠道訪問內容頁面C(例如,通過其他網站的超鏈接,直接在IE地址欄輸入網址等。),內容頁C會自動提示版權信息並顯示空白頁。

具體實施步驟:

1.在“導航頁”中添加壹個樣式來定義持久類,同時添加存儲函數fnSave來授權。

& ltSTYLE & gt

。user data { behavior:URL(# default # user data);}

& lt/STYLE & gt;

& lt腳本語言= Javascript & gt

網頁編程

函數fnSave(){

opersistdiv . set attribute(" bis valid "," true ");

opersistediv . save(" oXMLStore ");

}

& lt/SCRIPT & gt;

第二,在“導航頁面”

& ltDIV CLASS = user data ID = " oPersistDiv " & gt。& lt/DIV & gt;

3.在“導航頁面”的超鏈接屬性中添加壹條語句,調用函數fnSave:

& lta href = ' red hat 2 . htm ' onmousedown = " fn save()" & gt;

接下來,將驗證功能添加到內容頁面:

第四,在“內容頁”中添加壹個樣式來定義持久類,同時添加存儲函數fnLoad來判斷合法性。

& ltSTYLE & gt

。user data { behavior:URL(# default # user data);}

& lt/STYLE & gt;

& lt腳本& gt

var bPageValid = false

函數fnLoad(){

opersistediv . load(" oXMLStore ");

if((opersistediv . get attribute(" bis valid "))& amp;& amp(opersistediv . get attribute(" bis valid ")= = " true ")){

bPass = true

網頁模板

}

否則{

bPass = false

}

opersistdiv . set attribute(" bis valid "," false ");

opersistediv . save(" oXMLStore ");

if(bPass==false){

Varerror = "來源不明,請通過授權網站訪問我們。";

alert(sError);

location . href = " about:blank ";

}

}

& lt/SCRIPT & gt;

動詞 (verb的縮寫)修改

& ltBODY onload = " fn load()" & gt;

& ltDIV CLASS = user data ID = " oPersistDiv " & gt。& lt/DIV & gt;

從上面的例子可以看出,通過持久化的使用,普通的靜態內容頁面具有了session的功能,普通的不敏感信息可以通過session完全保存在客戶端。

另外,如果妳不懂堅持的用處,也可以這麽做。您的主頁上有壹個表單,用於提交您的用戶名和密碼。如果妳把主頁改成html頁面,那沒問題,但是妳得在其他地方接收用戶名和密碼(比如logon.jsp)。表單的動作設置為logon.jsp。很簡單。用表單的動作來傳遞接受會話的地方,主頁可以是靜態的。

  • 上一篇:過早使用重力球瓶的危險
  • 下一篇:娛樂圈的LES明星都有哪些?
  • copyright 2024吉日网官网