httpsession過時時間

由於先後端分離的開發和之前普通的jsp開發有所區別,前端使用的是html頁面,然後臺只提供了ajax訪問的數據接口,因此一直對後臺session中的值何時過時感興趣。今天關於session中的值在何時纔會過時作了一個實驗。html

我在後臺提供了2個接口前端

@GetMapping("/getSessionValue")
@ResponseBody
public void d1(HttpSession session) {
    // 打印session中的值
    System.out.println(session.getAttribute("user"));
}

@GetMapping("/setSessionValue")
@ResponseBody
public void d2(HttpSession session) {
    // 向session中存儲數據
    session.setAttribute("user", "dagger");
}
複製代碼

最後發現若是html頁面和java項目是在同一個ip和端口下運行的,那麼session中的值是在關閉瀏覽器後才銷燬的。
若是,html頁面和java項目不是在同一個端口下運行的,那麼每一次ajax請求都只表明一次鏈接,即下次一樣的html頁面再次請求後臺的接口時,session都不是同一個了。能夠採用redis來存儲session的方式。 在ajax自定義參數如:java

$.ajax({
    url:url,
    // 加上這個參數就能夠了,容許跨域訪問攜帶cookie
    xhrFields: {
       withCredentials: true
    },
    crossDomain: true,
    success:function() {
    },
    error:function() {
    }
});
複製代碼
相關文章
相關標籤/搜索