วันจันทร์ที่ 13 กันยายน พ.ศ. 2553

แท็กเจเอสพี

ยุคนี้กระแสของ XML มาแรง คำว่า XML ย่อมาจาก Extensible Markup Language เป็น
ภาษาที่มีโครงสร้างคล้ายๆ กับภาษา HTML คือประกอบด้วยแท็กต่างๆ ปะปนกับภาษา
มนุษย์ จุดประสงค์หลักของ XML คือใช้เป็นภาษากลางระหว่างเซิร์ฟเวอร์ต่างชนิดต่างยี่ห้อ
กันให้สามารถรับส่งข้อมูลระหว่างกันได้ โดยไม่ต้องสนใจว่าเซิร์ฟเวอร์เหล่านั้นจะใช้
เทคโนโลยีของค่ายไหน
คำสั่งเจเอสพีได้รับอิทธิพลของ XML ด้วยเหมือนกัน กล่าวคือ เจเอสพีมีสิ่งที่เรียกว่า แท็ก
เจเอสพี ซึ่งเป็นคำสั่งเจเอสพีที่อยู่ในรูปของแท็ก XML โดยจะนำหน้าด้วยแท็ก <jsp: และ
ต่อท้ายด้วย /> เพื่อบอกให้ทราบว่าเป็น แท็กเจเอสพี เราสามารถบอกให้เวบเซิร์ฟเวอร์ทำ
อะไรหลายๆ อย่างได้ด้วยแท็กเจเอสพีเหล่านี้ ในบทนี้เราจะมาดูว่าแท็กเจเอสพีมีอะไรบ้าง

include
คงยังจำได้ว่าถ้าเราต้องการสอดแทรกเนื้อหาในไฟล์อื่นเข้าไปในไฟล์ .jsp ของเรา เราใช้ได
เร็กทีฟ include ข้อเสียของการสอดแทรกเนื้อหาของไฟล์อื่นด้วยวิธีนี้คือ ถ้ามีการแก้ไขไฟล์
ต้นทาง เนื้อหาใหม่จะไม่ไปปรากฏอยู่ในไฟล์ปลายทางโดยอัตโนมัติ เพราะการสอดแทรก
เกิดขึ้นเมื่อตอนที่มีผู้เยี่ยมชมไฟล์ปลายทางเพียงครั้งเดียวเท่านั้นเจเอสพีมีแท็กเจเอสพีที่
ทำงานได้เหมือนกับไดเร็กทีฟ include แต่จะอัพเดทไฟล์ปลายทางโดยอัตโนม้ติเวลาที่มีการ
แก้ไขไฟล์ต้นทาง แท็กนี้คือ <jsp:include ลองดูรูปแบบของคำสั่งจากตัวอย่างต่อไปนี้

 <html>
<title> Test Page </title>
<body>
<jsp:include page=”logo.html” flush=”true” />
<br>
This is a test page.
</body>
</html>


 หน้าของไฟล์ includetag.jsp จะเปลี่ยนตามโดยอัตโนมัติ
แท็ก <jsp: include ต้องมีพารามิเตอร์ flush=”true” อยู่ด้วยเสมอ

forward
แท็ก forward มีไว้สำหรับส่งผู้เยี่ยมชมไปยังเวบหน้าอื่น ตัวอย่างเช่น สมมติว่าเราสร้างไฟล์
ชื่อ forward.jsp ขึ้นมา แล้วกำหนดให้เมื่อไรก็ตามที่มีผู้เข้ามาเยี่ยมชมเวบเพจหน้านี้ ให้เวบ
เซิร์ฟเวอร์ส่งผู้เยี่ยมชมยัง includetag.jsp แทน เราทำได้ดังนี้

<html>
<title> Forward Page </title>
<body>
<jsp:forward page=”includetag.jsp” />
<br>
You will be forward to includetag.jsp.
</body>
</html>

ถ้าลองเข้าถึงเพจนี้ดูจะพบว่าเบราเซอร์จะกระโดดไปยังเพจ includetag.jsp ในทันที

ใช้แท็กเจเอสพีแทนไดเร็กทีฟ
เราสามารถใช้แท็กเจเอสพีแทนการใช้ไดเร็กทีฟ page หรือ include ได้ด้วย โดยมีรูปแบบ
ดังตัวอย่างต่อไปนี้
<jsp:directive.page import=”java.util.*” />
ตัวอย่างนี้ให้ผลเหมือนกับคำสั่ง
<%@ page import=”java.util.*” %>
ทุกประการ
ถ้าเป็นไดเร็กทีฟ include ก็เพียงแต่ใช้คำว่า include แทน page เช่น
<jsp:directive.include file=”hello.html” />
ให้ผลเหมือนกับคำสั่ง
<%@ include file”hello.html” %>
ทุกประการ