บทความนี้วิเคราะห์ความแตกต่างระหว่างตัวกรอง struts2 และ interceptor แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
1. ความแตกต่างที่สำคัญ:
1. interceptors ขึ้นอยู่กับกลไกการสะท้อนของ Java ในขณะที่ตัวกรองจะขึ้นอยู่กับการเรียกกลับฟังก์ชั่น
2. interceptor ไม่ได้ขึ้นอยู่กับคอนเทนเนอร์ servlet ตัวกรองขึ้นอยู่กับคอนเทนเนอร์ servlet
3. ตัวดักจับสามารถทำงานตามคำขอการดำเนินการเท่านั้นในขณะที่ตัวกรองสามารถทำงานได้ตามคำขอเกือบทั้งหมด
4. ตัวดักจับสามารถเข้าถึงวัตถุในบริบทการกระทำและสแต็กค่า แต่ตัวกรองไม่สามารถทำได้
5. ในช่วงวงจรชีวิตของการกระทำการดักจับสามารถเรียกได้หลายครั้งในขณะที่ตัวกรองสามารถเรียกได้เพียงครั้งเดียวเมื่อคอนเทนเนอร์เริ่มต้น
2. ความแตกต่างในการใช้งาน:
ตัวกรองอยู่ในเว็บ Java คุณส่งต่อการร้องขอและการตอบกลับเพื่อกรองข้อมูลบางอย่างล่วงหน้าหรือตั้งค่าพารามิเตอร์ล่วงหน้าจากนั้นส่งผ่านเซิร์ฟเล็ตหรือ struts การกระทำสำหรับตรรกะทางธุรกิจ
ตัวอย่างเช่นกรอง URL ที่ผิดกฎหมาย (ไม่ใช่การเข้าสู่ระบบคำขอที่อยู่หากผู้ใช้ไม่เข้าสู่ระบบกรองออก)
หรือตั้งค่าชุดอักขระก่อนที่จะผ่านการกระทำของ Servlet หรือ Struts
หรือลบอักขระที่ผิดกฎหมายบางตัว (มักใช้ในห้องสนทนาคำสบถบางคำ) - -
ตัวดักสามารถผ่านการกระทำที่ตรงตามเกณฑ์ ตัวดักจับตัวเองเป็นวัตถุ Java ปกติซึ่งสามารถสกัดกั้นการเรียกใช้การกระทำแบบไดนามิก
การดำเนินการของ Interceptor นั้นมีข้อกำหนดของโครงการเว็บที่หลากหลายก่อนและหลังการดำเนินการ นอกจากนี้ยังสามารถป้องกันการดำเนินการของการกระทำและยังสามารถสกัดได้
ส่วนที่สามารถนำกลับมาใช้ใหม่ได้
(มันถูกตั้งโปรแกรมไว้ในลักษณะแทนเจนต์ซึ่งหมายถึงการเรียกใช้วิธีการก่อนการให้บริการหรือวิธีการของคุณหรือเรียกวิธีการตามวิธีการตัวอย่างเช่นพร็อกซีแบบไดนามิกเป็นการใช้งานง่าย ๆ ของการสกัดกั้นมันพิมพ์สตริงก่อนที่คุณจะเรียกวิธีการ (หรือการดำเนินการทางธุรกิจอื่น ๆ )
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ struts ผู้อ่านที่สนใจในเว็บไซต์นี้สามารถดูหัวข้อ: "บทนำและการสอนขั้นสูงเกี่ยวกับกรอบการทำงานของ Struts", "บทนำและการสอนขั้นสูงเกี่ยวกับกรอบฤดูใบไม้ผลิ" และ "บทนำและการสอนขั้นสูงเกี่ยวกับกรอบ Hibernate"
ฉันหวังว่าคำอธิบายในบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคนตามกรอบการทำงานของ Struts