1. java獲取session的值怎麼使用
java獲取session的值每次登陸的時候使用。
HttpSession session=request.getSession();//獲取session
String[] names = session.getValueNames();
for (int i = 0; i < names.length; i++) {
System.out.println(names[i] + "," + session.getValue(names[i]));
}
2. JAVA中怎麼使用session
不考慮框架下,在JAVA中使用session
大概有以下幾種使用方法:
1、前台設置:利用jsp的內置對象session進行設置。
<%
session.setAttribute("username",username);
%>
2、後台設置:
(1)Filter設置:
{
@Override
publicvoiddoFilter(ServletRequestarg0,ServletResponsearg1,FilterChainchain)throwsIOException,ServletException{
//把請求和響應對象強制轉換為HttpServlet域對象
HttpServletRequestrequest=(HttpServletRequest)arg0;
HttpServletResponseresponce=(HttpServletResponse)arg1;
HttpSessionsession=request.getSession(false);
session.setAttribute("username",username);
}
}
(2)Servlet設置:
{
//doGet()與doPost()任選
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
//創建session對象
HttpSessionsession=request.getSession(false);
session.setAttribute("username",username);
}
}
(2)javasession使用擴展閱讀:
Session:在計算機中,尤其是在網路應用中,稱為「會話控制」。Session
對象存儲特定用戶會話所需的屬性及配置信息。
這樣,當用戶在應用程序的 Web 頁之間跳轉時,存儲在 Session
對象中的變數將不會丟失,而是在整個用戶會話中一直存在下去。
當用戶請求來自應用程序的 Web 頁時,如果該用戶還沒有會話,則 Web
伺服器將自動創建一個 Session 對象。當會話過期或被放棄後,伺服器將終止該會話。
Session
對象最常見的一個用法就是存儲用戶的首選項。例如,如果用戶指明不喜歡查看圖形,就可以將該信息存儲在 Session 對象中。
有關使用
Session 對象的詳細信息,請參閱「ASP 應用程序」部分的「管理會話」。注意 會話狀態僅在支持 cookie 的瀏覽器中保留。
session的工作原理:
1、當一個session第一次被啟用時,一個唯一的標識被存儲於本地的cookie中。
2、首先使用session_start()函數,php從session倉庫中載入已經存儲的session變數。
3、當執行PHP腳本時,通過使用session_register()函數注冊session變數。
4、當PHP腳本執行結束時,未被銷毀的session變數會被自動保存在本地一定路徑下的session庫中,這個路徑可以通過php.ini文件中的session.save_path指定,下次瀏覽網頁時可以載入使用。
3. JAVA中的session 是干什麼用的 怎麼給session賦值
session就是一個會話
,在瀏覽器不關閉的前提下,可以保存用戶的信息,就是象一個臨時的容器,來存放這些臨時的東西。比如登錄的保存用戶信息從一個網頁跳轉到另一個網頁,用戶信息就可以用session保存網站購物車可以用session實現
session賦值:
Request.getSession().setAttribute(key,value);
4. JAVA中的session 是干什麼用的
有以下幾種用途:
通過 session 來儲存用戶信息。
存儲用戶的對話狀態,對話狀態就是當前用戶和服務。
是一個jsp內置對象,保存跟一個會話相關的信息。JAVA中的session的作用非常重要,起到保存對話的作用。
5. java的session用法
import
java.io.IOException;
import
javax.servlet.Filter;
import
javax.servlet.FilterChain;
import
javax.servlet.FilterConfig;
import
javax.servlet.ServletException;
import
javax.servlet.ServletRequest;
import
javax.servlet.ServletResponse;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;
import
javax.servlet.http.HttpSession;
import
com.fz.entity.User;
public
class
ValidatorFilter
implements
Filter
{
public
void
destroy()
{
}
public
void
doFilter(ServletRequest
arg0,
ServletResponse
arg1,
FilterChain
arg2)
throws
IOException,
ServletException
{
HttpServletRequest
request
=
(HttpServletRequest)arg0;
HttpServletResponse
response
=
(HttpServletResponse)arg1;
HttpSession
session
=
request.getSession();
User
user
=
(User)session.getAttribute("user");
//判斷用戶是否登錄,如果沒有登錄,則直接重定向至登錄頁面,
//如果登錄,則將請求交給下一個過濾器或者目標資源
if(user
==
null||user.getUserName()==null){
response.sendRedirect(request.getContextPath()+"/login.jsp");
}else{
arg2.doFilter(request,
response);
}
}
public
void
init(FilterConfig
filterConfig)
throws
ServletException
{
}
以上是filter的代碼
以下是在web.xml中的配置
<filter>
<filter-name>validatorFilter</filter-name>
<filter-class>com.fz.filter.ValidatorFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>validatorFilter</filter-name>
<url-pattern>/user/*</url-pattern>
</filter-mapping>
6. Java中Session有什麼作用
簡單通俗的講session就是象一個臨時的容器
來存放這些臨時的東西
從你登陸開始就保存在session里
當然你可以自己設置它的有效時間和頁面
舉個簡單的例子
我們做一個購書的JSP網站
顧客買書的時候會挑選出一些書
但是在付錢之前還可以修改,所以不能存到資料庫
就可以先保存在session里
等到確認了以後再放入資料庫...
7. Java 中如何使用session
幾乎所有的Web開發語言都支持Session功能,Servlet也不例外。 Servlet/JSP中的Session功能是通過作用域(scope)這個概念來實現的。
作用域分為四種,分別為:
page 在當前頁面有效(僅用於JSP中)
request 在當前請求中有效
session 在當前會話中有效
application 在所有應用程序中有效
是不是看不太明白?page因為僅用於JSP中,這里只講述其他三種作用域。首先要聲明的一點,所謂「作用域」就是「信息共享的范圍」,也就是說一個信息能夠在多大的范圍內有效。
話說武松一日來到景陽崗,見一旗幟迎風飄揚,旗子上書五個大字「三碗不過崗」。武松叫道:「店家,拿三碗酒來,再切兩斤熟牛肉!」店小二應聲道:「三碗好酒,二斤熟牛肉啰~~」裡面廚師趕忙當當當當切好牛肉,店小二倒上三碗酒,店小二端上前來。
武松咕咚咕咚連干三碗,叫一聲「好酒!店家,再來三碗!」小二忙又倒上三碗好酒,武松一飲而盡。就這樣前前後後武松一共喝了十八大腕。付了帳剛要走,店小二道: 「客官,這前面山上有大蟲,客官剛剛喝完十八碗酒恐怕過不得崗,不如在小店暫住一夜,待明天和獵戶一同過崗豈不是好?」
之後武松說什麼就留待各位看官自己去回憶啦。在這段武松打虎中,大家有沒有看到些熟悉的東西?
武松: 瀏覽器。
酒館: 伺服器。
店小二、廚師: Servlet或者JSP。
來三碗好酒!: 瀏覽器向伺服器發出HTTP請求。
店小二上酒: 伺服器的響應。
武松從進店到離開: 一個HTTP對話。
我們可以看到,Web交互的最基本單位為HTTP請求(武松點菜)。每個用戶從進入網站到離開網站這段過程稱為一個HTTP會話 (武松進店到出店),一個伺服器的運行過程中會有多個用戶訪問,就是多個HTTP會話(酒館當然不可能只接待武松一個客人)。那麼作用域就可以理解為:
request HTTP請求開始到結束這段時間
session HTTP會話開始到結束這段時間
application 伺服器啟動到停止這段時間
request
一個HTTP請求的處理可能需要多個Servlet合作(武松點菜時店小二就要吩咐廚房做菜),幾個Servlet之間可以通過某種方式傳遞信息(店小二就用吆喝的方式通知廚房),但這個信息在請求結束後就無效了(廚房在做完菜之後就不用再管這道菜的事兒了)。
Servlet之間的信息共享是通過HttpServletRequest介面的兩個方法來實現的:
void setAttribute(String name, Object value)
將對象 value 以 name 為名稱保存到request作用域中。
Object getAttribute(String name)
從request作用域中取得指定名字的信息。
doGet()、doPost()函數的第一個參數就是 HttpServletRequest 對象,使用這個對象的 setAttribute 即可傳遞信息。
那麼設置好信息之後,如何將信息傳給其他Servlet?這就要用到 RequestDispatcher 介面的 forward 方法,將請求轉發給其他Servlet。
RequestDispatcher ServletContext.getRequestDispatcher(String path)
取得Dispatcher以便轉發。path為轉發的目的Servlet。
void RequestDispatcher.forward(ServletRequest request, ServletResponse response)
將request和response轉發。
因此,只要在當前Servlet中先 setAttribute,然後forward,最後在forward到的Servlet中 getAttribute即可實現信息傳遞。
PHP的程序員可能不太好理解這一段,因為PHP中沒有轉發的概念,一個請求只能由一個PHP文件來處理,所以PHP中根本沒有request作用域的概念。而Servlet則不同,請求可以在應用程序中任意轉發,所以用request作用域在不同Servlet之間傳遞信息。需要注意兩點:
轉發不是重定向,轉發是在Web應用內部進行的。PHP支持重定向但沒有轉發。
轉發對瀏覽器是透明的,也就是說,無論在伺服器上如何轉發,瀏覽器地址欄中顯示的仍然是最初那個Servlet的地址。
session
session作用域比較容易理解,同一瀏覽器訪問多次,在這多次訪問之間傳遞信息,就是session作用域。 ('''武松每次點菜帳房先生都要記一筆賬,等武松走之前結帳用。這筆帳在武松吃飯過程中始終有效,即位於session作用域中''')
session是通過HttpSession介面實現的。
Object HttpSession.getAttribute(String name)
從session中獲取信息
void HttpSession.setAttribute(String name, Object value)
向session中保存信息
而通過HttpServletRequest.getSession()方法可以獲得HttpSession對象。
HttpSession HttpServletRequest.getSessio()
獲取當前請求所在的session的對象。
session的開始容易判斷(瀏覽器發出第一個HTTP請求即可認為會話開始),但結束就不好判斷了(因為瀏覽器關閉時不會通知伺服器「我關了,會話可以結束了」),所以只能通過這種方法判斷:如果一定的時間內客戶端沒有反應,則認為會話結束。 Tomcat的默認值為120分鍾,但這個值也可以通過 HttpSession 的 setMaxInactiveInterval 方法來設置。
void setMaxInactiveInterval(int interval)
設置繪畫的超時值。
如果想主動讓會話結束,如用戶單擊「注銷」的時候,可以使用 HttpSession 的 invalidate 方法:
vooid invalidate()
強制結束當前session。
application
application作用域就是伺服器啟動到關閉的整段時間,在這個作用域內設置的信息可以被所有應用程序使用。 (餐館打烊後結帳,用到的即是開張到打烊之間的所有信息。)
還記得上一節提到的ServetContext嗎? application作用域上的信息傳遞就是通過ServetContext實現的。
Object getAttribute(String name)
從application中獲取信息。
void setAttribute(String name, Object value)
向application作用域中設置信息。
總結
可以看到,每個作用域除了實現介面不同、意義不同之外,它們的使用方法和作用都是相同的,都是通過 getAttribute 和 setAttribute 方法進行信息傳遞。
作用域 意義 實現介面
request HTTP請求內 HttpServletRequest
session HTTP會話內 HttpSession
application 伺服器生命周期內 ServletContext
8. java 怎麼使用session
ttpSession session = request.getSession();
session.setAttribute("變數名", 值對象);
session.getAttribute("變數名"); //此時取出來的是Object, 一般需要強轉
session.removeAttribute("變數名");
session.invalidate(); //刪除所有session中保存的鍵
------------------------------------------------------
HttpSession是不能new出來的,
要從HttpServletRequest中調用getSession方法得到.
一般也就是request.getSession();
9. session 在JAVA中的具體使用方法,求帶詳解及具體格式使用方式等。有時間的大俠麻煩多花點時間給菜鳥。
session的使用:
a,創建session
方式一:
HttpSession request.getSession();
方式二:
HttpSession request.getSession(boolean flag);
flag為true:
伺服器查看請求中是否有sessionId,
如果沒有,則創建一個session對象,返回
該對象的引用。
如果有,要查看對應的session對象是否
存在,如果存在,則返回該對象的引用,若
不存在,則創建一個session對象。
flag為false:
伺服器查看請求中是否有sessionId,
如果沒有,返回null。
如果有,要查看對應的session對象是否
存在,如果存在,則返回該對象的引用,若
不存在,返回null。
request.getSession()與
request.getSession(true)等價。
b,常用方法
String session.getId();
//綁訂某個對象
session.setAttribute(String name,Object obj);
//找不到,返回null
Object session.getAttribute(String name)
顯示某個用戶是第幾次訪問該應用。
//設置最大不活動時間
session.setMaxInActiveInterval(int seconds)
c,設置默認超時限制
針對整個伺服器或者某個特定的應用設置
超時限制。
對於tomcat: tomcat_home\conf\web.xml
<session-config>
<session-timeout>30</session-timeout>
</session-config>
對於某個特定的應用 WEB-INF\web.xml
10. Java中Session作用
session機制。session機制是一種伺服器端的機制,伺服器使用一種類似於散列表的結構(也可能就是使用散列表)來保存信息。
當程序需要為某個客戶端的請求創建一個session時,伺服器首先檢查這個客戶端的請求里是否已包含了一個session標識(稱為session id),如果已包含則說明以前已經為此客戶端創建過session,伺服器就按照session id把這個session檢索出來使用(檢索不到,會新建一個),如果客戶端請求不包含session id,則為此客戶端創建一個session並且生成一個與此session相關聯的session id,session id的值應該是一個既不會重復,又不容易被找到規律以仿造的字元串,這個session id將被在本次響應中返回給客戶端保存。
保存這個session id的方式可以採用cookie,這樣在交互過程中瀏覽器可以自動的按照規則把這個標識發揮給伺服器。一般這個cookie的名字都是類似於SEEESIONID。但cookie可以被人為的禁止,則必須有其他機制