『壹』 java如何獲取sessionid
這個功能老版本servlet規范中有,新版本中好像被屏蔽了。可以換一種做法,寫一個session監聽。創建時將session
id與session對象構造一個hashMap放到
application中去,銷毀時從application中移除。然後你就可以獲取了。
『貳』 java web的怎麼通過sessionid得到session
在回答問題之前,跟你簡單介紹Session的工作原理:
不需要寫手動寫SessionID:
代碼如下:
HttpSessionsesion=Request.getSesion();
if(session!=null){
//如果sessionID不等於空版,則說明是權第二次訪問
//寫第二次訪問時的代碼
}else{
//寫第一次訪問的代碼
}
javaweb怎麼通過sessionid得到session這個我們不需要了解,就是第二次客戶端發出請求時,將sessionid也發給了伺服器,伺服器根據這個唯一的ID找到相應的session(session都是保存在伺服器的資料庫中,每個session用唯一一個ID所標識),就像是資料庫中根據關鍵字查找數據一樣,找到之後就可以直接用這個session裡面的數據了。
『叄』 jquery 如何調用java中的session 或者request
session對象用於在會話范圍內,記錄每個客戶端的訪問狀態,以便於跟蹤每個客戶端的操作狀態。在會話中存儲的信息,在瀏覽器發出後續請求時可以獲取這些會話的有效數據。
在jsp頁面中可以直接使用session對象,也可以通過pageContext.getSession()或request.getSession()方法重新獲取session對象。
session對象可以保存用戶的登錄信息,實現購物車功能等。
HTTP協議是一種無狀態協議。客戶向伺服器發出請求request,然後伺服器返回響應response,連接就被關閉了。在伺服器端不保留連接的有關信息,因此當下一次連接時,伺服器端已沒有以前的連接信息了,無法判斷這一次連接和以前的連接是否屬於同一個客戶。因此,必須使用會話記錄有關連接的信息。
從客戶打開瀏覽器連接到伺服器,到客戶關閉瀏覽器離開這個伺服器,稱做一個會話。當客戶訪問伺服器是,可能會反復連接這個伺服器上的幾個頁面、反復刷新一個頁面或不斷地向一個頁面提交信息等,伺服器應當通過某種方法知道這是同一個客戶,這時就需要session對象。
Jquery Json調用在日常工作中非常好用,只需要Json數據就可以了。
session的工作原理如下:
1.客戶首次訪問伺服器的一個頁面時,伺服器就會為該客戶分配一個session對象,同時為該session對象指定一個唯一的ID,並且將該ID號發送到客戶端並寫入到cookie中,使得客戶端與伺服器端的session建立一一對應關系。
2.當客戶繼續訪問伺服器上的其他資源時,伺服器不再為該客戶分配新的session對象,直到客戶端瀏覽器關閉、超時或調用session的invalidate()方法使其失效,客戶端與伺服器的會話結束。
3.當客戶重新打開瀏覽器訪問網站時,伺服器會重新為客戶分配一個session對象,並重新分配sessionID。
session對象主要用於屬性操作和會話管理,常用方法如下:
1.public void setAttribute(Sting
name, Object
value),設定指定名字的屬性的值,並將它添加到session會話范圍內,如果這個屬性是會話范圍內存在,則更改該屬性的值。
2.public Object getAttribute(String
name),在會話范圍內獲取指定名字的屬性的值,返回值類型為object,如果該屬性不存在,則返回null。
3.public void removeAttribute(String
name),刪除指定名字的session屬性,若該屬性不存在,則出現異常。
4.public void
invalidate(),使session失效。可以立即使當前會話失效,原來會話中存儲的所有對象都不能再被訪問。
5.public String getId(
),獲取當前的會話ID。每個會話在伺服器端都存在一個唯一的標示sessionID,session對象發送到瀏覽器的唯一數據就是sessionID,它一般存儲在cookie中。
6.public void setMaxInactiveInterval(int interval),設置會話的最大持續時間,單位是秒,負數表明會話永不失效。
7.public int getMaxInActiveInterval(),獲取會話的最大持續時間。
8.使用session對象的getCreationTime()和getLastAccessedTime()方法可以獲取會話創建的時間和最後訪問的時間,但其返回值是毫秒,一般需要使用下面的轉換來獲取具體日期和時間。
Date creationTime = new
Date(session.getCreationTime());
Date accessedTime = new
Date(session.getLastAccessedTime());
<%@ page language="java" import="java.util.*" contentType="text/html;charset=GBK"%>
<%
String
path = request.getContextPath();
String basePath =
request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<html>
<head>
<base
href="<%=basePath%>">
<title>session對象方法</title>
<meta
http-equiv="pragma" content="no-cache">
<meta
http-equiv="cache-control" content="no-cache">
<meta
http-equiv="expires" content="0">
<meta
http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta
http-equiv="description" content="This is my
page">
<!--
<link rel="stylesheet" type="text/css"
href="styles.css">
-->
</head>
<body>
<b>
會話ID:<%=session.getId() %>
<br>
是否新會話:<%=session.isNew()
%><br>
設置和獲取屬性對象:用戶名 =
<%session.setAttribute("用戶名","陳寧");
%>
<%=session.getAttribute("用戶名")
%><br>
<%
Date creationTime = new
Date(session.getCreationTime());
Date accessedTime = new
Date(session.getLastAccessedTime());
%>
會話創建時間:<%=creationTime
%><br>
上次訪問時間:<%=accessedTime
%><br>
會話持續時間(s):<%=session.getMaxInactiveInterval()
%><br>
<%session.setMaxInactiveInterval(12);
%>
修改後的會話持續時間(s):<%=session.getMaxInactiveInterval()
%><br>
<%session.invalidate();
%>
</b>
</body>
</html>
Jquery Json調用在日常工作中非常好用,只需要Json數據就可以。