JSP และ Component Model

หัวข้อพิเศษไอที, JSP No Comments »

JSP และ Component Model

         ตามปกติหากเอกสาร JSP ไม่มีการใช้คอมโพเน็นต์ จาวาบีน แต่ถ้ามีการใช้ขึ้นมา สถาปัตยกรรมของ JSP ก็จะเปลี่ยนไป กล่าวคือ เมื่อมี request เข้ามายังเว็บเซิร์ฟเวอร์ request ที่เป็นเอกสาร JSP ก็จะถูกส่งผ่านมายัง JSP engine เพื่อแปลงให้เป็น Servlet และประมวลผลตามคำสั่ง การประมวลผลเริ่มจาก JSP engine จะพิจารณาว่าจาวาบีนที่ request นั้นได้สร้างอินสแทนซ์ (Instance) ไว้หรือยัง หากสร้างไว้แล้วก็เพียงเปลี่ยนสถานะภายในตัวเอง จากนั้น JSP engine ก็จะประมวลผลคำสั่งอื่นๆ ต่อจนหมด แล้วส่ง response กลับไปยัง browser เป็นอันจบขั้นตอน 

วิธีการสร้าง Java Bean

หัวข้อพิเศษไอที, JSP No Comments »

         บีนก็คือคลาสที่สร้างมาจากภาษาจาวา โดยโครงสร้างของคลาสประกอบด้วยคุณสมบัติ (อาจจะเรียกว่าสถานะก็ได้) และเมธอดที่มี modifier เป็น public เพื่อกำหนดและดึงค่าคุณสมบัติเหล่านั้น
         เมื่อสร้างบีนเสร็จแล้วก็ต้องใช้คอมไพเลอร์ของภาษา java (javac) ก่อนที่จะสร้างบีน เราจะสร้างไดเรกทอรีเพิ่มขึ้นมาจากเดิมคือ C:\Tomcat\Webapps\Tutorial\Classes ด้วย เพื่อใช้เก็บบีนไว้ที่นี่ แล้วแก้ไขค่าตัวแปร classpath ดังนี้
         1. ให้เปิดหน้าต่าง Environment Variable
         2. เพิ่มเติมค่าที่ตัวแปร Classpath เป็น C:\Tomcat\Webapps\Tutorial\Classes เมื่อกำหนดค่าให้กับตัวแปร classpath แล้ว Tomcat ก็จะสามารถหาคลาสที่เราต้องการใช้เจอ ถ้าหากเปิด Tomcat อยู่ก็ให้ปิดและเปิดใหม่เพื่อให้ Tomcat แก้ไขค่า classpath ด้วย

สำหรับวิธีการสร้างบีนมีดังนี้

         1. ใช้เอดิเตอร์เพื่อสร้างไฟล์จาวาตาม Source Code ชื่อ simpleCounterBean.java โดยชื่อไฟล์และชื่อคลาสจะต้องเป็นชื่อเดียวกัน ตัวเล็กตัวใหญ่เหมือนกัน เช่น คลาสชื่อ simpleCounterBean.java บันทึกเก็บไว้ในไดเรกทอรี C:\Tomcat\Webapps\ Tutorial\Classes
         2. คอมไพล์ไฟล์จากสกุล java ไปเป็นสกุล class โดยเปิด command prompt แล้วเข้าไปยังไดเรกทอรีC:\Tomcat\Webapps\Tutorial\Classes แล้วเรียกคำสั่ง javac simpleCounterBean.java
         เนื่องจากบีนจะมีคุณสมบัติของตัวมันเอง วิธีการเข้าถึงคุณสมบัติภายในตัวบีนนั้นก็มีข้อกำหนดอยู่ เราไม่สามารถจะใส่ค่าหรือดึงคุณสมบัติเหล่านี้ได้โดยตรง แค่เราต้องทำผ่านเมธอดที่มี modifier เป็น public เท่านั้น จากตัวอย่าง บีนจะประกอบด้วยคุณสมบัติและเมธอดดังนี้
             - คุณสมบัติ count เป็นตัวแปรเพื่อเก็บค่าจำนวนครั้งที่นับ จะตั้งชื่ออะไรก็ได้ตามรูปแบบของจาวา
             - คอนสตรักเตอร์ simpleCounterBean เพื่อกำหนดค่าศูนย์แก่ตัวแปร count ตอนสร้างอิน      สแทนซ์
             - เมธอด getCount() ทุกครั้งที่มีการเรียกเมธอดนี้ เมธอดจะเพิ่มค่าของคุณสมบัติ count ขึ้นไปหนึ่งค่า โดย modifier ของเมธอดจะต้องเป็น public หากกำหนดไม่เป็นตามกฎก็จะมีข้อผิดพลาดฟ้องกลับมา

JavaBean

หัวข้อพิเศษไอที, JSP No Comments »

          จาวาบีน คือคลาสที่สร้างมาจากภาษาจาวา แต่จะมีรูปแบบการประกาศเมธอดต่างๆ ภายในคลาสที่เป็นมาตรฐานเพื่อทำให้การใช้งานร่วมกับโปรแกรมอื่นๆ ได้ง่าย

         ก่อนที่จะมีการคิดค้น JSP ขึ้นมา ก็มีการใช้จาวาบีนตั้งแต่ Java 1.1 เป็นต้นมา จุดมุ่งหมายหลักของการใช้จาวาบีนก็คือการนำมาสร้างเป็นคอมโพเน็นต์สำหรับ GUI(Graphic User Interface) ต่างๆ เช่น scrollbar, button, checkbox เป็นต้น ทำให้การสร้าง GUI บน Applet ของจาวาทำได้สะดวกขึ้น สำหรับผู้ที่เขียนจาวามาก่อนคงรู้ว่าการสร้าง GUI ยากเย็นแค่ไหน

         เมื่อมีการคิดค้น JSP ขึ้นก็นำจาวาบีนมาใช้เพื่อเป็นคอมโพเน็นต์ เช่นเดียวกัน แต่นำแค่แนวความคิดมาเท่านั้น กล่าวคือจาวาบีนใน JSP ไม่ได้เกี่ยวข้องกับ GUI เลย ไม่มีงานที่วาดกราฟิกเข้ามาเกี่ยวข้อง แต่ยังคงคุณสมบัติของจาวาบีนไว้ทุกประการ เช่น การสร้างคอมโพเน็นต์ไว้ตัวหนึ่งเพื่อใช้เชื่อมต่อกับฐานข้อมูลโดยตั้งชื่อคลาสว่า “DatabaseConnector” หน้าที่ของบีนตัวนี้ก็แค่ใช้เชื่อมกับฐานข้อมูลเท่านั้น ใครอยากจะเชื่อมฐานข้อมูลก็มาเอาคอมโพเน็นต์ตัวนี้ไปใช้ได้เลยโดยการใช้แท็กใน JSP เท่านั้น 

JSP Lifecycle

หัวข้อพิเศษไอที, JSP No Comments »

          ในวงจรชีวิตของเอกสาร JSP นับตั้งแต่เกิดการ request เอกสารจนถึงการตอบสนองกลับ จากเซิร์ฟเวอร์นั้น JSP Engine จะใช้เมธอดสามตัวคือ jsplnit() , jspDestroy() และ jspService() เพื่อจัดการกับเอกสาร JSP เมธอดทั้งสามตัวนี้จะเกิดขึ้นในขั้นตอนที่สี่ ซึ่งเอกสาร JSP จะถูกแปลงเป็น Servlet และมีการแทรกเมธอดต่อไปนี้เข้าไป

          JSP กำหนดไว้ว่า ห้ามตั้งชื่อตัวแปรหรือเมธอดใดที่ขึ้นต้นด้วย jsp ,_ jsp ,jspx และ _jspx หากตั้งชื่อซ้ำจะทำให้โปรแกรมทำงานผิดพลาด

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

jspService()
         เมธอดหลักที่ใช้คือ _jspService เมธอดนี้จะถูกสร้างและจัดกรโดย JSP Engine เอง โดยผู้เขียนโปรแกรมจะไม่สามารถเกี่ยวข้องได้ หน้าที่หลักของเมธอดตัวนี้จะทำงานต่างๆที่ผู้เขียนโปรแกรมได้เขียนไว้ในเอกสาร JSP

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

 

untitled1.bmp

 

          ผลลัพธ์หลังจากแปลงโคดแล้วจะออกมาเป็น Servlet แบบนี้(โค้ดที่แสดงให้ดูเป็นเพียงฉบับย่อที่ตัดมา หากเป็นฉบับโค้ดเต็มจะมีส่วนประกอบอื่นที่ยาวและซับซ้อนมากกว่านี้)

untitled1.bmp

 

 

ติดตั้ง Edit Plus 2.10c

หัวข้อพิเศษไอที, JSP No Comments »

         สำหรับเอดิเตอร์เพื่อเขียนเอกสาร JSP นั้น สามารถใช้อะไรก็ได้ เช่น โน้ตแพด แล้วบันทึกไฟล์เหล่านั้นเป็นนามสกุล jsp ไปเก็บไว้ในไดเรกทอรีภายใต้C:\Tomcat\webapps\Tutorial แต่ขอแนะนำ Edit Plus เพราะเป็นโปรแกรมเอดิเตอร์ ที่รู้จักโครงสร้างของเอกสาร JSP ทำให้สะดวกในการเขียน โดยให้ดับเบิลคลิกเพื่อเริ่มติดตั้ง

          เมื่อติดตั้งเสร็จสมบูรณ์ จะทำการแก้ไขให้ Edit Plus สามารถแสดงผลโครงสร้างของเอกสาร JSP ได้ดังนี้

          1. เปิดโปรแกรม Edit Plus ขึ้นมา แล้วคลิกเมนู File-> New-> others

          2. จะปรากฏไดอะล็อกบ็อกซ์ Select File Type ให้คลิกเลือก JSP จากนั้นให้กดปุ่ม  OK

ติดตั้ง Tomcat

หัวข้อพิเศษไอที, JSP No Comments »

ขั้นตอนการติดตั้ง

        1.1 ดับเบิลคลิกที่ไฟล์เพื่อเริ่มติดตั้ง Tomcat 3.2.1

        1.2 ทำการ Unzip ไฟล์ Tomcat 3.2.1

        1.3 ให้เลือกไดเรกทอรี C:\ Tomcat เพื่อแตกไฟล์ที่ zip มา ไปเก็บ

              ไว้ (สามารถเลือกไดเรกทอรีอื่น นอกเหนือจาก C:\ Tomcat ได้)

แก้ไขตัวแปรต่างๆ

         เมื่อกอบปี้ไฟล์ต่าง ๆ ไปเก็บไว้ในไดเรกทอรีที่กำหนดแล้ว ขั้นตอนต่อไปจะต้องกำหนดตัวแปร เพื่อให้ Tomcat ทำงานได้ ประกอบไปด้วย 2 ตัวแปร คือตัวแปร TOMCAT_HOME กับ JAVA_HOME ดังนั้น ให้ไปยัง Environment Variable อีกครั้ง แล้วเพิ่มตัวแปร 2 ตัว ดังนี้

         2.1 เลือกที่ปุ่ม New เพื่อสร้างตัวแปรใหม่ใน System Variables

         2.2 สร้างตัวแปร TOMCAT_HOME ใส่ค่าให้กับตัวแปรเป็นไดเรกทอ

               รีที่เราเลือกติดตั้ง Tomcat ในที่นี้คือ C:\ Tomcat
         

         2.3 สร้างตัวแปร JAVA_HOME ใส่ค่าให้กับตัวแปรเป็นไดเรกทอรีที่

              เราเลือกติดตั้งJDK1.3 ในที่นี้คือ C:\JDK1.3

         2.4 คลิกปุ่ม OK ไปให้หมด

         สำหรับผู้ที่ใช้ระบบปฏิบัติการ Windows 95/98/Me ให้เพิ่มค่าตัวแปรทั้งสองตัวที่ไฟล์ autoexec.bat ดังนี้

          - TOMCAT_HOME = C:\ Tomcat 

          - JAVA_HOME = C:\JDK1.3;

         แล้ว restart เครื่องเพื่อให้ค่าตัวแปรเปลี่ยนแปลงตามที่เรากำหนดไว้

ทดสอบการใช้งาน

        เมื่อติดตั้ง Tomcat เรียบร้อยแล้ว เราจะมาทดสอบว่าขั้นตอนที่เราติดตั้งนั้น สามารถทำงานได้หรือไม่
           1. ให้เรียก Command Prompt ขึ้นมาแล้วเข้าไปในไดเรกทอรีที่ติดตั้ง Tomcat ไว้ ในที่นี้คือ C:\Tomcat จากนั้นให้เข้าไปในไดเรกทอรี bin เพื่อเรียก Tomcat จากไฟล์ StartUp.bat

         2. เมื่อเรียกไฟล์ StartUp.bat แล้ว จะปรากฏ Command Prompt อีกหน้าต่าง ชื่อว่า Tomcat3.2 ขึ้นมาและ Command Prompt จะค้างอยู่ทั้ง 2 หน้าต่าง หากมีอันใดปิดไปเอง แสดงว่ามีข้อผิดพลาดเกิดขึ้นให้ไปดูไฟล์ log ในไดเรกทอรี Logs แต่หากหน้าต่าง Tomcat 3.2 ปรากฏค้างอยู่แสดงว่า การติดตั้งเสร็จสมบูรณสำหรับค่าเริ่มต้นนั้น Tomcat จะทำงานที่พอร์ต 8080 หากลงเซิร์ฟเวอร์ตัวอื่น เช่น จาวาเซิร์ฟเวอร์ซึ่งทำงานที่พอร์ตนี้เช่นกัน ให้ไปเปลี่ยนค่าพอร์ตของ Tomcat ในไฟล์ conf เพื่อไม่ให้พอร์ตชนกัน

 

ติดตั้ง Java Development Kit

หัวข้อพิเศษไอที, JSP No Comments »

JDK

               ขั้นตอนการติดตั้ง

           เหตุผลที่ต้องติดตั้ง JDK ก็เพราะว่า Tomcat จำเป็นต้องใช้องค์ประกอบหลายอย่างของ JDK เวลาที่มันทำงาน เช่น java.exe เป็นต้น

                1.1 ดับเบิลคลิกที่ไฟล์เพื่อเริ่มติดตั้ง JDK 1.3

                1.2 เลือกปุ่ม Next ไปเรื่อย ๆ จากนั้นให้เลือกไดเรกทอรีเพื่อทำการติดตั้ง โดยเลือกที่ไดเรกทอรี

                      ไหนก็ได้ ในที่นี้จะอ้างอิงที่C:\JDK1.3 แล้วกดปุ่ม Next อีกที

               การแก้ไขตัวแปร Path และ Class path

           เมื่อติดตั้ง JDK 1.3 เสร็จเรียบร้อยแล้ว จะต้องกำหนดตัวแปร Path และ Classpath การกำหนดค่าให้ตัวแปร Path นั้นก็เพื่อให้คอมไพเลอร์จาวา (JAVAC) สามารถเรียกจากที่ใดก็ได้นอกจากไดเรกทอรีที่ติดตั้งไว้ ส่วนตัวแปร Classpath นั้นช่วยให้โปรแกรมจาวาที่เราพัฒนาขึ้น สามารถเชื่อมโยงกับคลาสไลบรารีอื่นๆ ที่อยู่คนละไดเรกทอรีกันได้ ขั้นตอนการกำหนดตัวแปรทั้งสองมีดังนี้

                2.1 คลิกขวาที่ My computer เลือกที่เมนู Properties

                2.2 จะปรากฏไดอะล็อกบ็อกซ์ System Properties ให้คลิกที่แท็บ Advancedแล้วคลิกที่ปุ่ม

                      Environment Variables

                2.3 คลิกเลือกที่ตัวแปร Path ในช่องรายการ System Variables

                2.4 เพิ่มเติมค่าที่ตัวแปร path เป็น C:\JDK1.3\BIN\;

                2.5 คลิกเลือกตัวแปร Classpath

                2.6 เพิ่มเติมค่าที่ตัวแปร Classpath เป็น C:\JDK1.3\jre\lib\;

                2.7 จากนั้นให้คลิกปุ่ม OK ไปให้หมด ในการทดสอบว่าค่าตัวแปรที่เรากำหนดถูกต้องหรือไม่ ให้

                      เรียก Command Prompt ขึ้นมา พิมพ์คำสั่งที่ CommandPrompt                          

                - พิมพ์คำสั่ง Path หากค่าที่แสดงออกมามีค่าที่เรากำหนดไว้รวมอยู่ด้วยคือ C:\JDK1.3\BIN\;

                  แสดงว่าการติดตั้งถูกต้อง

               - พิมพ์คำสั่ง echo %classpath% หากค่าที่แสดงออกมามีค่าที่เรากำหนดไว้รวมอยู่ด้วยคือ

                  C:\JDK1.3\jre\lib\; แสดงว่าการติดตั้งถูกต้อง        

             สำหรับผู้ที่ใช้ระบบปฏิบัติการ Windows 95/98/Me ให้แก้ไขเพิ่มค่าตัวแปรPath และ Classpath ที่ไฟล์ autoexec.bat ดังนี้                           

                 - Path = C:\JDK1.3\BIN\

                 - Classpath = C:\JDK1.3\jre\lib\;

             แล้ว restart เครื่องเพื่อให้ค่าตัวแปรเปลี่ยนแปลงตามที่เรากำหนดไว้

 

 

 

 

สถาปัตยกรรมของ JSP

หัวข้อพิเศษไอที, JSP No Comments »

            ทุกครั้งที่มีการเรียกเอกสาร JSP ที่เราสร้างขึ้นมาทางบราวเซอร์ หากเป็นการเรียกครั้งแรกจะช้ากว่าการเรียกครั้งถัดไปเสมอเป็นเพราะอะไรลองพิจารณาขั้นตอนการทำงานแสดงขั้นตอนที่เกิดขึ้นเมื่อมีการเรียกเอกสาร JSP ในการเรียกครั้งแรก มีขั้นตอนดังต่อไปนี้

                 1. บราวเซอร์ร้องของเอกสาร JSP มายังเซิร์ฟเวอร์

                 2. เซิร์ฟเวอร์จะส่งผ่านการร้องขอนั้น ไปให้กับ JSP Engine

                 3. JSP Engine ก็จะคอมไพล์เอกสาร JSP นั้น

                 4. เมื่อการคอมไพล์ผ่าน โดยไม่มีข้อผิดพลาด JSP Engine ก็จะแปลงเอกสาร JSP นั้นให้เป็นชุด

                     คำสั่งของ Servlet

                 5. ชุดคำสั่งของ Servlet เหล่านั้นก็จะถูกแปลงเป็นคลาส

                 6. เริ่มทำงานตามคำสั่งที่เขียนมา

                 7. เมื่อได้ผลลัพธ์แล้วก็จะส่งผลลัพธ์ในลักษณะเอกสาร HTML นั้นกลับไปให้เว็บเซิร์ฟเวอร์

                     เว็บเซิร์ฟเวอร์ก็ส่งผลลัพธ์ต่อไปให้กับบราวเซอร์อีกที
 

            ขั้นตอนเหล่านี้จะเกิดเพียงครั้งแรกครั้งเดียวเท่านั้น หากมีการเรียกครั้งต่อไป จะไม่ทำขั้นตอนที่ 3,4 และ 5 เนื่องจากการร้องขอเอกสาร JSP เป็นเอกสารตัวเดิมจึงไม่จำเป็นต้องคอมไพล์เป็นคลาสไฟล์ใหม่อีกครั้ง ยกเว้นว่ามีการแก้ไขเอกสาร JSP นั้น JSP Engine จึงต้องทำการคอมไพล์โค้ดอีกครั้ง

 

 

ชนิดข้อมูลและตัวแปร

หัวข้อพิเศษไอที, JSP No Comments »

            ภาษาจาวาเป็นภาษาที่เข้มงวดกับความถูกต้องของข้อมูลสูงต่างกับภาษาบางชนิดที่ไม่จำเป็นต้องระบุชนิดของข้อมูล ชนิดข้อมูลพื้นฐานคือ ชนิดข้อมูลที่ค่าไม่สามารถแตกย่อยเป็นส่วนประกอบอื่นๆได้อีก เช่น ตัวเลข ตัวอักษร และบูลีน โดยมีลักษณะดังนี้

 

                     untitled3.bmp

 

            สำหรับ Array และ String นั้นไม่ใช่ชนิดข้อมูลแต่เป็นคลาสที่จาวาเตรียมมาให้ การประกาศตัวแปรเพื่อเก็บค่าข้อมูลต่างๆ จะมีโครงสร้างดังต่อไปนี้
                                                             Type identifier [ = value];

           โดยที่ Type คือชนิดของข้อมูล Identifier คือชื่อของตัวแปร เราสามารถกำหนดค่าเริ่มต้นให้กับตัวแปรโดยใช้ [=value] ซึ่งจะให้ค่าเริ่มต้นหรือไม่ก็ได้ ตัวอย่าง

                     การประกาศตัวแปร a มีชนิดของข้อมูลเป็นจำนวนเต็ม มีรูปแบบคือ int a;

                     การประกาศตัวแปร str มีชนิดของข้อมูลเป็นสตริง มีค่าเริ่มต้นเป็น “Hi !” มีรูปแบบคือ string str = “Hi !”;
                    

 

สัญลักษณ์ต่าง ๆ ของ JSP(ต่อ)

หัวข้อพิเศษไอที, JSP No Comments »

แท็ก  Directive

          Include Directive

               การใช้ Include Directive ทำให้เอกสาร JSP มีความสามารถในการนำเอกสาร HTML หรือเอกสาร JSP อื่นๆ เข้ามารวมกับตัวมันเองได้ มีรูปแบบการใช้คือ

                                                %@ include file = URL %

              เมื่อ JSP Engine ทำการคอมไพล์เอกสาร JSP ที่มี Directive ชนิดนี้ใส่อยู่ JSP Engine ก็จะนำส่วนของโค้ดในไฟล์ที่ระบุมารวมกัน ซึ่งเป็นการทำงานในแบบ compile time คือทำงานในขณะคอมไพล์ สำหรับค่าของ file นั้นก็คือ URL ของเอกสารที่เราต้องการจะนำมารวม โดยปกติจะใช้เพื่อนำเอาเอกสารที่แสดงผลเป็นประจำเช่น ตัวนับ เป็นต้น

                                               %@ include file = URL %      

สัญลักษณ์ของต่าง ๆ ของ JSP (ต่อ)

หัวข้อพิเศษไอที, JSP No Comments »

แท็ก  Directive

             แท็ก Directive ชนิดนี้จะส่งข้อมูลบางอย่างไปบอกกับ JSP Engine ให้ทำงานตามและจะไม่แสดงผลข้อมูลเพียงแต่จะเปลี่ยนขั้นตอนการคอมไพล์ของ JSP Engine เท่านั้น มีรูปแบบการใช้งานคือ

                         %@ Directive Directive_attr_name = value %

            การใช้งานจะเริ่มด้วยเครื่องหมาย %@ แล้วตามด้วย directive และปิดด้วย % ส่วนมากมักนิยมไว้บนสุดของเอกสาร JSP สำหรับ directive นั้นสามารถแบ่งย่อยออกได้เป็น 2 กลุ่มดังนี้

1. Page Directive

           Page Directive จะบอก JSP Engine เพื่อกำหนดลักษณะของ page มี 10 รูป

                         Extends  บอกให้ JSP Engineขยายเอกสาร JSP จากชื่อ Super class ที่กำหนด

                                     %@page extends = “com.taglib…*”%


                         Import  Import คลาสอื่นเข้ามาเพื่อใช้งานในเอกสาร


                                     %@page import = “java.util…*”%


                        Session  กำหนดว่าเอกสาร JSP จะใช้ออบเจ็กต์ session หรือไม่ ตามปกติเอกสาร JSP ทุกตัวสามารถใช้ออบเจ็กต์ นี้ได้โดยออบเจ็กต์นี้ จะเตรียมไว้ให้อยู่แล้ว


                                     %@page session = “false…*”%


                        Buffer ควบคุมการใช้บัฟเฟอร์ สำหรับเอกสาร JSP ว่าต้องการใช้บัฟเฟอร์หรือไม่ ค่าเริ่มต้นจะอยู่ที่ 8 Kbytes


                                     %@page buffer = “none…*”%


                        autoFlush  เมื่อบัฟเฟอร์เต็มจะเคลียร์บัฟเฟอร์ให้อัตโนมัติ


                                     %@page autoFlush = “true…*”%
                        isThreadSafe  หากค่าเป็น true จะกำหนดให้ JSP Engine จัดการตอบสนองการร้องขอจากไคลเอ็นต์พร้อมกันหลายๆ ตัวทุกครั้งที่มีการร้องขอจะเกิด Thread ใหม่เพื่อจัดการกับการร้องขอเหล่านั้น หากค่าเป็น false การตองสนองจะเรียงลำดับ                                      %@page isThreadSafe = “true…*”%


                      Info  ใช้สำหรับใส่ข้อมูลต่างๆ ในเอกสาร JSP เช่น ชื่อผู้แต่ง, Version , copy-right เป็นต้น


                                     %@page info = “ivnavbox.com copyright 2001.”%


                      errorPage  เพจที่แสดงผลเมื่อเกิดการผิด|พลาดขึ้นภายในเอกสาร JSP ค่าจะต้องเป็น URL


                                     %@page errorPage = “/error.JSP”%


                     isErrorPage  หากกำหนดค่าให้เป็น True ทำให้เอกสาร JSP นี้เป็นเอกสารสำหรับแสดงผล error


                                      %@page isErrorPage = “true…*”%


                    contentType  กำหนดการเข้ารหัสตัวอักษรและ MINE type ของเอกสาร JSP ปกติค่า comtent typeจะเท่ากับ text/html , charSet เท่ากับ ISO-8859-1


                        %@page contentType = “text/html;charSet=ISO-8859-1″%
 

ตัวอย่างเช่น สมมุติว่าเราต้องการใช้คลาสในไลบรารี “java.sql” ทั้งหมดและให้ buffer=16k สามารถกำหนดได้ดังนี้                            

                        %@ page inport = “java.sql.*” buffer = “16k” %

                            

Source Code JSP

หัวข้อพิเศษไอที, JSP No Comments »

Source Code ชื่อ fileCounter.jsp

 %@ page import=” java.io.*”%
                       ! — Declaration –

               %!

                    // ประกาศตัวแปร counter ให้มีชนิดเป็นจำนวนเต็ม

                        int counter = 0 ;

                   // ประกาศตัวแปร path เพื่อเก็บที่อยู่ของไฟล์ counter.txt

       String path=”C:\\Tomcat\\webapps\\Tutorial\\Example\\counter.txt” ;
                

                 %

              HTML
              BODY
              H1
                                        This is file counter example  BR
                                        Visitor No :
                                        ! — Scriptlet – 

                %

                      // ดักจับข้อผิดพลาดที่อาจเกิดขึ้นตอนอ่านไฟล์                                          

            try {

                    // สร้างออบเจ็กต์ FilelnputStream โดยชี้ไปยังไฟล์ counter.txt

           FileInputStream countFile = new FileInputStream ( path ) ;

                   // สร้างออบเจ็กต์ DataInputStream เพื่ออ่านข้อมูลจากออบเจ็กต์ countFile 

          DataInputStream countData = new DataInputStrea( countFile ) ;                 

                  // อ่านค่าในไฟล์

                counter = countData.readInt () ;
             }
                   catch ( Exception e )
            {                  

                  // หากเกิดข้อผิดพลาดให้แสดงคำว่า “File not found.”

                  out.print ( “File not found.” ) ;
             }                                                                                                          

                 // เพิ่มค่าขึ้นครั้งละ 1                                                        

                    counter ++ ;                             

                // แสดงผล                    

                   out.print ( counter ) ;

             // ดักจับข้อผิดพลาดที่อาจเกิดขึ้นตอนเขียนไฟล์

                         try {

            // สร้างออบเจ็กต์ FileOutputStream โดยชี้ไปยังไฟล์ counter.txt

                          FileOutputStream countFile = new FileOutputStream ( path ) ;           

           // สร้างออบเจ็กต์ DataOutputStream เพื่อเขียนข้อมูล        

       DataOutputStream countData = new DataOutputStream ( countFile ) ; 

          // เขียนค่าในไฟล์ 

                                     countData.writeInt ( counter ) ;
                       }
                                catch ( Exception e )
                       {

           // หากเกิดข้อผิดพลาดให้แสดงคำว่า ” File not found.”

                            out.print ( ” File not found.” ) ;  
                        }
              %

                      /H1
                      /HR
                     /BODY

                     /HTML

 

 

สัญลักษณ์ต่าง ๆ ของ JSP (ต่อ)

หัวข้อพิเศษไอที, JSP No Comments »

แท๊ก Scriptlet

             จากที่เราใช้แท็ก  Expression  เพื่อแสดงผลข้อมูลในเอกสาร JSP โดยการใส่ค่าหรือสมการต่างๆ ไว้ในเครื่องหมาย % = และ % จะเหมาะสำหรับโค้ดที่มีความยาวไม่มาก แต่ถ้าโค้ดมีความยาวมากๆ ทำให้ยากที่จะใส่โค้ดที่เป็นสมการเข้าไป แท็ก Scriptlet จึงใช้เพื่อแก้ปัญหานี้ วิธีการประกาศก็คือ
                   

                    %
                              Statement 1;
                              Statement 2;
                              Statement 3;
                              Statement n;
                    %

               การประกาศจะเริ่มด้วย % และ จบด้วย % สำหรับแท็ก  Scriptlet  นี้สามารถแสดงผล  output  ออกมาได้เหมือนกัน วิธีการก็ใช้คำสั่ง  out.print  ของเราเหมือนเดิม ทีนี้อาจสงสัยว่า แล้วจะเลือกใช้อะไรดีระหว่างExpression และ Scriptlet คำตอบก็คือ หากส่วนของโค้ดยาวมากๆ ก็เขียนลงใน  Scriptlet  จะเหมาะสมกว่า

               ตัวอย่างของการผสมการใช้งานของ  Scriptlet , Expression , Directive  และ Declaration  เพื่อความเข้าใจเพิ่มขึ้นให้เปิดโปรแกรมเอดิเตอร์ขึ้นมาพิมพ์โค้ดตาม Source Code ชื่อ fileCounter.jsp แล้วบันทึกไฟล์ชื่อ fileCountter.jsp ลงในไดเรกทอรี C:\Tomcat\WebApps\Tutorial\Example\

แท๊ก Action

               แท็ก Action เป็นแท็กอีกชนิดที่มีประโยชน์มาก รูปแบบการใช้งานคือ

                            some : tag 
                                     body
                           / some : tag

               รูปแบบการประกาศของแท็กจะไม่มีเครื่องหมาย เหมือนกัน แต่จุดจบจะมีเครื่องหมาย / อีกตัว ในส่วนของชื่อแท็กนั้นจะต้องมีเครื่องหมายโคลอน ( : ) เพื่อบอกชนิดของแท็กด้วย

               แต่ถ้าในกรณีที่แท็กมีเพียงจุดเริ่มต้นและจบเพื่อความสะดวกจึงสามารถประกาศได้ดังนี้

                           / some : tag

               การเรียกใช้แท็กทำได้โดยการประกาศคือ JSP : แล้วตามด้วย action ที่จะทำ ยกตัวอย่าง เช่น

                           JSP : forward page = “fileCouner.JSP”/

              จากตัวอย่าง หากเรานำแท็กนี้ไปใส่ไว้ในเอกสาร JSP การทำงานจะคล้ายกับเราเรียกเอกสาร fileCounter.JSP เหมือนกับการ redirect นั่นเอง

 

 

 

สัญลักษณ์ต่าง ๆ ของ JSP(ต่อ)

หัวข้อพิเศษไอที, JSP No Comments »

แท๊ก Expression

                จากที่ผ่านมา จะเห็นว่าหากเราต้องการแสดงค่าต่างๆ ออกมาที่บราวเซอร์นั้นเราจะต้องเรียกใช้เมธอด out.print() การใช้คำสั่งนี้ในบางทีอาจจะไม่สะดวก แท็ก Expression จึงยอมให้มีการใช้รูแบบย่อของคำสั่ง out.print() มีรูปแบบการใช้งานคือ

        

                                        %=[Value] or [Expression]%

                 การใช้งานจะเริ่มด้วยเครื่องหมาย  %= แล้วตามด้วยค่าหรือสมการที่ต้องการแสดงผล แล้วปิดด้วย %> สำหรับเครื่องหมาย “;” นั้นไม่ต้องใส่สำหรับแท็กชนิดนี้ แท็ก Expression จะเปลี่ยนค่าที่เราต้องการแสดงผลให้เป็นสตริงโดยอัตโนมัติไม่ว่าค่านั้นจะมีชนิดข้อมูลเป็นอะไรทำให้ใช้งานสะดวก เพราะเราสามารถเอาแท็ก Expression ไปแทรกในส่วนโค้ด HTML ได้ ตัวอย่าง เช่น

                                          TD%= “Name” %/TD


                                          TD%= “Age” %/TD

สัญลักษณ์ต่าง ๆ ของ JSP(ต่อ)

หัวข้อพิเศษไอที, JSP No Comments »

แท๊ก Declaration

               ชื่อก็บอกอยู่แล้วว่าเป็น Declaration คือการประกาศนั่นเอง แท็กนี้จะทำให้สามารถใช้โค้ดจาวาเพื่อประกาศตัวแปร, เมธอด หรือคลาสได้ รูปแบบในการใช้งานคือ

                           %!
                                       Declaration1;
                                       Declaration2;
                           %

                ก่อนจะเริ่มประกาศค่าต่างๆ เราก็ต้องใส่เครื่องหมาย  %! และเมื่อจบการประกาศแล้วก็ปิดด้วย %  และที่สำคัญโค้ดจาวาที่อยู่ในแท็กชนิดนี้จำเป็นต้องปิดด้วยเครื่องหมาย “;” ทุกครั้ง
               แท็ก Declaration จะไม่แสดงผลใดๆ ทั้งสิ้น แต่ค่าต่างๆ นี้จะนำไปใช้สำหรับการทำงานของโปรแกรม ยกตัวอย่างเช่น

                           %!
                                      private int counter = 0;
                                      private String getAccount(int accNo)
                           %

              จากตัวอย่างเราได้ประกาศค่าเพื่อนำค่าเหล่านี้ไปใช้ภายหลัง เมื่อเราเรียกเอกสาร JSP ขึ้นมาค่าต่างๆ ที่เราได้ประกาศไว้ก็จะถูกประมวลผลเมื่อเรียกเอกสารนั้นขึ้นมา
 

 


   Designed By:  SadhWeb Directory  &  WP Theme

Sponsored By:  Affiliate Marketing Blog  &  Paid Directory