ใน asp.net global.asax
สามารถมีเหตุการณ์ session_start ได้ เมื่อผู้ใช้เยี่ยมชมเว็บไซต์ครั้งแรก เซสชั่นเริ่มต้น เหตุการณ์จะทริกเกอร์ สิ่งที่คล้ายกันใน struts หรือ java ระบุไว้หรือไม่?
เซสชันเริ่มต้นใน struts 2.0
คำตอบ (3)
คุณสามารถใช้อินเทอร์เฟซ javax.servlet.http.HttpSessionListener และลงทะเบียนใน web.xml วิธีการของคลาสการใช้งานของคุณจะถูกเรียกใช้ในการสร้าง/ทำลายเซสชัน ฯลฯ
รายการใน web.xml จะมีลักษณะดังนี้
<listener>
<description>sessionListener</description>
<listener-class>
your.com.HttpSessionListenerImplementation
</listener-class>
</listener>
สิ่งนี้ไม่เกี่ยวข้องกับ struts แต่เป็นส่วนหนึ่งของ servlet API และพร้อมใช้งานในคอนเทนเนอร์เซิร์ฟเล็ตใดๆ
ไม่ได้อยู่ใน Struts2 และไม่ใช่คุณสมบัติในตัว แน่นอนคุณสามารถแก้ไขได้ด้วยสแต็ก interceptor/interceptor
ใน Java EE เซสชันเป็นหน้าที่ของแอปพลิเคชันเซิร์ฟเวอร์ ด้วยเหตุนี้ เราจึงควรสรุปได้ว่าเรามีเซสชันอยู่เสมออย่างน้อยจากมุมมองของ struts2
ผู้ชายคนนี้แสดงตัวอย่างที่ชัดเจนของวิธีสร้าง interceptor: http://www.mkyong.com/struts2/struts-2-creating-own-interceptor/
สำหรับรายละเอียดมากมายเกี่ยวกับ interceptors โปรดดู: http://struts.apache.org/release/2.1.x/docs/interceptors.html
ที่ด้านล่างสุดของลิงค์สุดท้ายจะมีลิงค์นี้: เราจะเข้าถึงเซสชันได้อย่างไร (จาก Interceptor เพราะในการดำเนินการเราจะใช้ SessionAware แม้ว่าเราจะเข้าถึงเซสชันด้วยวิธีนี้ได้เช่นกัน)
โดยทั่วไป คุณอาจต้องการดำเนินการบางอย่างที่พิเศษเมื่อมีคนเข้าสู่ระบบ และการลงชื่อเข้าใช้จะเป็นที่ที่ดีในการใส่สิ่งที่คุณต้องการลงในเซสชัน ด้วยเหตุผลบางอย่าง คุณจึงต้องการให้บางสิ่งบางอย่างเข้าที่เร็วขึ้น เพื่อย้ำ:
- สร้าง Interceptor SessionSetup แบบกำหนดเอง
- ลงทะเบียน interceptor ของคุณและสร้าง interceptor stack แบบกำหนดเองใน struts.xml
- ให้แพ็คเกจทั้งหมดของคุณใช้สแต็กนี้
คุณสามารถใช้ตัวดักขอบเขตเซสชันที่ให้ไว้ใน struts 2 สำหรับการจัดการเซสชัน ต่อไปนี้เป็นการใช้งานที่ดี คุณสามารถระบุว่าคุณต้องการเริ่มเซสชันด้วยพารามิเตอร์ "start" หรือไม่
<interceptor-ref name="scope">
<param name="type">start</param>
<param name="session">revisionList,revisionManagmentDetails</param>
<param name="key">revisionManagementSessionKey</param>
</interceptor-ref>