JSP (Java Server Pages) - jsp.pdf · JSP จะประมวลผลบน Server...

17
1 ธีระยุทธ ทองเครือ JSP Java Server Pages

Transcript of JSP (Java Server Pages) - jsp.pdf · JSP จะประมวลผลบน Server...

Page 1: JSP (Java Server Pages) - jsp.pdf · JSP จะประมวลผลบน Server โดยสามารถรับ request และส่ง response ได้ เช่นเดียวกบั

1

ธระยทธ ทองเครอ

JSP

Java Server Pages

Page 2: JSP (Java Server Pages) - jsp.pdf · JSP จะประมวลผลบน Server โดยสามารถรับ request และส่ง response ได้ เช่นเดียวกบั

JSPJSP คอ เทคโนโลยทใชในการสราง Web Application เชนเดยวกบ Servlet JSP จะประมวลผลบน Server โดยสามารถรบ request และสง response ได

เชนเดยวกบ ServletJSP จะคลายคลงกบภาษา PHP คอ เขยน HTML, CSS หรอ JS และแทรกสวนท

ท างานในแทกเฉพาะ

2

<html>

<body>

<?php

echo "Hello World";

?>

</body>

</html>

<html>

<body>

<%

out.println( "Hello World");

%>

</body>

</html>

PHP JSP

Page 3: JSP (Java Server Pages) - jsp.pdf · JSP จะประมวลผลบน Server โดยสามารถรับ request และส่ง response ได้ เช่นเดียวกบั

การแทรกค าสงภาษา Java ใน JSPใชสญลกษณทเรยกวา Scriptlet

3

<html>

<body>

<% int count = 0; %>

The page count is now:

<%

out.println(count++);

%>

</body>

</html>

<% โคดภาษา Java %>

Page 4: JSP (Java Server Pages) - jsp.pdf · JSP จะประมวลผลบน Server โดยสามารถรับ request และส่ง response ได้ เช่นเดียวกบั

ตวอยาง

4

<html><body><% for (int i=1; i<=10; i++) { %>

Hello <%=i %> <br><% } %></body></html>

Page 5: JSP (Java Server Pages) - jsp.pdf · JSP จะประมวลผลบน Server โดยสามารถรับ request และส่ง response ได้ เช่นเดียวกบั

แทก Expressionแทก Expression ใชแทนค าสง out.prinln( ) มรปแบบดงน

5

<html>

<body>

<% int count = 0; %>

The page count is now:

<% out.println(count++); %>

</body>

</html>

<html>

<body>

<% int count = 0; %>

The page count is now:

<%= count++ %>

</body>

</html> !!! ขอควรระวง !!!แทกนจะไมม Semicolon

ไมใชแทก Expression ใชแทก Expression

<%= expression %>

Page 6: JSP (Java Server Pages) - jsp.pdf · JSP จะประมวลผลบน Server โดยสามารถรับ request และส่ง response ได้ เช่นเดียวกบั

Implicit objectObject ทไฟล JSP สามารถเรยกใชไดเลย โดยไมตองประกาศกอน ไดแก

out - ใชส าหรบใสขอมล response ในสวนทจะสงกลบไปแสดงผล request – ใชดงขอมลจาก HTTP request response - ใชเกบขอมลผลลพธทสงกลบ session – ตวแปร session

6

Page 7: JSP (Java Server Pages) - jsp.pdf · JSP จะประมวลผลบน Server โดยสามารถรับ request และส่ง response ได้ เช่นเดียวกบั

ตวอยาง

7

<html><body><%

String fname = request.getParameter("fname");out.println(fname + "<br>");

%>

<%= request.getParameter("lname") %></body></html>

<html><body>oily<br>sunny</body></html>

ผลลพธจาก Browser ผลลพธในรปแบบโคด

Page 8: JSP (Java Server Pages) - jsp.pdf · JSP จะประมวลผลบน Server โดยสามารถรับ request และส่ง response ได้ เช่นเดียวกบั

ภาษาไทยบน JSPใชค าสงดงน

ซงเปนค าสงเดยวกบใน Servlet

8

<%@page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>

response.setCharacterEncoding("utf-8");

response.setContentType("text/html; charset=utf-8");

Page 9: JSP (Java Server Pages) - jsp.pdf · JSP จะประมวลผลบน Server โดยสามารถรับ request และส่ง response ได้ เช่นเดียวกบั

กจกรรมจงสรางฟอรม HTML และสงขอมลไปยงไฟล JSP อกไฟลหนง เพอแสดงผลดง

ตวอยาง

9

Page 10: JSP (Java Server Pages) - jsp.pdf · JSP จะประมวลผลบน Server โดยสามารถรับ request และส่ง response ได้ เช่นเดียวกบั

กจกรรมจงเปลยนนามสกลไฟล .html จากกจกรรมกอนหนาเปน .jsp และเพมฟอรมรบคาวน

เดอนปเกด ทเปนแบบรายการใหผใชเลอก โดยใชวธการวนลปดวยค าสงภาษาจาวา ดงตวอยาง

10

Page 11: JSP (Java Server Pages) - jsp.pdf · JSP จะประมวลผลบน Server โดยสามารถรับ request และส่ง response ได้ เช่นเดียวกบั

JSP จะถกแปลเปน ServletJSP ทสรางขน มนามสกลเปน .jsp เมอไฟล JSP ถกเรยกครงแรก Web Container จะแปลใหเปน Servlet (.java) กอน

เรมท างาน หากมแทกตางๆจะถกแปลงเปน content เกบลงใน response

11

การแปลและ compile ไมไดเกดขนทกครงท JSP ถกเรยกแตจะเกดขน 2 กรณเทานน- ผใชเรยกไฟล JSP ครงแรก- ไฟล JSP มการแกไข

Page 12: JSP (Java Server Pages) - jsp.pdf · JSP จะประมวลผลบน Server โดยสามารถรับ request และส่ง response ได้ เช่นเดียวกบั

JSP คอ Servletโครงสรางของ JSP จะมความคลายคลงกบ Servlet โดยมเมธอด service( ) ทท า

หนาทรบ request และสง response (JSP ใชชอเมธอด _jspService)

12

ไฟล JSP ทถกแปลเปน Servlet จะเกบอยใน[workspace folder]\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost

Page 13: JSP (Java Server Pages) - jsp.pdf · JSP จะประมวลผลบน Server โดยสามารถรับ request และส่ง response ได้ เช่นเดียวกบั

การ importหาก JSP มการเรยกใชคลาสมาตรฐานของ Java หรอคลาสทสรางขนเองจะตอง

import ในรปแบบดงน

ตวอยาง<%@page import="java.util.*" %><%@page import="java.util.*, mypack.*" %><%@page import="java.util.ArrayList, mypack.TestDB, mypack2.*" %>

เรยกแทกชนดนวา Directive

13

<%@page import="ชอ package และคลาส" %>

ใช * เพอระบวาตองการใชทกคลาสใน package

หากใชคลาสจากหลาย package ใหคนดวย comma

สามารถระบจ าเพาะชอคลาสทตองการใชหลงชอ package ได

Page 14: JSP (Java Server Pages) - jsp.pdf · JSP จะประมวลผลบน Server โดยสามารถรับ request และส่ง response ได้ เช่นเดียวกบั

การใส CommentComment ใน JSP อยในรปแบบดงน

Comment แบบนจะไมถกสงไปกบ response (client ไมเหนใน code html)

หากใช Comment ในรปแบบภาษา html จะสามารถมองเหนไดท client

14

<%-- JSP Comment --%>

<!-- HTML Comment -->

Page 15: JSP (Java Server Pages) - jsp.pdf · JSP จะประมวลผลบน Server โดยสามารถรับ request และส่ง response ได้ เช่นเดียวกบั

include directiveการแยกสวนประกอบของเวบเพจไวคนละไฟลจะชวยใหงายตอการกลบมาแกไข

สามารถใช Include directive เพอชวยในการก าหนด Template ของเวบไซตได

ไฟล html หรอ jsp ทตองการน ามาประกอบเปนสวนหนงของเวบเพจจะใชค าสงดงน

15

<jsp:include page="path/ชอไฟล jsp หรอ html"/>

Page 16: JSP (Java Server Pages) - jsp.pdf · JSP จะประมวลผลบน Server โดยสามารถรับ request และส่ง response ได้ เช่นเดียวกบั

16

Page1.jsp<html><body><jsp:include page="header.jsp"/>

xxxxx Page 1 Content xxxxxx

<jsp:include page="footer.html"/></body></html>

header.jsp<div style="background-color: navy; color: white;"><h1>Header</h1></div>

footer.html<br><br><div style="background-color: aqua;">Footer</div>

Page2.jsp<html><body><jsp:include page="header.jsp"/>

<h3>Page 2 Content</h3>

<jsp:include page="footer.html"/></body></html>

Page 17: JSP (Java Server Pages) - jsp.pdf · JSP จะประมวลผลบน Server โดยสามารถรับ request และส่ง response ได้ เช่นเดียวกบั

เอกสารอางองBryan Basham, Kathy Sierra, and Bert Bates. Head First Servlets and JSP, 2nd

Edition, United States of America, O'Reilly Media, 2008.

17