บทที่ 4 jsp (java server pages) 4.pdf · 2018-10-09 · บทที่ 4 jsp ... jsp...

18
1 ธีระยุทธ ทองเครือ ภาควิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยขอนแก่น บทที่ 4 JSP (Java Server Pages)

Upload: others

Post on 17-Jan-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: บทที่ 4 JSP (Java Server Pages) 4.pdf · 2018-10-09 · บทที่ 4 JSP ... JSP คือ เทคโนโลยีที่ใช้ในการสร้าง

1

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

ภาควชาวทยาการคอมพวเตอร คณะวทยาศาสตร

มหาวทยาลยขอนแกน

บทท 4

JSP

(Java Server Pages)

Page 2: บทที่ 4 JSP (Java Server Pages) 4.pdf · 2018-10-09 · บทที่ 4 JSP ... JSP คือ เทคโนโลยีที่ใช้ในการสร้าง

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: บทที่ 4 JSP (Java Server Pages) 4.pdf · 2018-10-09 · บทที่ 4 JSP ... JSP คือ เทคโนโลยีที่ใช้ในการสร้าง

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

3

<html>

<body>

<% int count = 0; %>

The page count is now:

<%

out.println(count++);

%>

</body>

</html>

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

Page 4: บทที่ 4 JSP (Java Server Pages) 4.pdf · 2018-10-09 · บทที่ 4 JSP ... JSP คือ เทคโนโลยีที่ใช้ในการสร้าง

ตวอยาง

4

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

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

Page 5: บทที่ 4 JSP (Java Server Pages) 4.pdf · 2018-10-09 · บทที่ 4 JSP ... JSP คือ เทคโนโลยีที่ใช้ในการสร้าง

แทก 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: บทที่ 4 JSP (Java Server Pages) 4.pdf · 2018-10-09 · บทที่ 4 JSP ... JSP คือ เทคโนโลยีที่ใช้ในการสร้าง

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

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

6

Page 7: บทที่ 4 JSP (Java Server Pages) 4.pdf · 2018-10-09 · บทที่ 4 JSP ... JSP คือ เทคโนโลยีที่ใช้ในการสร้าง

ตวอยาง

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: บทที่ 4 JSP (Java Server Pages) 4.pdf · 2018-10-09 · บทที่ 4 JSP ... JSP คือ เทคโนโลยีที่ใช้ในการสร้าง

ภาษาไทยบน 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: บทที่ 4 JSP (Java Server Pages) 4.pdf · 2018-10-09 · บทที่ 4 JSP ... JSP คือ เทคโนโลยีที่ใช้ในการสร้าง

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

ตวอยาง

9

Page 10: บทที่ 4 JSP (Java Server Pages) 4.pdf · 2018-10-09 · บทที่ 4 JSP ... JSP คือ เทคโนโลยีที่ใช้ในการสร้าง

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

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

10

Page 11: บทที่ 4 JSP (Java Server Pages) 4.pdf · 2018-10-09 · บทที่ 4 JSP ... JSP คือ เทคโนโลยีที่ใช้ในการสร้าง

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

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

11

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

Page 12: บทที่ 4 JSP (Java Server Pages) 4.pdf · 2018-10-09 · บทที่ 4 JSP ... JSP คือ เทคโนโลยีที่ใช้ในการสร้าง

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: บทที่ 4 JSP (Java Server Pages) 4.pdf · 2018-10-09 · บทที่ 4 JSP ... JSP คือ เทคโนโลยีที่ใช้ในการสร้าง

การ 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: บทที่ 4 JSP (Java Server Pages) 4.pdf · 2018-10-09 · บทที่ 4 JSP ... JSP คือ เทคโนโลยีที่ใช้ในการสร้าง

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

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

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

14

<%-- JSP Comment --%>

<!-- HTML Comment -->

Page 15: บทที่ 4 JSP (Java Server Pages) 4.pdf · 2018-10-09 · บทที่ 4 JSP ... JSP คือ เทคโนโลยีที่ใช้ในการสร้าง

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

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

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

15

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

Page 16: บทที่ 4 JSP (Java Server Pages) 4.pdf · 2018-10-09 · บทที่ 4 JSP ... JSP คือ เทคโนโลยีที่ใช้ในการสร้าง

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: บทที่ 4 JSP (Java Server Pages) 4.pdf · 2018-10-09 · บทที่ 4 JSP ... JSP คือ เทคโนโลยีที่ใช้ในการสร้าง

การสงตอขอมลServlet/JSP สามารถสงตอ object ไปยงไฟล Servlet/JSP อนๆ ได ขนตอนดงน ก าหนดชอ และขอมลทตองการสง

request.setAttribute("ชอ attribute", ตวแปรหรอคาสงตอ); เชนrequest.setAttribute("fullname", "tjung");

ใชค าสงสงตอrequest.getRequestDispatcher("ชอ Servlet/JSP").forward(request,response);

ดงขอมลทสงตอมาใชrequest.getAttribute("ชอ attribute"); เชน

String fullname = (String)request.getAttribute("fullname");

17

Page 18: บทที่ 4 JSP (Java Server Pages) 4.pdf · 2018-10-09 · บทที่ 4 JSP ... JSP คือ เทคโนโลยีที่ใช้ในการสร้าง

การสงตอขอมล

18

@WebServlet("/TestController")public class TestController extends HttpServlet {

protected void doGet(…) {request.setAttribute("fullname", "tjung");request.getRequestDispatcher("next-page.jsp").forward(request,response);

}}

Servlet

JSP (next-page.jsp) <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><html><head><meta charset="utf-8"></head><body><% String fullname = (String)request.getAttribute("fullname"); %><%= fullname %></body></html>

ผลลพธ สงเกตวา URL จะไมเปลยนไปยง next-page.jsp