เว็บเซิร์ฟเวอร์ต้องการเอ็นจิ้น JSP นั่นคือคอนเทนเนอร์เพื่อประมวลผลเพจ JSP คอนเทนเนอร์ JSP มีหน้าที่ในการสกัดกั้นคำขอสำหรับเพจ JSP บทช่วยสอนนี้ใช้ Apache ซึ่งมีคอนเทนเนอร์ JSP ในตัวเพื่อรองรับการพัฒนาเพจ JSP
คอนเทนเนอร์ JSP ทำงานร่วมกับเว็บเซิร์ฟเวอร์เพื่อจัดเตรียมสภาพแวดล้อมรันไทม์และบริการอื่นๆ ที่ JSP ต้องการ รู้วิธีทำความเข้าใจองค์ประกอบพิเศษที่เป็นส่วนหนึ่งของ JSP
ไดอะแกรมต่อไปนี้แสดงตำแหน่งของคอนเทนเนอร์ JSP และไฟล์ JSP ในเว็บแอปพลิเคชัน
การประมวลผล JSP
ขั้นตอนต่อไปนี้อธิบายวิธีที่เว็บเซิร์ฟเวอร์สร้างหน้าเว็บโดยใช้ JSP -
-
เช่นเดียวกับหน้าปกติ เบราว์เซอร์ของคุณจะส่งคำขอ HTTP ไปยังเว็บเซิร์ฟเวอร์
-
เว็บเซิร์ฟเวอร์รับรู้ว่าคำขอ HTTP นั้นใช้สำหรับหน้า JSP และส่งต่อไปยังเอ็นจิน JSP ทำได้โดยใช้หน้า URL หรือ JSP ซึ่งลงท้ายด้วย .jsp แทน .html .
-
เอ็นจิ้น JSP โหลดเพจ JSP จากดิสก์และแปลงเป็นเนื้อหาเซิร์ฟเล็ต การแปลงนี้ง่ายมาก โดยที่ข้อความเทมเพลตทั้งหมดจะถูกแปลงเป็นคำสั่ง println( ) และอิลิเมนต์ JSP ทั้งหมดจะถูกแปลงเป็นโค้ด Java โค้ดนี้ใช้พฤติกรรมแบบไดนามิกที่สอดคล้องกันของเพจ
-
เอ็นจิน JSP จะคอมไพล์เซิร์ฟเล็ตเป็นคลาสที่สามารถเรียกใช้งานได้ และส่งต่อคำร้องขอดั้งเดิมไปยังเอ็นจินเซิร์ฟเล็ต
-
ส่วนหนึ่งของเว็บเซิร์ฟเวอร์ที่เรียกว่าเอ็นจิ้นเซิร์ฟเล็ตจะโหลดคลาส Servlet และดำเนินการ ในระหว่างการดำเนินการ เซิร์ฟเล็ตจะสร้างเอาต์พุตในรูปแบบ HTML เอาต์พุตจะถูกส่งต่อไปยังเว็บเซิร์ฟเวอร์โดยเอ็นจิ้นเซิร์ฟเล็ตภายในการตอบสนอง HTTP
-
เว็บเซิร์ฟเวอร์ส่งต่อการตอบสนอง HTTP ไปยังเบราว์เซอร์ของคุณในแง่ของเนื้อหา HTML แบบคงที่
-
สุดท้าย เว็บเบราว์เซอร์จะจัดการหน้า HTML ที่สร้างขึ้นแบบไดนามิกภายในการตอบสนองของ HTTP เหมือนกับว่าเป็นหน้าคงที่
ขั้นตอนที่กล่าวมาทั้งหมดสามารถเห็นได้ในแผนภาพต่อไปนี้ -
โดยทั่วไป เอ็นจิน JSP จะตรวจสอบเพื่อดูว่าเซิร์ฟเล็ตสำหรับไฟล์ JSP มีอยู่แล้วหรือไม่ และวันที่แก้ไขบน JSP นั้นเก่ากว่าเซิร์ฟเล็ตหรือไม่ หาก JSP นั้นเก่ากว่าเซิร์ฟเล็ตที่สร้างขึ้น คอนเทนเนอร์ JSP จะถือว่า JSP ไม่ได้เปลี่ยนแปลง และเซิร์ฟเล็ตที่สร้างขึ้นยังคงตรงกับเนื้อหาของ JSP สิ่งนี้ทำให้กระบวนการมีประสิทธิภาพมากกว่าภาษาสคริปต์อื่น ๆ (เช่น PHP) และเร็วกว่านั้น
ในทางหนึ่ง หน้า JSP เป็นอีกวิธีหนึ่งในการเขียนเซิร์ฟเล็ตโดยไม่ต้องเป็นวิซการเขียนโปรแกรม Java ยกเว้นขั้นตอนการแปล หน้า JSP จะได้รับการจัดการเหมือนกับเซิร์ฟเล็ตทั่วไป