เมื่อต้องการลบข้อมูล session มีหลายวิธี:
1. ลบ attribute เฉพาะตัว
session.removeAttribute("attributeName");
2. ลบ session ทั้งหมด (invalidate)
session.invalidate();
ล้างทุก attributes และทำให้ session ไม่ใช้งานได้
3. ตั้งค่า Session Timeout แบบต่อ session
session.setMaxInactiveInterval(1800); // 30 นาที (วินาที)
4. Logout (Servlet 2.4+)
request.logout(); // logout user และ invalidate ทุก sessions ของ user นั้น
5. ตั้งค่าใน web.xml (Global)
<session-config>
<session-timeout>15</session-timeout> <!-- นาที -->
</session-config>
ค่าเริ่มต้น Tomcat = 30 นาที การตั้งใน web.xml จะ override default
เมธอดตรวจสอบ
session.getMaxInactiveInterval()- คืน timeout เป็นวินาที (เช่น 15 นาที = 900)session.isNew()- ตรวจสอบว่า session ใหม่หรือเก่า
แนวทางเลือกใช้
| สถานการณ์ | วิธีที่แนะนำ |
|---|---|
| ลบข้อมูลเฉพาะอย่าง (เช่น shopping cart) | removeAttribute() |
| User logout | invalidate() หรือ logout() |
| ปรับ timeout ผู้ใช้รายบุคคล | setMaxInactiveInterval() |
| ตั้งค่ามาตรฐานทั้งแอป | web.xml session-timeout |