40
www.itsci.mju.ac.th/sayan JAVA SERVER PAGES (JSP) SAYAN UNANKARD 1/2562 1

JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: JAVA SERVER PAGES (JSP) - Maejo UniversitySAYAN – it MJU DEVELOPMENT OF JSP Java Server Pages ถ กพ ฒนาข นเพ อโต ตอบก บ Microsoft’s Active Server

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ตัวอยาง

• ตองการสรางคลาสจัดเก็บขอมูลวิชา ประกอบดวย รหัสวิชา ช่ือวิชา หนวยกิต บรรยาย และ

ปฏิบัติ

• สรางเมธอดสําหรับคํานวณคาลงทะเบียน กําหนดให หนวยกิตบรรยาย 200 บาท ปฏิบัติ 400

บาท

• สรางหนาจอ JSP สําหรับแสดงขอมูลรายวิชา พรอมทั้ งแสดงจํานวนเงินที่ตองจาย

คาลงทะเบียนหนวยกิตวิชานั้น ๆ

SAYAN – IT MJU 40