สิ่งนี้จะแนะนำคุณให้รู้จักกับหัวข้อที่เรียกว่า Session In Java และในขั้นตอนโดยสรุปเกี่ยวกับวิธีการทำงานของการจัดการเซสชัน . คำแนะนำต่อไปนี้จะกล่าวถึงในบทความนี้
มาเริ่มกันเลย
เซสชันใน Java
ช่วงเวลาที่สองระบบ (เช่นไคลเอนต์และเซิร์ฟเวอร์) สื่อสารกันสามารถเรียกได้ว่าเป็นเซสชัน ในแง่ที่ง่ายกว่านั้นเซสชันคือสถานะที่ประกอบด้วยคำขอและการตอบกลับหลายรายการระหว่างไคลเอนต์และเซิร์ฟเวอร์
เป็นที่ทราบกันดีอยู่แล้วว่า HTTP และ Web Servers ต่างก็ไร้สัญชาติ ดังนั้นวิธีเดียวที่จะรักษาสถานะของผู้ใช้คือการใช้เทคโนโลยีที่ใช้การติดตามเซสชัน
การติดตามเซสชันใน servlets สามารถดำเนินการได้หลายวิธีโดยคุกกี้เป็นหนึ่งในนั้น อย่างไรก็ตามมีข้อเสียหลายประการ:
- ข้อมูลที่เป็นข้อความเท่านั้นที่สามารถเก็บไว้ได้
- หากผู้ใช้ปิดใช้งานคุกกี้เว็บแอปพลิเคชันจะไม่สามารถใช้ประโยชน์จากคุกกี้ได้
- คุกกี้เดียวสามารถบรรจุข้อมูลได้ไม่เกิน 4kb
- อีกวิธีในการใช้การติดตามเซสชันคือการสร้างเซสชันที่มีรหัสเซสชันเฉพาะสำหรับผู้ใช้ทุกคนใน java servlet
ไปต่อกับบทความนี้เกี่ยวกับ Session ใน Java
อินเตอร์เฟส Http Session
Servlets ใน java มีอินเทอร์เฟซที่เรียกว่า 'HttpSessionInterface'
ประกอบด้วยวิธีการต่างๆซึ่งบางส่วนจะกล่าวถึงด้านล่าง:
ประเภทของตัวกรองในฉาก
- สาธารณะ HttpSession getSession (สร้างบูลีน): เมธอดนี้รับเซสชันที่เชื่อมโยงกับคำขอ ในกรณีที่ไม่พร้อมใช้งานหรือไม่มีอยู่เซสชันใหม่จะถูกสร้างขึ้นซึ่งขึ้นอยู่กับอาร์กิวเมนต์บูลีนที่ระบุ
- public String getId (): ID เซสชันที่ไม่ซ้ำกันจะถูกส่งกลับโดยวิธีนี้
- getCreationTime () แบบยาวสาธารณะ: เวลาที่สร้างเซสชันจะถูกส่งกลับโดยวิธีนี้ มีหน่วยวัดเป็นมิลลิวินาที
- getLastAccessedTime แบบยาวสาธารณะ (): เวลาที่เข้าถึงเซสชันล่าสุดจะถูกส่งกลับโดยวิธีนี้ มีหน่วยวัดเป็นมิลลิวินาที
- public void invalidate (): เซสชันสามารถยกเลิกได้โดยใช้วิธีนี้
ตัวอย่าง:
ในตัวอย่างด้านล่างเราได้ใช้เมธอด getAttribute () และ setAttribute () ของอินเทอร์เฟซ HttpSession
แผนที่แฮชเทียบกับตารางแฮช
ดำเนินการต่อด้วยตัวอย่างแรกในบทความ Session In Java นี้
index.html
ชื่อผู้ใช้รหัสผ่าน:
ส ervlet1.java
import java.io. * import javax.servlet. * import javax.servlet.http. * public class Servlet1 ขยาย HttpServlet {public void doGet (HttpServletRequest request, HttpServletResponse response) {ลอง {response.setContentType ('text / html') PrintWriter pwriter = response.getWriter () ชื่อสตริง = request.getParameter ('userName') รหัสผ่านสตริง = request.getParameter ('userPassword') pwriter.print ('ยินดีต้อนรับ' + ชื่อ) pwriter.print ('นี่คือรหัสผ่านของคุณ:' + รหัสผ่าน) เซสชัน HttpSession = request.getSession () session.setAttribute ('usname', name) session.setAttribute ('uspass', รหัสผ่าน) pwriter.print (' ดูรายละเอียด ') pwriter.close ()} catch (Exception exp) {System.out.println (exp)}}
Servlet2.java
import java.io. * import javax.servlet. * import javax.servlet.http. * public class Servlet2 ขยาย HttpServlet {public void doGet (HttpServletRequest request, HttpServletResponse response) {ลอง {response.setContentType ('text / html') PrintWriter pwriter = response.getWriter () HttpSession session = request.getSession (false) String myName = (String) session.getAttribute ('usname') String myPass = (String) session.getAttribute ('uspass') pwriter.print ('ชื่อ : '+ myName +' Pass: '+ myPass) pwriter.close ()} catch (Exception exp) {System.out.println (exp)}}}
ดำเนินการต่อด้วยตัวอย่างที่สี่ในบทความ Session In Java นี้
web.xml
MyServlet1 Servlet1 MyServlet1 / loginform MyServlet2 Servlet2 MyServlet2 / ยินดีต้อนรับ
มีข้อดีและข้อเสียต่าง ๆ ของอินเทอร์เฟซนี้ตามรายการด้านล่าง:
เซสชันใน Java
ข้อดี:
keyerror ใน python คืออะไร
- สามารถจัดเก็บวัตถุทุกชนิดเช่นฐานข้อมูลและข้อความลงในเซสชันได้
- เซสชันมีความปลอดภัย
ก้าวต่อไปด้วยข้อเสีย
ข้อเสีย:
- เนื่องจากวัตถุเซสชันถูกเก็บไว้บนเซิร์ฟเวอร์จึงมีค่าใช้จ่ายด้านประสิทธิภาพ
- การทำให้เป็นอนุกรมและการทำให้เป็นอนุกรมยังนำไปสู่ค่าใช้จ่าย
เป็นประโยชน์อย่างมากที่จะใช้ HttpSessionInterface เพื่อติดตามเซสชัน
ดังนั้นเราจึงมาถึงตอนท้ายของบทความนี้ใน 'Session In Java' หากคุณต้องการเรียนรู้เพิ่มเติมโปรดดูไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ หลักสูตรการฝึกอบรมและการรับรอง Java J2EE และ SOA ของ Edureka ได้รับการออกแบบมาเพื่อฝึกอบรมคุณสำหรับแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับกรอบงาน Java ต่างๆเช่น Hibernate & Spring
มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อกนี้และเราจะติดต่อกลับโดยเร็วที่สุด