วันศุกร์ที่ 18 กันยายน พ.ศ. 2552

ภาษา JSP

JSP คือ
JSP (Java Server Pages): คือ Script language ที่ทำงานบนเครื่อง server เช่นเดียวกับ perl, php asp หรือ cold fusion เป็นต้น โดยมีโครงสร้างภาษาแบบ JAVA หรือเป็น JAVA ประเภทหนึ่ง แต่มาเขียนให้อยู่ในรูปของ HTML แต่ผลสุดท้ายเมื่อจะใช้งานจริง ๆ ตัว File JSP จะถูกแปลงให้เป็น file ของ JAVA

อะไรคือ JSP

JSP ย่อมาจาก Java Server Pages เทคโนโลยีที่คิดค้นโดยบริษัท Sun Microsystems (ผู้ผลิตคอมพิวเตอร์ซันและผู้พัฒนาจาวา) โดยพัฒนาบนพื้นฐาน
ของภาษาจาวาเพื่อเพิ่มประสิทธิภาพ ให้หน้าเว็บเพจมีความยืดหยุ่นสูงขึ้น โครงสร้างของ JSP นั้นเป็นลักษณะของแท็ก (tag) ชนิดพิเศษที่แทรกเข้าไปในเอกสาร HTML และเปลี่ยนนามสกุลของเอกสารเป็น . JSP แทนที่จะเป็น .HTM
หรือ .HTML โดยแท็กเหล่านี้เว็บบราวเซอร์จะไม่สามารถตีความหมายได้ จะต้องนำไปประมวลผลก่อนที่เว็บเซิร์ฟเวอร์เท่านั้น (หรือที่เราเรียกว่าการทำงานแบบ Server Side) แล้วนำผลลัพธ์ทั้งหมดส่งกลับมายังเว็บบราวเซอร์ในลักษณะของ
เอกสาร HTML ซึ่งเว็บบราวเซอร์สามารถตีความหมายและนำมาแสดงผลได้
การทำงานโดยรวมของ JSP จะเริ่มจากบราวเซอร์ร้องขอ (HTTP Request) เอกสารที่มีนามสกุลเป็น JSP ไปยังเว็บเซิร์ฟเวอร์ผ่านทางโปรโตคอล HTTP เว็บเซิร์ฟเวอร์ก็จะนำเอกสาร JSP ที่ได้รับมานั้นส่งต่อไปให้ JSP Engine (JSP
Engine คือ แอพพลิเคชันที่ถูกโหลดสู่หน่วยความจำและทำงานอยู่บนเว็บเซร์ฟเวอร์ หน้าที่หลักคือแปลความหมายและประมวลผลเอกสาร JSP) จากนั้น JSP Engine ก็จะประมวลผล และส่งผลลัพธ์กลับมายังเว็บเซิร์ฟเวอร์ แล้วเว็บเซิร์ฟ
เวอร์ก็จะส่งผลลัพธ์กลบมายังบราวเซอร์ (HTTP Reponse) อีกที ในลักษณะของเอกสาร HTML บราวเซอร์ก็จะสามารถแสดงผลได้

JSP หรือ Servlet

Servlet เป็นเทคโนโลยีที่คิดค้นก่อน JSP และนำเอาภาษาจาวามาใช้เป็นพื้นฐานบนเว็บเช่นเดียวกัน การทำงานของทั้งสองก็คล้ายกันทุกอย่าง แต่ JSP จะมีขั้นตอนที่เพิ่มขึ้นมาคือ การแปลงเอกสาร JSP ให้เป็น Servlet ก่อน สรุปก็คือ
สุดท้ายเอกสาร JSP จะต้องถูกแปลงเป็น Servlet นั่นเอง สำหรับผู้ที่เคยใช้ Servlet มาบ้างจะรู้ดีว่าการแสดงผลของ Servlet จะค่อนข้างยุ่งยากเพราะไม่สามารถใส่แท็ก HTML แทรกเข้าไปได้ ต้องพิมพ์แท็ก HTML ออกมาเอง โดยใช้
คำสั่ง out.print() แต่ถ้าเป็น JSP แล้วเราสามารถนำแท็ก HTML มารวมกับแท็ก JSP ได้เลย

ลองเปรียบเทียบเอกสาร JSP และ Servlet ทั้งสองตัวนี้

Servlet JSP
out.print ("") ;
out.print ("") ;
out.print ("") ; <%= "Hello World"%>
out.print ("") ;
out.print ("") ;

ตัวอย่างโค้ดทั้ง Servlet และ JSP จะให้ผลเหมือนกันคือพิมพ์คำว่า "Hello World" ออกมาที่บราวเซอร์ แต่จะเห็นว่าการใช้ JSP ทำให้การจัดหน้าตาของเอกสาร HTML ทำได้สะดวกขึ้นเพราะสามารถสร้างเอกสาร HTML จากเครื่องมือ
ต่าง ๆ ที่มีประสิทธิภาพต่าง ๆ เช่น Macromedia Dreamweaver หรือ MicrosoftFrontPage ก่อน แล้วค่อยนำแท็ก JSP เข้าไปแทรกภายหลัง ทำให้การแสดงข้อมูลเพื่อนำเสนอจะทำได้อย่างมีประสิทธิภาพมากกว่า


ทำไมต้องใช้ JSP

ข้อดีของ JSP คือ
1. Write Once Run Anywhere JSP มีพื้นฐานมาจากภาษาจาวา เมื่อเอ่ยถึงภาษาวาจาข้อดีประการหนึ่งที่มีตามมาด้วยคือการทำงานได้ในหลายระบบปฏิบัติการไม่ว่าจะเห็น Mac OS, Linux และ Windows เพราะฉะนั้นผู้พัฒนาโปรแกรม
ไม่ต้องสนใจเลยว่าโปรแกรมที่พัฒนาขึ้นมานั้นจะมีผลกระทบอะไรบ้างเมื่อมีการย้ายไปทำงานบนระบบปฏิบัติการอื่น
2. Component Reusable ด้วยความสามารถในการนำจาวาบีน (Java Bean) มาใช้ ซึ่งมีลักษณะเป็นคอมโพเน็นต์ ทำให้คอมโพเน็นต์เหล่านี้สามารถนำกลับมาใช้ได้ใหม่และใช้ร่วมกันระหว่างผู้พัฒนาเว็บไซต์ทำให้การพัฒนาทำได้เร็ว
ขึ้น เช่น หากเราสร้างคอมโพเน็นต์ ที่ทำการเชื่อมต่อกับฐานข้อมูลไว้ เมื่อมีการสร้างเอกสาร JSP ใหม่ขึ้นมาและต้องการเชื่อมต่อกับฐานข้อมูล ก็จะทำได้โดยการเรียกใช้คอมโพเน็นต์ที่ได้สร้างไว้แล้ว
3. JAVA Extension เมื่อ JSP พัฒนาบนพื้นฐานของจาวา ซึงมีคุณสมบัติหลายอย่างไม่ว่าจะเป็น การโปรแกรมเชิงวัตถุ(Object Oriented Programming) ,การทำงานกับ Thread (Multithreading), การจัดการกับข้อผิดพลาด (Error
Handling) ทำให้คุณสมบัติเหล่านี้มีใน JSP ด้วย
4. Separation of Dynamic and Static Content การแยกจากกันระหว่างส่วนที่เป็นไดนามิก เช่น ข้อมูล กับส่วนที่เป็นสแตติก เช่น แท็ก HTML ต่าง ๆ ทำให้การดูแลและพัฒนาเว็บไซต์ง่ายขึ้น

Note :
JAVA Bean คือ คอมโพเน็นท์ภาษาจาวาที่สามารถนำกลับมาใช้ใหม่ได้ หากเคยใช้ Delphi หรือ Visual Basic มาก่อน ก็ให้มองว่าบีนก็คล้ายกับคอมโพเนนต์ต่างๆ ที่มีในโปรแกรมเหล่านี้ ยกตัวอย่างเช่น button, scroll bar, list box,
dialog box ฯลฯ การสร้างคอมโพเนนต์บีนนั้นจะใช้ชุด Bean Development Kit(BDK)