มาดูคำอธิบายที่ดีกว่าของเซสชั่น:
เซสชันคือเซสชัน สามารถบันทึกข้อมูลผู้ใช้โดยไม่ต้องปิดเบราว์เซอร์ซึ่งเป็นเหมือนคอนเทนเนอร์ชั่วคราวเพื่อจัดเก็บสิ่งของชั่วคราวเหล่านี้ ตัวอย่างเช่นเมื่อเข้าสู่ระบบให้บันทึกข้อมูลผู้ใช้จากหน้าเว็บหนึ่งไปอีกหน้าหนึ่งข้อมูลผู้ใช้สามารถบันทึกได้โดยใช้เซสชันเพื่อบันทึกตะกร้าสินค้าเว็บไซต์ซึ่งสามารถนำไปใช้งานได้โดยใช้เซสชัน
ทำไมคุณต้องมีเซสชัน
นี่คือการเติมเต็มข้อ จำกัด ของโปรโตคอล HTTP เมื่อผู้ใช้เข้าชมหน้าเซิร์ฟเวอร์จะส่งคืนคำขอ (ตัวอย่างเช่นหลังจากที่คุณเยี่ยมชมหน้าเว็บหน้าจะแสดงเนื้อหาหน้าและอินเทอร์เฟซ UI ให้คุณ) และแม้ว่าจะเสร็จสิ้นก็จะถูกตัดการเชื่อมต่อ เซิร์ฟเวอร์ไม่ติดตามสถานะงานของไคลเอนต์ (เบราว์เซอร์) อีกต่อไป ดังนั้นการร้องขอแต่ละครั้งของ HTTP จึงเป็นอิสระและไม่ต่อเนื่อง HTTP เรียกอีกอย่างว่าโปรโตคอลไร้สัญชาติ หากเราต้องการใช้ข้อมูลของผู้ใช้ในโอกาสหรือกระบวนการเฉพาะมันจะลำบากมากและอันตราย ตัวอย่างเช่นคุณสามารถโต้ตอบกับเซิร์ฟเวอร์ผ่านการส่งพารามิเตอร์ URL และใช้งานการดำเนินการ
การเกิดขึ้นของเซสชันช่วยแก้ปัญหานี้ เซสชันถูกสร้างขึ้นบนเซิร์ฟเวอร์และถูกทำลายโดยเซิร์ฟเวอร์หลังจากระยะเวลาหนึ่ง ในช่วงเวลานี้เซสชั่นระหว่างไคลเอนต์และเซิร์ฟเวอร์จะได้รับการบำรุงรักษาและไคลเอนต์จะใช้ข้อมูลเซสชันบนเซิร์ฟเวอร์เพื่อค้นหาหรือใช้งานข้อมูลบางอย่าง
วิธีใช้เซสชัน
Java API ให้วิธีเราในการรับเซสชันที่เกี่ยวข้องกับเซสชันปัจจุบัน:
httpsession session = request.getSession (); // หรือ httpsession session = request.getSession (บูลีน);
กำหนดค่า:
session.setAttribute ("key", ค่า Value);รับค่า:
ประเภทวัตถุ obj = (ประเภทวัตถุ) เซสชัน. getAttribute ("คีย์"); // ตัวอย่างเช่นชื่อสตริง = (สตริง) เซสชัน. getAttribute ("คีย์");ลบเซสชันเพื่อระบุแอตทริบิวต์:
Session.RemoveAttribute ("คีย์");ล้างเซสชันทั้งหมดเพื่อทำให้เซสชันปัจจุบันเป็นโมฆะอย่างสมบูรณ์:
session.invalidate ();
การตั้งค่าระยะเวลาการหมดเวลาเซสชัน
1. ตำแหน่งการติดตั้ง Tomcat conf/web.xml:
<Session-config> <Session-TimeOut> 30 </Session-TimeOut> </ession-config>
30 คะแนน
2. ตำแหน่งการติดตั้ง Tomcat conf/server.xml:
<context path = "/test" docBase = "/test test" defaultSessionTimeOut = "3600" iswarexpanded = "true" isWarValidated = "false" isInvokerenabled = "true" isWorkDirPersistent = "false"/>>
หน่วยในไม่กี่วินาที
3. การตั้งค่ารหัส Java:
httpsession session = request.getSession (); session.setMaxinactiveInterval (1200);
0 คะแนน:
คำแนะนำอื่น ๆ :
1. สถานะการหมดอายุของเซสชัน:
1>. เบราว์เซอร์ลูกค้าปิด:
2>. เซสชันเซสชันหมดอายุ
3>. เซสชันไคลเอ็นต์เรียก. invalidate ();
2. ไม่ว่าจะปิดเบราว์เซอร์หรือไม่และเซสชั่นยังคงอยู่ที่นั่น
เมื่อเบราว์เซอร์ไคลเอนต์ถูกปิดเซสชันจะยังคงอยู่บนเซิร์ฟเวอร์ในช่วงระยะเวลาหนึ่ง อย่างไรก็ตามเมื่อเบราว์เซอร์เปิดขึ้นอีกครั้งเซสชั่นใหม่จะถูกสร้างขึ้น เบราว์เซอร์ตรงกับเซสชันเซิร์ฟเวอร์ผ่านแอตทริบิวต์ SessionID ที่สร้างขึ้น เซสชั่นสุดท้ายยังคงอยู่ที่นั่น แต่ไม่สามารถเข้าถึงได้
3. < % @ page session = "false" %> สถานการณ์คืออะไร:
ความหมายของประโยคนี้คือไม่สามารถใช้เซสชันได้ในปัจจุบัน แต่เซสชันหน้ายังคงสามารถสร้างได้
4. เซสชันที่สร้างขึ้นเมื่อใด:
สร้างขึ้นเมื่อโปรแกรมเรียก httpservletrequest.getSession (จริง); หากหน้าไม่ได้ใช้ <%@ page session = "false"%> เมื่อหน้า jsp ถูกรวบรวมเป็น servlet, httpsession session = httpservletrequest.getSession (จริง);
สรุป
ข้างต้นคือทั้งหมดที่เกี่ยวกับการทำความเข้าใจเซสชันในชวา ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!