ข้อแตกต่างระหว่าง include directive และ include action ของ jsp

ช่วงนี้ยุ่งๆ อยู่กับจาวาครับ ก็เลยพูดถึงจาวาบ่อยหน่อย วันนี้ทำส่วนของการแสดงผล (view) ของโปรเจ็คที่ทำครับและได้มีการแยกองค์ประกอบออกเป็นส่วนๆ (header,sidebar,content,footer) แล้วก็เลยสงสัยว่า เอ…แล้วเราจะ include ไฟล์แบบไหนดีน๊า ได้ข้อมูลมาแล้วก็เลยเอามาเก็บไว้กันลืมครับ

รูปแบบ include directive :

<%@ include file=”somefile.ext” %>

เมื่อ JSP complier เจอโค้ด include directive มันจะนำเ้นื้อหาของไฟล์ที่ถูก include เข้ามาในไฟล์หลักก่อน(merge) ก่่อนที่จะสร้าง (generate) เป็น servlet หรือพูดอีกอย่างหนึ่งก็คือ เหมือนกับก๊อปปี้ข้อความในไฟล์ที่ถูก include ไปวางไว้ในไฟล์ที่ include และจะถูกคอมไพล์พร้อมกันคล้ายๆ กับว่าเป็นไฟล์ JSP ไฟล์เดียวครับ

รูปแบบ include action:

<jsp:include page=”somepage.jsp” />

การทำงานของ include action ตัวไฟล์ที่ถูก include จะถูกสร้าง (generate) เป็น servlet ก่อนแล้ว หรือแยกคอมไพล์ครับ ไม่เหมือนกับ แบบ directive ที่คอมไพล์พร้อมกันไปเลย เมื่อโปรแกรมรันมาถึงตรงที่ include page ไว้ก็จะกระโดดไปทำงานที่ไฟล์ที่ถูก include เข้ามาและแสดงผลลัพธ์ออกมาที่ตำแหน่งที่ถูก include ไว้

อันนี้เป็นความเข้าใจของผมเองนะครับ เอามาเก็บไว้กันลืม ^^ ถ้าเพื่อนๆ มีคำแนะนำเพิ่มเต็มก็ยินดีรับฟังอย่างเต็มที่ครับ