javasession過期過濾器
Ⅰ 如何判斷session過期 java
設置session的失效時間
a)web.xml中
<session-config>
<session-timeout>30</session-timeout>
</session-config>
b)在程序中手動設置
session.setMaxInactiveInterval(30 * 60);//設置單位為秒,設置為-1永不過期
c)tomcat也可以修改過期時間,在server.xml中定義context時採用如下定義:
<Context path="/livsorder" docBase="/home/httpd/html/livsorder"
defaultSessionTimeOut="3600" isWARExpanded="true"
isWARValidated="false" isInvokerEnabled="true"
isWorkDirPersistent="false"/>
2.如何判斷session過沒過期
if(request.getSession(false)==null)
System.out.println("Session has been invalidated!");
else
System.out.println("Session is active!");
Ⅱ java session 過期
你彈出前加個判斷畲
Ⅲ JAVA過濾器用戶登錄超時過濾,為什麼在JSP頁面上右鍵刷新取到的session都為true
1 你可以嘗試 ctrl+F5
2 你可以在頁面裡面寫 <% System.out.println("JSP: "+user_logo); %> 然後對比
Ⅳ java中,前後端分離,如何實現session失效後,頁面操作自動跳轉登錄頁。
publicvoiddoFilter(ServletRequestservletRequest,,FilterChainchain)throwsIOException,ServletException{
HttpServletRequestrequest=(HttpServletRequest)servletRequest;
HttpServletResponseresponse=(HttpServletResponse)servletResponse;
//獲取根目錄所對應的絕對路徑
StringcurrentURL=request.getRequestURI();
//截取到當前文件名用於比較
StringtargetURL=currentURL.substring(currentURL.indexOf("/",1),currentURL.length());
//System.out.println(targetURL);
//如果session不為空就返回該session,如果為空就返回null
HttpSessionsession=request.getSession(false);
if((!"/index.html".equals(targetURL))&&(!"/login.action".equals(targetURL))&&(!"/regist.html".equals(targetURL))&&(!"/regist.action".equals(targetURL))){
//判斷當前頁面是否是重定向後的登陸頁面頁面,如果是就不做session的判斷,防止死循環
if(session==null||session.getAttribute("username")==null){
//如果session為空表示用戶沒有登陸就重定向到index.html頁面
//System.out.println("request.getContextPath()="+request.getContextPath());
response.sendRedirect(request.getContextPath()+"/index.html");
return;
}
}
chain.doFilter(request,response);
}
Ⅳ java session過期問題
1、Session是有生命抄周襲期的,生命周期結束,Session就會過期,Session 裡面的信息就會丟失。
2、另外Session可能會因為其他原因導致session覆蓋而過期;
3、下面舉個小例子的原因解釋說明Session因為覆蓋而丟失(過期)
原因解釋:
客戶端(瀏覽器)基於cookie保存交互的session會話信息,但是cookie又是基於域來區分;
假如A_ 和 B_ 項目使用了同一個域,故其cookie所在層級一樣,如果兩個項目都是用默認的sessionCookieName的話就會導致session的相互覆蓋致某一方session丟失(過期);
在 A_項目需要訪問 B_項目中的某一個服務JSP,需要與B_伺服器建立一個session會話(即生成一個sessionID),如果A_項目與B_項目屬於不同的兩個域或者是cookie所屬不同層級,這個新生成的session和A_項目自身的session會話互不幹擾。
Ⅵ java中的session 從過期失效 到 摧毀 要多少時間
這個是JVM回收機制的問題,什麼時候回收,什麼時候摧毀。
解釋:過期的內容,已經成為jvm中的垃圾信息,這個具體什麼時候摧毀,沒辦法說的,只能說什麼時候JVM進行垃圾回收,什麼時候釋放這個資源。
Ⅶ Java中怎麼判斷Session是否過期
調用request.getSession(false),如果返回null,代表沒有該session即已經過期,反之則沒有過期
Ⅷ JSP登錄的session在iframe裡面過期之後,過濾器或者攔截器的作用會把登錄頁面顯示在iframe的子窗口。
<script type="text/javascript">
// 登錄頁面若在框架內,則跳出框架
if (self != top) {
top.location = self.location;
};
</script>
Ⅸ JAVA可以用過濾器向SESSION傳值嗎
不知道你問的是技術還是規范:
1、技術
過濾器的參數中,有一個是request,通過request.getSession(true)可以獲取到版關聯的session對象(request的類型需權要強轉),然後通過session.setAttribute設置參數即可。
2、規范
通常來說,上面的情況沒有明顯的業務場景,一般有的場景是:過濾器檢測到一些特殊的情況的時候,直接通過request.setAttribute來將一些配置set到request對象上,這樣在servlet/Action/Controller就可以獲取到這些參數進行業務處理了。
Ⅹ java中,如何在session過期之前執行一個更新方法
httpsessionListener session監聽器,搜搜看吧,鑒權這方面的東西有個強大的框架 spring-security