我正在處理一些由離職顧問編寫的代碼。我想了解是否存在會議變量傳遞給方法之間的差異,以及由req.getSession()返回一個request.getSession()。getId()vs session.getId()
當我在調試器中檢查他們,他們似乎是相同的。是否有理由不直接從session.getId()變量,而不是req.getSesssion.getId()?
public void enqueueRequest(
HttpSession session,
HttpServletRequest req,
HttpServletResponse res) throws IOException {
req.getSession().removeAttribute(TIME_STAMP);
ResponseCache.INSTANCE.remove(req.getSession().getId());
}
}
VS
session.getId();
session.removeAttribute(TIME_STAMP);
您是否嘗試在代碼中放入'=='來查看它們是否確實是同一個對象? – Jess 2013-03-22 17:29:25
你可以檢查調用代碼,它是如何獲取會話對象的?可能僅從請求中檢索它。 – 2013-03-22 17:31:51
getId()返回一個字符串,並打印出該ID以顯示它們具有相同的ID:INFO:req31d8991cb365c181440bc664e60a INFO:ses31d8991cb365c181440bc664e60a – EdgeCase 2013-03-22 17:32:20