Home
Course
Service
Contact
About Us

 

 

 

 

 

 

 

 

 


แนะนำ JSP

JavaServer Pages (JSP) เป็น web-scripting เทคโนโลยีคล้ายกับ Netscape server-side JavaScript (SSJS) หรือ Microsoft Active Server Pages (ASP) แต่ผิดกันตรงที่ JSP มีพื้นฐานมาจาก Java ซึ่งเป็นภาษาแบบ object-oriented ซึ่งช่วยทำให้ง่ายต่อการพัฒนาในโครงการใหญ่ ๆ ตลอดจนสามารถนำส่วนประกอบต่าง ๆ กลับมาใช้ได้อีก (software reusable) จุดเด่นที่สำคัญของ JSP คือสามารถทำงานได้โดยไม่ขึ้นอยู่กับผู้ผลิตซอฟแวร์ รายใดรายหนึ่งโดยเฉพาะ ซึ่งโดยทั่วไปเทคโนโลยีต่าง ๆ มักจะออกมาในลักษณะของผลิตภัณฑ์จากบริษัท ผู้ผลิตแห่งใดแห่งหนึ่ง แต่ JSP ใช้ลักษณะของ specification ซึ่งกำหนดโดย Sun Microsystems ดังนั้นผู้ผลิตซอฟท์แวร์จึงสามารถอ้างอิง specification ที่กำหนดขึ้น ผลิต JSP Container (ตัวที่ใช้ในการรัน JSP) ขึ้นมาใช้กับแฟลตฟอร์มใดก็ได้

JSP Containers
JSP Pages (ไฟล์ที่เขียนขึ้นโดยใช้ JSP script และลงท้ายด้วย .jsp) จะถูกรันโดย JSP Container ซึ่งมักจะเป็นส่วนประกอบที่อยู่ใน Webserver หรือ เป็นตัว add on ใน Application Server. โดยทั่วไป JSP Container จะเป็นตัวรับ request จาก client ส่งผ่านไปยัง JSP Page และส่งค่าที่ได้จากการประมวลผลโดย JSP Page กลับไปยัง client. JSP Container ที่ใช้กันอยู่มีมาจากหลายค่าย ยกตัวอย่างเช่น GNU JSP, Expresso, Tomcat Jakarta, Resin, Weblogic เป็นต้น

ในการเขียน JSP ขึ้นมาหนึ่งหน้า มักจะประกอบด้วย 3 ส่วนหลักๆคือ static html/xml , special JSP tags และสุดท้ายอาจมี ส่วนที่เป็น java code เรียกว่า scriptlets ประโยชน์ที่เห็นได้ชัดจากการใช้ JSP คือเราสามารถแยกส่วนที่เป็น static และส่วนที่เป็น dynamic ออกจากกันได้อย่างค่อนข้างอิสระโดยมี servlet มารับหน้าที่ในส่วนที่ต้องการทำ logic มากๆ ซึ่ง servlet นี้อาจต้องการทักษะ ทางด้านการเขียนโปรแกรมในระดับหนึ่ง ส่วน JSP เองก็จะเป็น script ซึ่ง web designer ทั่วไปสามารถทำความคุ้นเคยได้ไม่ยากนัก นี่เป็นอึกจุดหนึ่งที่ทำให้เราสามารถแบ่งงานกัน ในกลุ่มนักพัฒนาตามความถนัด เป็นกลุ่ม web designer และกลุ่ม developer เพื่อให้สามารถนำผลงานมารวมกันได้อย่างกลมกลืน

เนื่องจาก ASP เป็นภาษาที่เป็นที่รู้จักและใช้งานกันอย่างแพร่หลายอยู่แล้ว จึงน่าจะนำข้อเหมือน ข้อแตกต่างในแง่มุมต่างๆมาเปรียบเทียบกัน เพื่อที่จะได้เห็นภาพรวมได้ชัดเจนขึ้น

 

JavaServer Pages

Active Server Pages

Web Server  ที สนับสนุน

Apache, Netscape, Microsoft IIS เองก็สามารถใช้ JSP ได้.

Microsoft IIS หรือ Personal Web Server.

Platform Support

ไม่ขี้นกับ platform.  สามารถทำงานได้บนทุก Java-enabled platforms.

Windows..

Component Model

reusable, cross-platform components เช่น JavaBeans, Enterprise JavaBeans, และ custom tag libraries.

Win32-based COM component model.

Scripting

Java programming language หรือ JavaScript.

VBScript และ JScript

Security

 Java security model.

Windows NT security architecture.

Database Access

JDBC

Active Data Objects

Customizable Tags

extensible โดยใช้ custom tag libraries.

ไม่สามารถใช้ custom tag libraries และไม่สามารถใช้งานแบบ extensible.

Web Applications
ก่อนที่เราจะเริ่มเขียน JSP สิ่งหนึ่งที่ควรจะทำความเข้าใจคือโครงสร้างของไดเรคทอรี่ต่าง ๆ ใน container เมื่อก่อนเราไม่ค่อยได้ให้ความสนใจกับการจัดเรียงไฟล์ต่าง ๆ มากนัก ข้อเสียที่เห็นได้ชัด คือการยากในการจัดเก็บ และการยากในการย้ายไฟล์จากเซิฟเวอร์หนึ่ง ไปยังอีกเซิฟเวอร์หนึ่ง เพราะโดยทั่วไปแต่ละ webserver จะมีลักษณะการจัดเก็บไฟล์ไม่เหมือนกัน แต่เมื่อ Java Servlet Specification เวอร์ชั่น 2.2 ออกมา เซิฟเวอร์ที่ใช้รัน Servlet v2.2 จะถูกบังคับให้มีต้องการสนันสนุนการจัดเก็บไฟล์แบบหนึ่ง ที่เรียกว่า Web Applicaton

web application คือกลุ่มของไดเรคทรอรี่และไฟล์ที่อาจจะประกอบด้วย html, jsp, servlet, javabean และอื่น ๆ ซึ่งอยู่รวมกันในลักษณะของระบบไฟล์ (file system) หรือถูกอัดอยู่ในไฟล์เดียวกันโดยจะเรียกว่า Web Archive (.war) ไฟล์ ซึ่งมีประโยชน์ในการโยกย้ายและติดตั้งจากเซฟเวอร์หนึ่งไปยังอีกเซฟเวอร์หนึ่ง

ปกติ webserver จะมีการใช้ไดเรคทรอรี่ในการจัดกลุ่มของไฟล์ไว้ด้วยกัน ตามหน้าที่หรือตามประเภทของไฟล์ซึ่งมักเป็นไปตามความพอใจ ของผู้ดูแลแต่ละคน แต่ในการจัดการ web application จะมีหลักการเป็นมาตรฐานคือ แต่ละ web appliction จะถูกจัดให้อยู่ในไดเรคทรอรี่ของตัวเอง ที่เรียกว่า context path ยกตัวอย่างเช่น ถ้า web application ของเราถูก map กับ context path ที่ชื่อ webapplication1 เวลาดูจาก URL ก็จะเห็นเป็น http://www.mycompany.com/webapplication1/ เป็นต้น และเมื่อweb application คือกลุ่มของไดเรคทรอรี่และไฟล์ที่ถูกจัดอยู่รวมกันเป็นชั้น ๆ ดังนั้นถ้าเรามีไฟล์ที่ชื่อ helloworld.html ซึ่งอยู่บนสุด (top-level) ของไดเรคทรอรี่ใน web application เราก็จะสามารถเรียกออกมาดูได้โดยใช้ URL เท่ากับ http://www.mycompany.com/webapplication1/helloworld.html ในกรณีที่ไฟล์ไม่ได้อยู่บนสุด ของไดเรคทรอรี่ใน web application เราก็ยังสามารถเรียกออกมาได้ โดยอ้างอิงไปที่ไดเรคทรอรี่ย่อยนั้น ยกตัวอย่างเช่น ถ้ากลุ่มไฟล์ JSP ถูกเก็บไว้ในไดเรคทรอรี่ถัดลงมาที่ชื่อ jsp เราก็สามารถที่จะเรียกไฟล์มาดูโดยใช้ URL เท่ากับhttp://www.mycompany.com/webapplication1/jsp/xxx.jsp

ส่วนประกอบของ Web Application
web application หนึ่ง ๆ อาจประกอบด้วย
1) Servlet
2) JavaServer Pages
3) Utility Classes
4) ไฟล์ปกติ เช่น HTML, images, sounds
5) JavaBean

แต่ละอย่างจะถูกเก็บไว้ในไดเรคทอรี่ต่อไปนี้
1) root directory หรือส่วนบนสุด : ไฟล์ *.html, *.jsp มักจะถูกเก็บไว้ส่วนบนสุดของ web application แต่อาจจะมีไดเรคทอรี่ย่อยลงมาจาก root เพื่อเก็บ ไฟล์ images ก็ได้

2) WEB-INF/web.xml : ไฟล์ web.xml เป็นส่วนที่ใช้ในการบรรยายส่วนประกอบต่าง ๆ (Web Application Deployment Descriptor) รวมไปถึงการป้อนค่าเริ่มต้นให้กับโปรแกรมต่าง ๆ ที่บรรจุอยู่ใน web application นี้ ยกตัวอย่างเช่น เราสามารถป้อนค่าเริ่มต้นให้กับ Servlet ได้โดยใส่ค่าเข้าไปใน XML Tag ตรงส่วนที่เรียกว่า <init-param> เป็นต้น

3) WEB-INF/classes/* : เป็นส่วนที่ใช้ในการเก็บไฟล์ *.class ทั้งหมดที่ใช้ใน web application ซึ่งอาจจะเป็นทั้ง Servlet หรือ ไฟล์ class ธรรมดาที่ไม่ได้อยู่ในรูปของ .jar ก็ได้ ยกตัวอย่างเช่น ถ้าไฟล์ของเราอยู่ใน package ชื่อ com.mycompany.mypackage.MyServlet ไฟล์นี้ก็จะถูกเก็บอยู่ในไดเร็คทอรี่ WEB-INF/classes/com/mycompany/mypackage/MyServlet.class

4) WEB-INF/lib/*.jar : ไดเร็คทรอรี่นี้ใช้เก็บไฟล์ .jar ที่เราต้องการใช้สำหรับ web application ซึ่งอาจจะเป็นส่วนที่ได้มาจาก third party หรือเป็นพวก Database driver ก็ได้ ประโยชน์อย่างหนึ่งที่เห็นได้ในการเก็บ library ต่าง ๆ ไว้ที่ไดเร็คทรอรี่นี้คือ การง่ายต่อการติดตั้ง เหตุผลคือ หลังจาก web application ของเราถูกใส่เข้าไปใน server แล้ว ตัว server จะโหลดไฟล์ที่อยู่ในไดเร็คทอรี่นี้ โดยอัตโนมัติ เราจึงไม่ต้องทำการเซ็ต CLASSPATH ให้ยุ่งยาก

เริ่มลงมือ

 



:: ศูนย์ฝึกอบรมบางปะกง การไฟฟ้าฝ่ายผลิตแห่งประเทศไทย 8/4 หมู่ 8 ตำบลท่าข้าม อำเภอบางปะกง จังหวัดฉะเชิงเทรา 24130 ::