วันจันทร์ที่ 14 ธันวาคม พ.ศ. 2558




ประวัติของผู้จัดทำ









ชื่อ นางสาว กันตพร  ประมูลจักโก
ชื่อเล่น  แก้ม
เกิดเมื่อวันที่ 22 เมษายน 2541
ศึกษาชั้น มัธยมศึกษาปี่ที่ 6/1 
สาย วิทย์-คณิต
วิชาที่ชอบ วิทยาศาสตร์ สังคมศึกษา ภาษาไทย ศิลปะ-ดนตรี
สี่ที่ชอบ ฟ้า ม่วง
อาหารที่ชอบ แกงเขียวหวาน ข้าวมันไก่
งานอดิเรก ดูหนัง ฟังเพลง อ่านหนังสือ
คติประจำใจ ถ้าไม่ก้าว คงไม่มีวันไปข้างหน้า







ชื่อ นางสาว ปภาวดี ศรีใจแก้ว
ชื่อเล่น  จอย
เกิดเมื่อวันที่ 27 พฤศจิกายน 2540
ศึกษาชั้น มัธยมศึกษาปี่ที่ 6/1
สาย วิทย์-คณิต
วิชาที่ชอบ ภาษาอังกฤษ สังคมศึกษา
สี่ที่ชอบ ชมพู
อาหารที่ชอบ ส้มตำ
งานอดิเรก ดูหนัง ฟังเพลง อ่านหนังสือ







ชื่อ นางสาว ภัทรวดี สิงหามาตย์
ชื่อเล่น  ฟ้า
เกิดเมื่อวันที่ 9 กันยายนยน 2540
ศึกษาชั้น มัธยมศึกษาปี่ที่ 6/1
สาย วิทย์-คณิต
วิชาที่ชอบ ภาษาอังกฤษ คณิตศาสตร์
สี่ที่ชอบ สีฟ้า
อาหารที่ชอบ แกงเขียวหวาน
งานอดิเรก ทำข้อสอบ อ่านหนังสือ
คติประจำใจ ความฝันเพียงน้อยนิด สามารถสร้างสิ่งเล็กๆได้ยิ่งใหญ่เสมอ.










ชื่อ นายวัชระ รังคะวงค์
ชื่อเล่น  แป๊ก
เกิดเมื่อวันที่ 11 มกราคม 2541
ศึกษาชั้น มัธยมศึกษาปี่ที่ 6/1
สาย วิทย์-คณิต
วิชาที่ชอบ วิทยาศาสตร์  ศิลปะ-ดนตรี
สี่ที่ชอบ เขียว ฟ้า
อาหารที่ชอบ ข้าวผัด ทอดหมู ทอดเนื้อ
งานอดิเรก ทำสิ่งประดิษฐ์ ฟังเพลง อ่านหนังสือ
คติประจำใจ ดีมาดีกลับ ร้ายมาร้ายตอบ







ชื่อ นางสาว เพชรไพรินทร์  บุ้งเจาะบาง
ชื่อเล่น  หมอก
เกิดเมื่อวันที่ 25 ตุลาคม 2540
ศึกษาชั้น มัธยมศึกษาปี่ที่ 6/1
สาย วิทย์-คณิต
วิชาที่ชอบ วิทยาศาสตร์
สี่ที่ชอบ -
อาหารที่ชอบ ส้มตำ ไก่ย่าง
งานอดิเรก ดูหนัง ฟังเพลง
คติประจำใจ -


วันอาทิตย์ที่ 29 พฤศจิกายน พ.ศ. 2558

ประวัติภาษา JSP


            JSP (Java Server Page) ภาษา JSP เป็นเทคโนโลยีของจาวาสำหรับสร้าง HTML, XML หรือตามที่ผู้ใช้ร้องขอ มีตัวแปลภาษาคือ Tomcat Apache และ Java Compiler พัฒนาโดย James Duncan Davidson ค.ศ.2000 ตัวแปลภาษาจะสร้าง Servlet และเปลี่ยนเป็น Byte Code สำหรับถูกเรียกใช้ครั้งต่อไป จาก JSP Source Code
             Java Server Page (JSP) เป็นเทคโนโลยีสำหรับการควบคุมเนื้อหาหรือสิ่งที่มองเห็นของเว็บเพจผ่านการใช้ servlet ที่เป็นโปรแกรมขนาดเล็กที่ได้รับการระบุในเว็บเพจและเรียกใช้บนแม่ข่ายเว็บเพื่อการปรับปรุงเว็บเพจก่อนได้รับการส่งไปยังผู้ใช้ผู้ขอสิ่งนี้ Sun Microsystems ผู้พัฒนา Java ได้อ้างถึงเทคโนโลยี JSP เป็น Servlet application program interface (API) โดย JSP เปรียบเทียบได้กับเทคโนโลยี Active Server Page (ASP) ของ Microsoft ขณะที่ Java Server Page เรียกโปรแกรม Java ที่ได้รับการประมวลผลโดยแม่ข่ายเว็บ Active Server Page เก็บสคริปต์ที่ได้รับการแปลโดยตัวแปรสคริปต์ (เช่น VBScript หรือ Jscript) ก่อนเพจได้รับการส่งไปยังผู้ใช้  เพจ HTML ที่เก็บการเชื่อมโยงกับ Java servlet บางครั้งให้ไฟล์นามสกุล .JSP
            JSP เกิดขึ้นเมื่อปี 1999 โดยบริษัท Sun Microsystems

ความหมายของ JSP

          

           หรือ Java Server Page เป็นเทคโนโลยี Java อีกเทคโนโลยีหนึ่ง ซึ่งมีการทำงานอยู่บนฝั่ง Server หรือ อาจเรียกได้ว่าเป็นการทำงานแบบ Server side ขั้นตอนการทำงานจะเริ่มตั้งแต่การร้องขอ หรือ เกิด Request จาก Browser หรือ Client มาที่ JSP บนฝั่ง Server จากนั้น Server ก็จำทำการประมวลผล JSP เป็น servlet ก่อน แล้วส่ง Response กลับไปให้ Client ในรูปของ HTML
การใช้ JSP ร่วมกับ Technology อื่น
นอกจาก JSP จะถูกนำมาประมวลผลในรูปแบบข่างต้นแล้ว JSP ยังอาจนำไปใช้ร่วมกับ Component หรือ เทคโนโลยีอื่นๆ ได้ เช่น นำไปใช้ร่วมกับ Servlet , Class Bean หรือ EJB เป็นต้น ซึ่งจะทำให้การทำงานของระบบมีประสิทธิภาพสูงขึ้น ในขณะเดียวกันก็มีความซับซ้อนมากตามไปด้วย เช่นกัน



หลักการทำงานของ JSP


JSP เป็น technology ที่สร้างบน Servlet อีกทีหนึ่ง มีจุดประสงค์เพื่อแยกเอาส่วนที่เป็น presentation (user interface) ซึ่งก็คือพวก HTML code ออกมาจาก servlet code ซึ่งเป็น code ภาษาจาวา เพื่อในการสร้าง/แก้ไข user interface (web pages) จะได้ทำได้ง่าย ทั้งนี้เพราะว่าคนที่ทำหน้าที่สร้าง/แก้ไข web page ไม่ใช่ programmer แต่เป็น web designer ซึ่งไม่มีความรู้เรื่องภาษาจาวาเท่าไหร่นัก JSP มักใช้คู่กับ Servlet ในการสร้าง web application โดย JSP จะใช้สร้างส่วนที่เป็น user interface ในขณะที่ Servlet จะใช้ในการควบคุม flow ของโปรแกรม
JSP ย่อมาจาก Java Server Page เป็นการพัฒนาเวปเพจลักษณะ web-scripting คล้ายกับ Microsoft Active Server Pages (ASP) ซึ่งทำงานร่วมกันระหว่างภาษาจาวากับ HTML ลักษณะของโปรแกรมจะคล้ายกับการนำจาวาไปแทรกในหน้า HTML อย่างไรก็ตาม Web server จะแปลงไฟล์ jsp มาคอมไพล์ให้อยู่ในรูปของ servlet จากนั้นนำผลลัพธ์กลับมาแสดงในรูปของ HTML ดังรูป
โครงสร้างการทำงานของ JSP

                จะเห็นว่าการที่ jsp ทำงานได้ต้องอาศัย JSP Container ที่อยู่ใน web server ในที่นี้เราจะ Apache Tomcat เป็น Web server และ JSP Container ในตัว เมื่อต้องการนำทดสอบหรือนำไปใช้งานจริงบน web server ทำได้โดย
1. นำไฟล์ jsp ที่สร้างขึ้นไปวางที่ %TOMCAT_HOME%/webapps/yourapps/ หรือ %TOMCAT_HOME%/webapps/ROOT ก็ได้
2. บีบอัดโฟล์เดอร์ที่เก็บโปรแกรมโดยใช้ฟอร์แมท zip แล้วเปลี่ยนนามสกุลเป็น .war นำไปวางที่  %TOMCAT_HOME%/webapps/
3. กรณีที่ไม่ต้องการย้ายโฟล์เดอร์ไปไว้ใน TOMCAT_HOME เราสามารถแก้ไขไฟล์ %TOMCAT_HOME%/conf/server.xml ส่วน Context เช่น <Context path="/TestApp" docBase="D:\TestApplication\" debug="0" reloadable="true"/> ให้ชี้ไปยังที่ที่เราพัฒนาโปรแกรมได้
4. ใช้ Apache ANT ช่วยในการติดตั้ง วิธีการจะค่อนข้างซับซ้อน

          ตัวอย่าง
               

แทกของ JSP แบ่งเป็น
- Directives <%@ page attribute=value %>
มักอยู่บนสุดของ JSP page ซึ่งใช้ในการกำหนดค่าต่าง ๆ ที่เกี่ยวข้องกับ JSP หรือเกี่ยวข้องกับการสื่อสารกับ JSP Container เช่น
import คลาสโดยใช้  <%@ page import="java.util.Date" %>
            เมื่อที่เกิดข้อผิดพลาดใน JSP แล้วต้องการให้แสดงหน้า error page ที่ชื่อ errorPage.jsp  โดยใช้<%@ page errorPage="errorPage.jsp" %>
            เมื่อต้องการเก็บ states ในรูปของ session โดยใช้  <%@ page session="true" %> 
            เมื่อต้องการนำไฟล์อื่น ๆ เช่น html, jsp มาประกอบในไฟล์ JSP โดยใช้ <%@ include file="filename.jsp" %>
- Expressions ใช้แปลงค่าตัวแปรของจาวาให้อยู่ในรูปของ string แล้วแทรกลงใน HTML ไม่ต้องใส่เครื่องหมาย ; ท้ายตัวแปร <%= expression %>
- Scriptlets ใช้ใส่โค้ดของจาวา ส่วนของโลจิกและการประมวลผมลงใน HTML <% statements %>
- Declaration ใช้ประกาศคลาส เมธอดและตัวแปรภาษาจาวาภายใน HTML เมื่อโหลด jsp ครั้งแรกจะทำการ initialize โดยอัตโนมัติ <%! statements %>
- Comments มีสองแบบคือ
                        comment ปกติที่ใช้ในภาษา html  ซึ่ง JSP Container จะนำมาประมวลผลและแสดงในหน้า html ด้วย
<!-- comment -->
                        comments ของ JSP ซึ่งจะถูก JSP Container ข้ามไปไม่นำมาประมวลผล                <%-- comment --%>
JSP Implicit Object
ใน JSP บางคลาสที่เราใช้เป็นประจำ เราสามารถเรียก object ของคลาสออกมาใช้ได้โดยไม่ต้องมีการประกาศตัวแปรก่อน เราเรียกว่า Implicit Object หรือ Predefined variable ได้แก่
·  out ใช้ในการส่งผลกลับไปยังผู้ใช้
·  page คือหน้าของ jsp เอง คล้ายกับ this ในจาวา
·  pageContext ใช้เก็บข้อมูลคุณสมบัติของ jsp ทั้งหน้านี้
·  request ใช้รับ request คล้ายกับ HttpServletRequest ของ servlet
·  response ใช้ส่ง response คล้ายกับ HttpServletResponse ของ servlet
·  session ใช้เก็บ session ที่มากับ request
·  config ใช้เก็บ setting ที่มากับ jsp
·  application ใช้เก็บข้อมูลที่ใช้ร่วมกันของทั้ง JSP และ servlets ใน application นั้น
·  exception ใช้กำหนดหน้าของ jsp ที่ใช้แสดงกรณีเกิด Exceptions ขึ้น

JSP Actions
·  jsp:include ใช้สำหรับดึงไฟล์ต่าง ๆ เข้ามาในไฟล์ JSP <jsp:include page="relativeURL" flush="true"/> ซึ่งไฟล์นั้นจะต้องอยู่ใน uri เดียวกันกับไฟล์ jsp นั่น และ flush จะใช้ในการล้าง buffer ก่อนจะรวมไฟล์เข้ามา
·  jsp:plugin ใช้ในกรณีที่ต้องทำงานร่วมกับเบราว์เซอร์  Netscape Navigator และ Internet Explorer จำเป็นต้องใช้แทกนี้ในการเรียกใช้งาน applet หรือ flash
·  jsp:param ใช้ในการกำหนดพารามิเตอร์ของ jsp:include jsp:forward  jsp:params และ jsp:plugin
·  jsp:fallback  ใช้แสดงข้อความที่กำหนดเมื่อเบราว์เซอร์ไม่สนับสนุน applets

ตัวอย่าง
·  jsp:forward ใช้ในการส่งต่อ request และ response ไปยัง JSP หรือ servlet อื่นโดยไม่กลับมาที่หน้านี้อีก <jsp:forward page="urlSpec" /> 
·  jsp:useBean ใช้สำหรับเรียกใช้บีน
·  jsp:setProperty ใช้เซตคุณสมบัติหรือค่าตัวแปรให้กับบีน ไม่จำเป็นต้องใช้ใน useBean

สามารถใช้ * เพื่อแมปค่าของ element เข้ากับ ค่า property ต่างๆของ Bean โดยอัตโนมัติ
<jsp:setProperty name="myBeanInstance" property="*"/>
·  jsp:getProperty ใช้ดึงคุณสมบัติจากบีน
การใช้งานบีนบน JSP
                การพัฒนาแอปพลิเคชั่นบน jsp สามารถทำได้สะดวก รวดเร็วคล้ายกับแอปพลิเคชั่นภาษาจาวาอื่นทั่วไป เนื่องจากใช้จาวาบีนได้ การใช้บีนจะช่วยลดความซ้ำซ้อนในการสร้างเมธอดที่มีการใช้งานบ่อยๆ และลดความผิดพลาดในกรณีที่ต้องแก้ไขเมธอดเหล่านั้นซึ่งสามารถกระทำได้ในไฟล์เดียว การเรียกใช้งานบีน บน jsp ทำได้โดยใช้  jsp:useBean ดังนี้
<jsp:useBean id="myBean" class="package.MyBeanClass" scope="request">
id         คือชื่ออ้างอิงของบีน เวลาเรียกใช้พารามิเตอร์ หรือ เซตคุณสมบัติ
class    คือ คลาสของบีน
scope คือ ขอบเขตการทำงานของบีน ประกอบด้วย
page บีนจะถูกสร้างทุกๆครั้งเมื่อมีการเรียกหน้านั้นและถูกทำลายเมื่อออกจากหน้านั้นไป
request บีนจะถูกสร้างทุกๆครั้งเมื่อมีการเรียกหน้านั้นและเมื่อไปหน้าอื่นที่เรียกบีนตัวเดียวกันก็ยังสามารถใช้งานบีนตัวนั้นได้อยู่
session บีนจะถูกสร้างขึ้นและเก็บข้อมูลจนกว่าจะหมด session ของผู้ใช้
application บีนที่มีเพียงชุดเดียว ผู้ใช้งานทุกคนจะใช้บีนนี้ร่วมกันตั้งแต่เริ่มต้นกระทั่งแอปพลิเคชั่นสิ้นสุดการทำงาน
การสร้างบีนควรกำหนดชื่อ package เพื่องานในการอ้างอิงและการติดตั้งบีน โดยปกติแล้ว แต่ละแอปพลิเคชั่นบีนจะถูกคอมไพล์แล้วเก็บไว้ที่ Application_folder\WEB-INF\classes\package\ เว้นแต่บีนที่ถูกใช้งานบ่อยๆอาจเก็บไว้ที่  %TOMCAT_HOME% \shared\classes\package เพื่อให้ทุกแอปพลิเคชั่นนำไปใช้ได้

การใช้งาน JSP ร่วมกับฐานข้อมูล
เมื่อใช้ JSP เชื่อมโยงกับฐานข้อมูลคล้ายกับแอปพลิเคชั่นภาษาจาวาโดยทั่วไป คือ
·  import java.sql.* เสมอ
·  ประกาศใช้งาน Driver ของฐานข้อมูล
·  กำหนด URL username/password ของฐานข้อมูล
·  สร้าง Connection
·  สร้าง Statement
·  นำ Statement มาใช้ในเชื่อมโยงกับฐานข้อมูล
·  หลังจากใช้งานเสร็จแล้วต้องปิด Statement และ Connection ตามลำดับทุกครั้ง
กระบวนการสร้าง Connection จนกระทั่งปิด Connection ต้องทำภายใน Exception Handling หรือ try{……..}catch(Exception e){}

ตัวอย่าง



ข้อดีภาษา JSP

- JSP สามารถเรียนรู้และใช้งานได้ง่าย

- JSP สามารถทำงานได้อย่างมีประสิทธิภาพในฝั่งเซิร์ฟเวอร์

- JSP จะทำการ compiled ก่อนเสมอ ที่จะส่งไปรันบนเซิร์ฟเวอร์

- JSP สามารถใช้งานร่วมกับ servlets ได้

- JSP เป็นส่วนหนึ่งของ J2EE ซึ่งหมายความว่า JSP สามารถเป็นส่วนในการทำงานที่ง่าย หรือซับซ้อนได้

- JSP เขียนด้วยภาษา java จึงทำให้มีประสิทธิภาพ และใช้งานได้ง่ายกว่า

- JSP สามารถใช้กับ webserver ระบบปฏิบัติการใด ๆ ได้ ไม่เฉพาะแต่ของ Microsoft Web servers เท่านั้น


ข้อเสียภาษา JSP

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

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

การใช้งานภาษา JSP

    1. ผู้ใช้ เปิดโปรแกรมเว็บบราวเซอร์ และพิมพ์ URL ลงในช่อง Address ของเว็บราวเซอร์เพื่อระบุร้องขอ ไฟล์ JSP เช่น http://locahost/hello.jsp จากนั้นกด Enter เครื่องคอมพิวเตอร์ของผู้ใช้ก็จะส่งการร้องขอไฟล์  hello.jsp ไปยัง Wed server ( เรียกว่า  HTTP request )
     2. Wed server ส่งต่อการร้องขอของ Client ไปยัง Wed container คือ ส่งการร้องขอไฟล์ชื่อ hello.jsp ไปยัง Wed container
     3. Wed container ทำการประมวลผลไฟล์ hello.jsp ตามที่ Client ร้องขอเข้ามา
     4. เมื่อประมงลผลเสร็จเรียบร้อย Wed container จะส่งผลลัพธ์ที่ได้กลับไปยัง Wed server
   5. Wed server ส่งผลลัพธ์ที่ได้กลับคืนไปยัง Client ( เรียกว่า  HTTP request ) ซึ่งทำให้ผู้ใช้เห็นผลลัพธ์ ของไฟล์ hello.jsp แสดงออกมาที่เว็บบราวเซอร์นั่นเอง

การเขียนโปรแกรมใช้งานอย่างง่าย



ตัวอย่างแฟ้ม a.jsp ที่สร้างขึ้นด้วย notepad
<body><pre>
<%
for (int i=1;i<=10;i++)
{
 out.println(i);
}
%>
</pre></body>

ตัวอย่างแฟ้ม b.jsp :: อ่านข้อมูลจาก DSN ใน ODBC มาแสดงผล
<body>
<%@ page import="java.sql.*" %>
<%
  Connection connection;
  Statement statement;
  String sourceURL = "jdbc:odbc:empl";
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  connection = DriverManager.getConnection(sourceURL);
  statement = connection.createStatement();
  String sql = "select * from empl";
  ResultSet myresult = statement.executeQuery(sql);
  while (myresult.next()) {
    out.println(myresult.getString("emplid") + "<br>");
  }    
  myresult.close();
%>
</body>


การเขียน JAVA JSP แบบ MVC ตอนที่ 1