JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ...
Transcript of JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ...
![Page 1: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/1.jpg)
w w w . i t s c i . m j u . a c . t h / s a y a n
JAVA SERVER PAGES (JSP) SAYAN UNANKARD1/2562
1
![Page 2: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/2.jpg)
SAYAN – it MJU
WHAT IS A JSP PAGE ?
ตามคํานิยามของ Java Server Pages™ Specification:
A JSP page is a text-based document that describes how to process a request to
create a response. The description intermixes template data with some dynamic
actions [. . .].
• เปนเทคโนโลยีจาวาที่ใชในการพัฒนาเว็บไซดแบบไดนามิค
• JSP pages เปน HTML pages ที่ถูกฝงไวดวยโคดที่ยอมใหมีการเขาถึงขอมูลจากจาวาโคดที่รัน
อยูบนฝงเซิรฟเวอร
• การทํางานของ JSP จะมีการแบงแยกขั้นตอนการนําเสนอดวย HTML ออกจากขั้นตอนการ
ทํางานทางลอจิก
2
![Page 3: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/3.jpg)
SAYAN – it MJU
SEPARATING GUI AND DYNAMIC CONTENT
การแยกสวนของการนําเสนอออกจากสวนของการทํางานจะชวยใหการทํางานสะดวกขึ้นในแงของ
การแกไขตาง ๆ เชน
• สามารถใชภาษาที่แตกตางกันรวมกันได (HTML Vs. Java)
• มีเปาหมายในการทํางานที่แตกตางกัน
• มีความชํานาญที่แตกตางกัน
ดังนั้นการพัฒนาจะตองใชวิธีการจัดการที่แตกตางกันตามไปดวย
JSP ทําไดโดยการอาศัย Java tags พิเศษฝงไวใน HTML
3
![Page 4: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/4.jpg)
SAYAN – it MJU
DEVELOPMENT OF JSP
Java Server Pages ถูกพัฒนาขึ้นเพ่ือโตตอบกับ Microsoft’s Active Server Pages (ASP) โดย
ความแตกตางหลัก ๆ จะอยูท่ี ASP จะรันไดเฉพาะกับ Microsoft IIS และ Personal Web
Servers, และ JSP จะยอมใหผูใชสามารถสราง tags ใชเองได
ชวงเวลาของการพัฒนา: (หมายเหตุ JSP ถูกสรางขึ้นบน Servlets)
• Servlet 2.1 มกราคม 2542
• JSP 1.0 มิถุนายน 2542
• ซอรสโคดถูกสงใหกับ Apache เพ่ือพัฒนา Tomcat server ในเดือนพฤศจิกายน 2542
• Servlet 2.2 และ JSP 1.1 (J2EE1.2) ออกเผยแพรในเดือนธันวาคม 2542
4
![Page 5: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/5.jpg)
SAYAN – it MJU
JSP SPECIFICATION
ถูกพัฒนาขึ้นเพื่อรองรับอุตสาหกรรมซอฟตแวรที่นําโดย Sun Microsystems โดยการกําหนด
มาตรฐานการใชงานระหวาง server และ JSP page ในรูปของ format และ syntax ของ page
Sun ไดสราง JSP specification และยอมใหบริษัทสามารถนําไปใชไดฟรี โดยมีจุดมุงหมายวาทุกๆ
web server และ application server จะสนับสนุนการทํางานของ JSP
JSP specs ถูกสรางขึ้นในรูปของ Java Servlet API
JSP สนับสนุนการทํางานของไดนามิคเว็บสองแบบ คือ
• JSP pages สามารถฝงโคดจาวาลงใน HTML
• JSP สนับสนุนการทํางานโดยใช HTML-like tags ที่ใชติดตอกับจาวาออปเจคบนเซิรฟเวอร
(โดยไมจําเปนตองมีโคดจาวาภายใน page)
5
![Page 6: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/6.jpg)
SAYAN – IT MJU
JSP SPECIFICATION
6
![Page 7: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/7.jpg)
SAYAN – it MJU
JSP SPECIFICATION
Java Server Pages ยอมใหมี tags พิเศษรวมไปถึงจาวาโคดสามารถฝงตัวไวภายใน HTML ซึ่ง
tags และโคดเหลานี้จะถูกโปรเซสโดย Web server เพ่ือสราง HTML มาตรฐานแบบไดนามิค
สําหรับ browser
• เปนอีกสถาปตยกรรมอีกแบบหนึ่งใน application แบบกระจายใน Web-based
• สรางไดนามิค Web pages บนฝง server เชนเดียวกับ Servlets แตจะแยกสวนของการ
ทํางานออกจากสวนของการนําเสนอ
• ดวยลักษณะของ tags จะยอมใหสามารถใชโคดจาวาที่คอมไพลไวแลวมาใชไดในรูปของ
JavaBeans
• สามารถสรางเอกสาร XML ไดแทนที่จะเปน HTML
7
![Page 8: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/8.jpg)
SAYAN – it MJU
HTTP request
HTTP response
Web server
JSP page
JSP container compiles to
a servlet
URL
request
JavaBeanLibrary
DB
properties,call methods
HTTP page
response
Browser
ARCHITECTURE
8
![Page 9: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/9.jpg)
SAYAN – it MJU
STEPS REQUIRED FOR A JSP REQUEST
• เมื่อผูใชเลือก JSP page เบราเซอรจะทําการ request ผานอินเตอรเน็ต
• JSP request จะถูกสงไปยัง Web server
• จากนั้น Web server จะทําการตรวจสอบ JSP ไฟล และสงตอไปยัง JSP Servlet Engine
• หาก JSP file ถูกเรียกใชเปนคร้ังแรก JSP file จะถูก parsed กอน
• ขั้นตอนตอไปจะเปนการสราง Servlet จาก JSP file และสวนที่เปน HTML จะถูกแปลงให
เปนคําส่ัง println statements.
• ซอรสโคดที่เปน Servlet จะถูกคอมไพลใหอยูในรูปของ class.
• Servlet จะทําการสรางออปเจคเพ่ือเรียกใชเมธอดที่เก่ียวของตอไป
• Servlet output จะถูกสงผานอินเตอรเน็ตกลับไปยังเบราเซอร
9
![Page 10: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/10.jpg)
SAYAN – IT MJU
import java.io.*;import javax.servlet.*;import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {res.setContentType("text/html");PrintWriter out = res.getWriter();out.println("<HTML>");out.println("<HEAD>");out.println("<TITLE>Hello World</TITLE>");out.println("</HEAD>");out.println("<BODY>");out.println("<BIG>Hello World</BIG>");out.println("</BODY></HTML>");
}}
SERVLET EXAMPLE
10
![Page 11: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/11.jpg)
SAYAN – it MJU
TRANSLATING AND EXECUTING JSP PAGES
• JSP จะถูกประมวลผลภายใน JSP container ซึ่งโดยปกติจะติดต้ังอยูภายใน Web server
นั่นคือ “JSP container” จะเปรียบเสมือนตัว JVM ที่ประกอบไปดวยซอฟตแวรที่เหมาะสม
ติดต้ังไว
• โดยทํางานภายใตกฏเกณฑแบบเดียวกันกับ servlet
• โดยปกติแลว JSP container จะทําหนาที่ในการแปล JSP page ใหอยูในรูปของ servlet
• โดย default การแปลคอมไพลและแปลรหัสของ JSP page จะเกิดขึ้นเฉพาะคร้ังแรกที่มีการ
เขาถึง page นั้น ๆ
11
![Page 12: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/12.jpg)
1. Browser sends request to Web Server
7. Web Server sends HTML to Browser
2. Web Server sends request to Servlet Engine
Servlet
Servlet
Servlet6. JSP(Servlet) returns HTML
browser
Web Server
Servlet Container
DB
TopLink
5. JSP interacts with Java Bean(s) and/or Servlets
jdbc
4. Servlet Container runs the JSP (Servlet)
jsp
JSP Engine
Servlet source code
Java Compiler
JSP (Servlet)
Java Bean
3. JSP Engine generates servlet
JAVA SERVER PAGE DIAGRAM
SAYAN – IT MJU 12
![Page 13: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/13.jpg)
SAYAN – it MJU
ADVANTAGE & DISADVANTAGE
Advantages
• สามารถใชรวมกับเคร่ืองมืออ่ืน ๆ เชน J2EE
• สามารถพัฒนาระบบไดอยางรวดเร็ว
• สามารถรองรับงานที่มีขนาดตาง ๆ ไดดี
• ทํางานไดทุก platform
• เปนเทคโนโลยีแบบ Open Source
Disadvantages
• คอนขางชาเนื่องจากมีความตองการความสามารถสูง และ ความละเอียดสูง
• ใชเวลาในการเรียนรูนานกวาเทคโนโลยีอ่ืน ๆ
13
![Page 14: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/14.jpg)
SAYAN – it MJU
JSP VERSUS HTML
JSP สามารถทํางานไดดังตอไปนี้
• สามารถเขาถึงระบบฐานขอมูล
• สราง pages ที่สามารถแสดงส่ิงที่นาสนใจสําหรับผูใช
• เก็บขอมูลจากผูใชและคืนขอมูลกลับไปในรูปกลุมขอมูลที่ผูใชตองการ
• แกไข content ของ Web page โดยการ update ไฟลขอความหรือ contents ของระบบ
ฐานขอมูลมากกวาที่จะเปนตัวของ HTML code
• การเขาถึงระบบไฟลผาน Internet สามารถทําใหผูใชสามารถ read, write, และ update
ไฟล
14
![Page 15: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/15.jpg)
SAYAN – it MJU
ADVANTAGES OF JSP OVER COMPETING TECHNOLOGIES
เมื่อเทียบกับ ASP หรือ ColdFusion
• เปนภาษาที่ดีกวาในสวนของ dynamic part
• นําไปใชไดกับ servers และระบบปฏิบัติการไดอยางหลากหลาย
เมื่อเทียบกับ PHP
• เปนภาษาที่ดีกวาในสวนของ dynamic part
• มีเคร่ืองมือสนับสนุนที่ดีกวา
เมื่อเทียบกับ servlets
• เพ่ิมความสะดวกในการสราง HTML
• สามารถใชกับเคร่ืองมือมาตรฐานตาง ๆ
• มีลักษณะการทํางานแบบ Divide and conquer
• แตอยางไรก็ตามนักพัฒนา JSP จะตองมีความรูเก่ียวกับ servlet programming 15
![Page 16: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/16.jpg)
JSP EXAMPLE
SAYAN – IT MJU
<HTML>
<HEAD>
<TITLE>Hello World Example</TITLE>
</HEAD>
<BODY>
<H2>Hello World Example</H2>
<B><% out.println("Hello World"); %></B>
</BODY>
</HTML>
16
![Page 17: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/17.jpg)
SAYAN – IT MJU
import java.io.*;import javax.servlet.*;import javax.servlet.http.*;
public class Hello extends HttpServlet {public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {res.setContentType("text/html");PrintWriter out = res.getWriter();out.println("<HTML>");out.println("<HEAD>");out.println("<TITLE>Hello World</TITLE>");out.println("</HEAD>");out.println("<BODY>");out.println("<BIG>Hello World</BIG>");out.println("</BODY></HTML>");
}}
SERVLET EXAMPLE
17
![Page 18: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/18.jpg)
SAYAN – it MJU
SERVLETS
• servlet จะถูกโหลดขึ้นเฉพาะคร้ังแรกที่มีการรองขอจาก client และหลังจากนั้นทุก ๆ คร้ัง
ที่ client มีการรองขอไปยัง servlet server จะรันเมธอดอยูภายใน servlet ซึ่งการทํางาน
แบบนี้จะชวยลด response time ลง
• Servlets ถูกเขียนขึ้นโดยใชภาษาจาวาทั้งหมด.
• Servlets จะถูกคอมไพลและนําเสนอในรูปของไฟล .class
• เมื่อ servlet ถูก requested จาก client เมธอดจะถูกเรียกใชเพ่ือ response ไปยังการ
รองขอที่เกิดขึ้น
• เมื่อ servlet ถูกโหลดขึ้นแลวจะคงอยูในเมมโมร่ี จนกวาจะมีการปด server หรือกรณีอ่ืน ๆ
ที่ตองการ
18
![Page 19: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/19.jpg)
SAYAN – it MJU
SERVLETS
ปจจุบันไดมีบริษัทตาง ๆ ไดทําการพัฒนาเครื่องมือตาง ๆ เพื่อสนับสนุนการทํางานของ servlets
และ JSP รวมดวยภายในผลิตภัณฑตาง ๆ ที่ออกจําหนาย เชน IBM WebSphere server, BEA
WebLogic Application Server, Netscape Enterprise Server
สวน Servlet และ JSP engines จะไดแก
• JRUN จาก Live Software
• ServletExec จาก New Atlanta Communications
• Apache Tomcat จาก Apache Software Foundation
19
![Page 20: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/20.jpg)
1. Browser sends request to Web Server
6. Web Server sends HTML to Browser
2. Web Server sends request to Servlet Engine
Servlet
Servlet
Servlet5. Servlet generates and returns HTML
browser
Web Server
Servlet Container
DB
TopLink
4. Servlet can access database
jdbc
3. Servlet Engine runs the servlet
Extends Web Server
JAVA SERVLET DIAGRAM
SAYAN – IT MJU 20
![Page 21: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/21.jpg)
SAYAN – it MJU
INTRODUCTION TO JSP TAGS
JSP tags สามารถแบงออกไดเปน 4 ชนิด ไดแก
• Directives
ใชในการ import packages กําหนดกลไกในการจัดการ error หรือขอมูลเก่ียวกับ session
ใน JSP page
• Declarations
ใชในการกําหนด functions และ variables ที่ถูกใชใน JSP
• Scriplets
ใชสําหรับการแทรกโคดจาวาลงภายใน page
• Expressions
ใชแสดงผลลัพธของขอมูลบน page ที่ถูกสรางขึ้น
21
![Page 22: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/22.jpg)
DIRECTIVES
JSP ประกอบไปดวย directives 3 แบบ ไดแก : page directives, include directives และ
taglib directives.
ใน directive ทั้งสามแบบ page directive จะถือวามีความซับซอนมากที่สุด เนื่องจากมีการ
สนับสนุนการทํางานของ attributes จํานวนมาก
Page directive attributes จะประยุกตใชไดกับ JSP page ทั้งหมด เชน
• ใชในการกําหนดคาของภาษาสคริปต
• ใชสําหรับการ import จาวาคลาส
• ใชสําหรับกําหนดดการติดต้ังของ output buffer
• ควบคุมการทํางานของ session
SAYAN – IT MJU 22
![Page 23: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/23.jpg)
DIRECTIVES
รูปแบบของ JSP directives มีดังตอไปนี้
<%@directive attribute="value" %>
page: ที่ถูกใชในการใหขอมูลที่เกี่ยวกับเพจนั้น ๆ <%@page language="java" %>
include: ใชกรณีที่ตองการรวมไฟลอื่นเขาไปใน JSP page<%@ include file="/header.jsp" %>
taglib: ใชกรณีที่ตองการกําหนด tags ภายใน JSP pages เอง
<%@ taglib uri="tlds/taglib.tld" prefix="mytag" %>
SAYAN – IT MJU 23
![Page 24: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/24.jpg)
JSP PAGE DIRECTIVE
page directive อาจรับคาดังตอไปนี้ :
<%@ page language = "java" %>
<%@page contentType="text/html;charset=utf-8"%>
ตัวแปรนี้จะบอก JSP engine วาภาษาใดที่ถูกนํามาใชในไฟล "java" ซึ่งจะเปนเพียงภาษาเดียวที่
สนับสนุนโดย JSP ปจจุบัน
<%@ page import = "java.util.*, ItemValue" %>
• Comma จะแยกรายการของคลาสและ packages ที่ใชใน JSP page
• จะตองปรากฏที่ดานบนของไฟล
SAYAN – IT MJU 24
![Page 25: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/25.jpg)
SAYAN – it MJU
JSP PAGE DIRECTIVE (CONT.)
<%@ page session = "true | false" %>
• true จะเปนการระบุวาขอมูล session พรอมใชงานบน page
• โดย default จะถูกเซทคาเปน true
<%@ page buffer = "none | 16kb | sizekb" %>
• กําหนดขนาดของ output stream buffer
• คา Defaults จะเปน 8kb
• ใชรวมกับ autoFlush
<%@ page autoFlush = "true | false" %>
• เมื่อเซทคาเปน true จะทําการ flushes คาใน output buffer เมื่อเกิดเต็มมากกวาที่จะ
เรียกใช exception25
![Page 26: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/26.jpg)
SAYAN – it MJU
JSP PAGE DIRECTIVE (CONT.)
<%@ page errorPage="mypage/error_handler.jsp" %>
• ระบุ path ที่มีความสัมพันธกับ page เมื่อ control มีการ transferred หากเกิด
exceptions จาก page นี้
• กลไกการจัดการความผิดพลาดของ JSP page จะไดแกคา isErrorPage จะถูกเซทคาเปน
true
<%@ page isErrorPage = "true | false" %>
• กําหนด page ดวยกลไกการจัดการความผิดพลาด
26
![Page 27: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/27.jpg)
SAYAN – it MJU
JSP DECLARATIVES
ใชสําหรับการประกาศตัวแปรและเมธอดท่ีใชโดย JSP page
รูปแบบของ JSP Declaratives จะมีดังนี้
<%!
//java codes
%>
JSP Declaratives จะเร่ิมตนดวยเคร่ืองหมาย <%! และส้ินสุดดวยเคร่ืองหมาย %> ผูใชสามารถ
เขียนโคดไวภายใน JSP Declaratives
ตัวแปรและเมธอดที่ถูกประกาศไวในสวนของ declaratives จะเปนระดับของคลาส ดังนั้นจึง
สามารถนําไปใชไดทุกที่ภายใน JSP page
27
![Page 28: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/28.jpg)
SAYAN – it MJU
JSP DECLARATIONS
คลาสและตัวแปร instance (ที่ถูก generated จากคลาส servlet ) อาจนํามากําหนดไดโดยใช
JSP Declaration tag:
<%! String name = “Web Applications”;
int index = 10;
int count = 0;
%>
เมธอดอาจถูกระบุไดโดย:
<%! private int getNextIndex() {
return index ++;
}
%>28
![Page 29: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/29.jpg)
USING DECLARATIONS - IMPORT
กรณีที่ไมใชการ Declaration
<% java.util.Calendar rightNow = java.util.Calendar.getInstance();
int hour = rightNow.get(java.util.Calendar.HOUR_OF_DAY);
%>
เมื่อเปรียบเทียบกับกรณีที่ใชการ Declaration ดวย import :
<%@ page import="java.util.*" %>
<% Calendar rightNow = Calendar.getInstance();
int hour = rightNow.get(Calendar.HOUR_OF_DAY);
%>
SAYAN – IT MJU 29
![Page 30: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/30.jpg)
SAYAN – it MJU
DECLARATIVE EXAMPLE
<%@page contentType="text/html;charset=MS874"%>
<%!
public java.util.Date showdate() {
return (new java.util.Date());
}
%>
<html>
<body><%= "Date Time now is : <BR>"%><%= showdate() %>
</body>
</html>
30
![Page 31: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/31.jpg)
SAYAN – it MJU
JSP SCRIPTLETS
เปนสวนของจาวาโคดที่ฝงอยูใน HTML page
สามารถเขาถึงตัวแปรที่กําหนดไว
ใชสําหรับกําหนดกลไกสําหรับโคดที่มีความซับซอนมากกวา expressions
• สามารถเซต properties สําหรับ response object
• สามารถทดสอบพารามิเตอรสําหรับคาที่เปน null
รูปแบบของ JSP Scriptles จะไดแก
<%
//java codes
%>
31
![Page 32: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/32.jpg)
STATEMENT SCRIPTLET
เปนประโยคคําสั่งที่ถูกเขียนขึ้นเพื่อการทํางานอยางใดอยางหนึ่ง เชน การคํานวณ หรือการทํางาน
ตามเงื่อนไข ประโยคเหลานี้จะส้ินสุดดวยเคร่ืองหมาย ; เสมอ
<html>
<body>
<%
out.println("Date & Time now : <BR>");
out.println(new java.util.Date());
%>
</body>
</html>
SAYAN – IT MJU 32
![Page 33: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/33.jpg)
SAYAN – it MJU
JSP EXPRESSIONS
เหมาะสมสําหรับผลลัพธจากการทํางานของ expression ที่ฝงใน HTML page
• คาของ expression จะถูกแปลงใหอยูในรูปของ string และนําไปแสดงผล
• การแปลงคาเปน string จะเกิดขึ้นโดยอัตโนมัติ
• ถูกประมวลผลในชวง run time
รูปแบบของ JSP Expressions มีดังตอไปนี้
<%= "Any thing" %>
33
![Page 34: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/34.jpg)
JSP EXPRESSIONS
SAYAN – IT MJU
<HTML>
<HEAD><TITLE>JSP</TITLE></HEAD>
<BODY>
Date Time : <%= new java.util.Date() %>
</BODY>
</HTML>
34
![Page 35: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/35.jpg)
JSP EXPRESSIONS
ใชสําหรับแสดงคาตัวแปรที่มีการคํานวณรวมอยูภายในนิพจนนั้น ๆ
โดยมีรูปแบบดังนี้
<%= //expression %>
<html>
<body>
<%= "Date Time now is : <BR>"%>
<%= new java.util.Date() %>
</body>
</html>
SAYAN – IT MJU 35
![Page 36: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/36.jpg)
SAYAN – it MJU
EXAMPLE
<%@page contentType="text/html" %>
<html>
<body>
<%!int cnt = 0;private int getCount(){
//increment cnt and return the valuecnt++;return cnt;
}
%>
<p>Values of Cnt are:</p>
<p><%=getCount()%></p>
<p><%=getCount()%></p>
</body>
</html>
36
![Page 37: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/37.jpg)
JSP EXPRESSIONS
เมธอด Date() จะคืนคา current date และ time หากทําการกําหนด package ไวภายใน JSP
Declaratives
<%@page contentType="text/html" import="java.util.*"%>
<html><head><title>showdate</title></head><body>
<%= "Date Time now is : <BR>"%><%=new Date() %>
</body></html>
SAYAN – IT MJU 37
![Page 38: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/38.jpg)
COMMENTS
• จุดประสงคเพ่ือใหการทําความเขาใจตอโปรแกรมงายขึ้น
• จะถูก Ignored เม่ือเขาสูกระบวนการแปลงโคด และ จะถูกสงกลับไปยัง client โดยผานกลไก
response ในรูปของ output stream
• จะไมปรากฏอยูในสวนแสดงผลของ browser
• มีรูปแบบและวิธีการเขียนเชนเดียวกับ HTML
<!-- content comments -->
• นอกจากนั้นยังสามารถรวมเขากับขอมูลแบบไดนามิคได เชน
<!--
JSP Page <%=new Date() %>
-->
SAYAN – IT MJU 38
![Page 39: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/39.jpg)
HIDDEN COMMENTS
SAYAN – IT MJU
<HTML>
<HEAD>
<TITLE>Test Page</TITLE>
</HEAD>
<BODY>
<!--this is an example of regular HTML comments-->
<H1>This is a test page</H1>
</BODY>
</HTML>
39
![Page 40: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server](https://reader035.fdocuments.net/reader035/viewer/2022080723/5f7c0f8235f8926def5d3402/html5/thumbnails/40.jpg)
ตัวอยาง
• ตองการสรางคลาสจัดเก็บขอมูลวิชา ประกอบดวย รหัสวิชา ช่ือวิชา หนวยกิต บรรยาย และ
ปฏิบัติ
• สรางเมธอดสําหรับคํานวณคาลงทะเบียน กําหนดให หนวยกิตบรรยาย 200 บาท ปฏิบัติ 400
บาท
• สรางหนาจอ JSP สําหรับแสดงขอมูลรายวิชา พรอมทั้ งแสดงจํานวนเงินที่ตองจาย
คาลงทะเบียนหนวยกิตวิชานั้น ๆ
SAYAN – IT MJU 40