在 JSP 頁面中,我們經常使用內建的 session 物件來獲取會話屬性,典型的寫法如下:
<%= session.getAttribute("×××") %>
這行代碼在 JSP 編譯為 Servlet 後,其底層實際等價於以下 Java 代碼:
request.getSession().getAttribute("×××")
核心差異解析:
session 是 HttpSession 類型的隱含物件,直接可用。request.getSession() 獲取 Session 實例,再調用 getAttribute()。request.getSession() 預設會創建新 Session;若需避免創建,可使用 request.getSession(false)。最佳實踐建議:
${sessionScope.屬性名} 或 JSTL 標籤,提升可讀性與維護性。NullPointerException。掌握這層對應關係,有助於在 JSP 與 Java 代碼之間無縫切換,排查 Session 相關問題時也能更精準定位。