Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

JSP ทำงานอย่างไร? สถาปัตยกรรม JSP แบบเข้าใจง่าย


เว็บเซิร์ฟเวอร์ต้องการเครื่องเครื่อง JSP (JSP Engine) หรือคอนเทนเนอร์เพื่อประมวลผลหน้า JSP เครื่อง JSP มีหน้าที่รับคำขอสำหรับหน้า JSP บทช่วยสอนนี้ใช้ Apache ซึ่งมี JSP Container ในตัวเพื่อรองรับการพัฒนาหน้า JSP

เครื่อง JSP ทำงานร่วมกับเว็บเซิร์ฟเวอร์เพื่อให้สภาพแวดล้อมรันไทม์และบริการอื่นๆ ที่ JSP ต้องการ มันรู้วิธีเข้าใจองค์ประกอบพิเศษที่เป็นส่วนหนึ่งของ JSP

แผนภาพต่อไปนี้แสดงตำแหน่งของ JSP Container และไฟล์ JSP ในแอปพลิเคชันเว็บ

JSP ทำงานอย่างไร? สถาปัตยกรรม JSP แบบเข้าใจง่าย

การประมวลผล JSP (JSP Processing)

ขั้นตอนต่อไปนี้อธิบายว่าเว็บเซิร์ฟเวอร์สร้างเว็บเพจโดยใช้ JSP อย่างไร:

  • เหมือนกับหน้าปกติ เบราว์เซอร์ของคุณส่งคำขอ HTTP ไปยังเว็บเซิร์ฟเวอร์

  • เว็บเซิร์ฟเวอร์รับรู้ว่าคำขอ HTTP เป็นสำหรับหน้า JSP และส่งต่อให้เครื่อง JSP ทำได้โดยใช้ URL หรือหน้า JSP ที่ลงท้ายด้วย .jsp แทนที่จะเป็น .html

  • เครื่อง JSP โหลดหน้า JSP จากดิสก์และแปลงเป็นเนื้อหา Servlet การแปลงนี้ง่ายมาก โดยข้อความเทมเพลตทั้งหมดจะถูกแปลงเป็นคำสั่ง println() และองค์ประกอบ JSP ทั้งหมดจะถูกแปลงเป็นโค้ด Java โค้ดนี้ใช้พฤติกรรมไดนามิกของหน้า

  • เครื่อง JSP คอมไพล์ Servlet เป็นคลาสที่รันได้ และส่งต่อคำขอเดิมไปยังเครื่อง Servlet

  • ส่วนหนึ่งของเว็บเซิร์ฟเวอร์ที่เรียกว่า Servlet Engine โหลดคลาส Servlet และดำเนินการ ระหว่างการดำเนินการ Servlet จะสร้างเอาต์พุตในรูปแบบ HTML เอาต์พุทจะถูกส่งต่อไปยังเว็บเซิร์ฟเวอร์โดย Servlet Engine ภายในการตอบสนอง HTTP

  • เว็บเซิร์ฟเวอร์ส่งการตอบสนอง HTTP ไปยังเบราว์เซอร์ของคุณในรูปของเนื้อหา HTML แบบคงที่

  • สุดท้าย เบราว์เซอร์เว็บจัดการหน้า HTML ที่สร้างขึ้นแบบไดนามิกภายในการตอบสนอง HTTP เหมือนกับหน้าคงที่

ขั้นตอนทั้งหมดที่กล่าวมาสามารถเห็นได้ในแผนภาพต่อไปนี้ -

JSP ทำงานอย่างไร? สถาปัตยกรรม JSP แบบเข้าใจง่าย

โดยทั่วไป เครื่อง JSP จะตรวจสอบว่า Servlet สำหรับไฟล์ JSP มีอยู่แล้วหรือไม่ และวันที่แก้ไขของ JSP เก่ากว่า Servlet หรือไม่ หาก JSP เก่ากว่า Servlet ที่สร้างขึ้น เครื่อง JSP จะสมมติว่า JSP ไม่ได้เปลี่ยนแปลง และ Servlet ที่สร้างขึ้นยังตรงกับเนื้อหาของ JSP นี่ทำให้กระบวนการมีประสิทธิภาพมากกว่าภาษาสคริปต์อื่นๆ (เช่น PHP) และเร็วกว่า

ดังนั้น หน้า JSP จริงๆ แล้วเป็นเพียงอีกวิธีหนึ่งในการเขียน Servlet โดยไม่ต้องเป็นอัจฉริยะการเขียนโปรแกรม Java นอกจากขั้นตอนการแปลง หน้า JSP จะถูกจัดการเหมือน Servlet ปกติทุกประการ