Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

Session Management ใน JSP ทำงานอย่างไร?

JSP ใช้ HttpSession interface จาก Servlet API จัดการ session ให้อัตโนมัติ

คุณสมบัติหลัก

  • ระบุตัวตน user ข้ามหลาย request
  • เก็บข้อมูลเฉพาะ user (shopping cart, preferences, login state)
  • JSP เปิด session tracking โดยอัตโนมัติ (default)

Implicit Session Object

JSP มี implicit object session (type HttpSession) ใช้งานได้ทันที ไม่ต้อง request.getSession()

<%
    session.setAttribute("username", "Somchai");
    String name = (String) session.getAttribute("username");
%>

ปิด Session Tracking

<%@ page session="false" %>

ใช้เมื่อหน้าไม่ต้องการ session (ลด memory, performance) เช่น static pages, API endpoints

Session Tracking Mechanisms

  1. Cookies (default) - JSESSIONID cookie
  2. URL Rewriting - fallback เมื่อปิด cookies (response.encodeURL())
  3. SSL Session - ใช้ SSL session ID (น้อย)

แนวทางปฏิบัติที่ดี

  • เก็บ object ขนาดเล็กใน session (หลีกเลี่ยง object ใหญ่)
  • ตั้ง timeout ให้เหมาะสม (web.xml หรือ setMaxInactiveInterval)
  • Invalidate session ตอน logout
  • ใช้ session="false" ในหน้าที่ไม่ต้องการ
  • ระวัง race condition ใน multi-threaded environment (session attributes ไม่ thread-safe)