เรียนรู้คำสั่งพื้นฐานเกี่ยวกับ JSP ครั้งที่ 1

Download Report

Transcript เรียนรู้คำสั่งพื้นฐานเกี่ยวกับ JSP ครั้งที่ 1

[email protected]
บทที่ 2
JSP ตอนที่ 1
รู ้จกั กับ Java Servlet และ JSP
Java Servlet คือโปรแกรม ที่เขียนขึ้นมาเป็ น Class ของภาษาจาวา เพื่อทางานฝั่ง
server ทานองเดียวกับ ASP PHP ซึ่ งรันทาง ฝั่ง Server เช่นกัน
JSP (Java Server Pages) เป็ นเทคโนโลยีที่ใช้ Script ในการพัฒนา Web Application
เพื่อทางานทางฝั่ง Server (server-side script) และส่ งผลลัพธ์มายัง Web browser เป็ นภาษา
HTML
ทั้ง JSP, Java Servlet ล้วนพัฒนาขึ้นโดยบริ ษทั Sun Microsystems เพื่อเอาไว้ใช้
สาหรับสร้าง Web Application ด้วยภาษาจาวา เช่นเดียวกัน
ข้อแตกต่างระหว่าง JSP กับ Java Servlet
JSP เป็ น Script ดังนั้นเวลาพัฒนา web application เราสามารถเขียน tag คาสัง่
ของ jsp แทรกลงไปในบริ เวณที่ตอ้ งการ ภายในไฟล์เอกสาร HTML ได้
ทันที โดยใช้ tag เปิ ด และตามด้วย ซอร์ซโค้ด JSP และปิ ดท้ายด้วย tag ปิ ด
<html>
<body>
<%
out.println(“ Java Server Pages ”);
%>
</body>
</html>
ข้อแตกต่างระหว่าง JSP กับ Java Servlet
Servlet เป็ นโปรแกรม ไม่ใช่ Script
เราต้องนา tag คาสัง่ ของ Html
ทั้งหมดมาเขียนในลักษณะ class
ของภาษา จาวา
import java.io.*;
import java.servlet.*;
import javax.servlet.http.*;
public class hello extends HttpServlet {
public void doGet(HttpServletRequest
request,HttpservletResponse response
throws ServletException, IOException){
response.setContentType("text/html");
PrintWriter out=response.getWriter();
out.println("<html><body>");
out.println(" Java Servlet ");
out.println("</html></body>");
}
}
จาก Java Servlet มาเป็ น JSP
จะเห็นว่า JSP ง่ายกว่า Java Servlet มากแก้ไขสะดวกกว่า แต่ความจริ งแล้ว
JSP ก็คือ Servlet ที่เขียนออกมาในรู ปแบบที่ง่ายขึ้น
ซึ่งในขั้นตอนการทางานจริ ง คอมไพเลอร์ จะแปลง JSP ไปเป็ น Java
Servlet ก่อนจึงจะทางานได้
โครงสร้าง และขั้นตอนการทางานของ JSP
http://locahost/hello.jsp
Web Browser
Web Server
request
JSP Container
response
มี Servlet ที่
คอมไพล์
แล้วหรื อยัง ?
มีแล้ว
ยัง
แปลงไฟล์ JSP ไป
เป็ น Servlet
คอมไพล์ Servlet
ประมวลคาร้องขอ จาก Web browser
(Servlet ที่คอมไพล์แล้ว)
โครงสร้าง และขั้นตอนการทางานของ JSP
http://locahost/hello.jsp
Web Browser
Web Server
request
JSP Container
response
มี Servlet ที่
คอมไพล์
แล้วหรื อยัง ?
มีแล้ว
ยัง
แปลงไฟล์ JSP ไป
เป็ น Servlet
คอมไพล์ Servlet
ประมวลคาร้องขอ จาก Web browser
(Servlet ที่คอมไพล์แล้ว)
ขั้นตอนการทางานของภาษา JSP
1.
2.
3.
4.
5.
ผูใ้ ช้ เปิ ดโปรแกรมเว็บบราวเซอร์ และพิมพ์ URL ลงในช่อง Address ของเว็บราวเซอร์
เพื่อระบุร้องขอ ไฟล์ JSP เช่น http://locahost/hello.jsp จากนั้นกด Enter เครื่ อง
คอมพิวเตอร์ ของผูใ้ ช้กจ็ ะส่ งการร้องขอไฟล์ hello.jsp ไปยัง Wed server
( เรี ยกว่า HTTP request )
Wed server ส่ งต่อการร้องขอของ Client ไปยัง Web container คือ ส่ งการร้องขอไฟล์
ชื่อ hello.jsp ไปยัง Web container
Web container ทาการประมวลผลไฟล์ hello.jsp ตามที่ Client ร้องขอเข้ามา
เมื่อประมวลผลเสร็ จเรี ยบร้อย Web container จะส่ งผลลัพธ์ที่ได้กลับไปยัง Web
server
Web server ส่ งผลลัพธ์ที่ได้กลับคืนไปยัง Client ( เรี ยกว่า HTTP response ) ซึ่ งทาให้
ผูใ้ ช้เห็นผลลัพธ์ ของไฟล์ hello.jsp แสดงออกมาที่เว็บบราวเซอร์ นนั่ เอง
โครงสร้าง และขั้นตอนการทางานของ JSP
จากขั้นตอนการประมวลผลไฟล์ JSP สามารถแบ่งออกได้เป็ น 2 ช่วงหลัก ๆ คือ
 ช่วง translation
 ช่วง execution
โครงสร้าง และขั้นตอนการทางานของ JSP
ช่วง translation
คือช่วงการแปลงเอกสาร JSP (ไฟล์ .jsp) ให้เป็ น Servlet (ไฟล์ .java)
จากนั้นก็จะคอมไพล์ไฟล์ Servlet ให้เป็ นไฟล์ .class

เอกสาร JSP
(.jsp)
Java Servlet
(.java)
Servlet ที่คอมไพล์แล้ว
(.class)
โครงสร้าง และขั้นตอนการทางานของ JSP
ช่วง execution
คือช่วงการนาเอาไฟล์ .class ที่ได้จากการคอมไพล์ มาประมวลผลหรื อ
ทางานตามคาร้องขอ จากไคลเอนต์

โครงสร้าง และขั้นตอนการทางานของ JSP
Web Browser
Web Server
request
translation
JSP Container
response
มี Servlet ที่
คอมไพล์
แล้วหรื อยัง ?
มีแล้ว
ยัง
แปลงไฟล์ JSP ไป
เป็ น Servlet
คอมไพล์ Servlet
ประมวลคาร้องขอ จาก Web browser
(Servlet ที่คอมไพล์แล้ว)
execution
Note
ปกติแล้วช่วง translation จะกินเวลาพอสมควร แต่ช่วงนี้จะไม่เกิดขึ้นทุก
ครั้ง เพราะถ้าไฟล์ JSP ต้นฉบับไม่มีการเปลี่ยนแปลงอะไร เมื่อมีการ้องขอไฟล์
เข้ามาใหม่ ก็จะไม่เกิดช่วง translation ระบบจะเข้าสู่ช่วง execution ทันทีโดยใช้
ไฟล์ .class ที่มีอยูแ่ ล้ว การทางานจึงรวดเร็ วยิง่ ขึ้น
เมื่อมี Client คนเรี ยกเรี ยกไฟล์ .jsp ตัวนั้น ๆ ให้ทางานครั้งแรก และมี
Client คนที่สองและต่อๆไปเรี ยกไฟล์ .jsp ตัวเดิมให้ทางาน กระบวนการ
translation ก็จะไม่เกิดขึ้นอีก ดังนั้นจะมีเฉพาะ Client คนแรกที่รู้สึกว่าใช้
เวลานานในการรอไฟล์ jsp คนต่อๆ ไป จะได้รับผลลัพธ์กลับไปในเวลา
อันรวดเร็ ว เนื่องจากไม่ตอ้ งเสี ยเวลาในขึ้นตอน translation
Note
Client คือ ต้นกาเนิดของ request ที่ถูกส่ งไปยัง Web Server
Web Server คือ ผูจ้ ดั การกับ HTTP request และ HTTP response
Web Container คือ software ที่ทาหน้าที่ประมวลผล JSP โดย web
container ที่เราจะใช้กนั ในบทเรี ยนนี้คือ Apache Tomcat
เตรี ยมเครื่ องให้พร้อมก่อนใช้งาน
ต้องติดตั้ง Software อะไรบ้าง?
 J2SE เป็ นคอมไพเลอร์ ของภาษา Java ที่ตอ้ งใช้คอมไพล์โค้ดของ Jsp ที่
แปลงให้เป็ น servlet แล้ว(คอมไพล์ servlet .java ให้เป็ น .class)
 Tomcat เป็ น webserver ที่สนับสนุนการทางานของ Servlet และ JSP โดย
JSP Container ซึ่งอยูใ่ น Tomcat ทาหน้าที่แปลงไฟล์ .jsp ให้เป็ น .java(
แปลงไฟล์เฉยๆ ไม่ใช่คอมไพล์) ต้องดูด้วยว่า tomcat นั้น ๆ สนับสุนน java Version อะไร
 โปรแกรมIDE (Integrated Development Environment)
ในบทเรี ยนนี้จะใช้ Editplus
J2SE :ติดตั้งและSet Environment Variables ให้เรี ยบร้อย


ในกรอบ System variables คลิกเลือกตัวแปรระบบ Path ในรายการ คลิก
ปุ่ ม
พิมพ์ต่อท้ ายค่ าทีป่ รากฏในช่อง Variable Value ด้วยข้อความ
;C:\Program Files\Java\jdk1.6.0_03\bin แล้วคลิกปุ่ ม
Install Tomcat
Install Tomcat
Install Tomcat
Install Tomcat

เนื่องจากในชัว่ โมงก่อนนักศึกษาบางคนได้ ใช้ port 8080 สาหรับ
phpadmin ไปแล้วดังนั้น port 8080 จึงไม่สามารถใช้ได้อีกให้นกั ศึกษา
เปลี่ยน port ตามต้องการหรื อตามเอกสารนี้เพื่อปกป้ องกันใช้ port ซ้ า
ตั้งชื่อตามต้องการสาหรับเจ้าของระบบ
ในตัวอย่างนี้ต้งั ชื่อ
admin
รหัส 1234
Install Tomcat

เลือกที่อยูท่ ี่ติดตั้ง J2SE
Install Tomcat

ข้อมูล jsp ไฟล์ท้ งั หมดจะเก็บอยู่ ที่อยูน่ ้ ีหรื อถ้าต้องการเปลี่ยนก็ให้เลือก
ที่อยูใ่ หม่ แล้วแต่ผตู ้ ิดตั้ง

หมายเหตุเนื่องจากอยู่ C: ก่อนที่จะ format เครื่ องหรื อลง
windows ใหม่ ต้องจัดเก็บหรื อย้ายข้อมูล ด้วย
Install Tomcat
Start Service of Tomcat
ทดสอบ

Http://localhost:7777
เมื่อต้องการ Stop Service of Tomcat
หรื ออีกวิธี เพื่อ Start / Stop Tomcat

ไปที่ Control Panel\All Control Panel
Items\Administrative Tools เลือก Service
Start service ของ Tomcat

ไปที่ Start>Settings>Control Panel>Administrative Tools>Services

เปลี่ยนสถานะ Apache Tomcat ให้เป็ น Started
ทดสอบ Tomcat
เปิ ด browser แล้วพิมพ์ http://localhost:7777/
 หรื อ http://localhost:7777/index.jsp

ทาความรู้จกั กับโครงสร้างของ Tomcat
Bin:เป็ น binary file เราสามารถ start ,shutdown Tomcat
ผ่าน batch file ที่น้ ีได้
Conf: ประกอบด้วยไฟล์ XML ซึ่งตั้งค่า config ต่าง ๆ ไฟล์ที่
สาคัญคือ server.xml เป็ นไฟล์หลัก(เราสามารถเปลี่ยน port
ที่น้ ีได้)
lib: เก็บ jar file(รวม .class ต่าง ๆ เข้าไว้ดว้ ยกัน)ใช้สาหรับ
การทางานของ tomcat
logs: เก็บ text file เป็ นรายละเอียดการทางานต่าง ๆของ
tomcat (เราเรี ยกว่า log file)
Work : tomcat จะเก็บ .java .class ที่
web container สร้างขึ้นไว้ที่น้ ี
webapps: เราพัฒนา web application ที่น้ ี
Directory Root

หน้าจอจากที่เราเรี ยก http://localhost:7777/index.jsp ถูกเก็บอยูใ่ น
.. \webapps\ROOT\index.jsp
ดังนั้นเราสามารถสร้าง .jsp มาเก็บไว้ใน directory Root นี้ได้
Note:
Server.xml (อยูใ่ ต้ directory cont) เป็ นไฟล์ใช้สาหรับกาหนดค่า config
ของ Tomcat
 web.xml (อยูใ่ ต้ directory webapps) เป็ นไฟล์ที่ใช้สาหรับกาหนดค่า config
ของ Web Application ที่เราพัฒนาขึ้น

สร้าง JSP โปรแกรมแรก

สร้างไฟล์ jsp เก็บไว้ที่ ..\webapps\Root ชื่อ MyFirstJSP.jsp
<html>
<body>
<%
out.println(“ My First JSP ”);
%>
</body>
</html>
สร้าง JSP โปรแกรมแรก

เรี ยก browser พิมพ์ http://locallhost:7777/MyFirstJSP.jsp
(สังเกตชื่ อไฟล์ ต้ องพิมพ์ ตัวพิมพ์ ใหญ่ ตัวพิมพ์ เล็กให้ ถกู ต้ อง)
สร้าง Folder ใหม่เพื่อเก็บข้อมูล jsp ทั้งหมด
สร้าง Web application ขึ้นใช้งานเอง
1. ไปที่ C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps
แล้วสร้าง directory ชื่อ mywebapps
สร้าง Web application ขึ้นใช้งานเอง

สร้าง Directory “WEB-INF” ขั้นใน C:\Program Files\Apache Software
Foundation\Tomcat 6.0\webapps\mywebapps

Copy ไฟล์ web.xml จาก C:\Program Files\Apache Software
Foundation\Tomcat 6.0\webapps\ROOT\WEB-INF\web.xml
มาไว้ที่ C:\Program Files\Apache Software Foundation\Tomcat
6.0\webapps\mywebapps\WEB-INF\
** web.xml : Deployment Descriptor หรื อ DD
ทดสอบ

สร้างไฟล์ TestTomcat.jsp ไว้ที่ C:\Program Files\Apache Software
Foundation\Tomcat 6.0\webapps\mywebapps
<html>
<body>
<%
out.println(“ Hi! Tomcat ”);
%>
</body>
</html>
ทดสอบ

เปิ ด browser แล้วพิมพ์
http://localhost:8080/mywebapps/TestTomcat.jsp
จะได้ผลดังภาพ
ทาความรู้จกั กับ Tag ใน JSP
ทาความรู้จกั กับ Tag
expressions สิ่ งต่าง ๆ ที่อยูใ่ น <%= ... %> จะถูกประมวลผล
แล้วแปลงเป็ น String ก่อนการแสดงผลเสมอ
ค่าใน tag นี้ จะถูกส่ งเป็ นพารามิเตอร์ ไปอยูใ่ น out.print(); เพื่อพิมพ์ค่าออก
หน้าจอ web browser
ห้ามใส่ ; ปิ ดท้ายค่าใน tag นี้ เด็ดขาด
โดยการใช้
ทาความรู้จกั กับ Tag

แสดงการทางาน Expression.jsp
ทาความรู้จกั กับ Tag
Directives แบ่งออกเป็ น 3 ส่ วน ส่ วนที่เราใช้ทวั่ ๆ ไปคือ
 page
 include และ
 taglib
ทาความรู้จกั กับ Tag
page directive เป็ นส่ วนที่ปกติเราจะเห็นอยูบ่ นสุ ดของ JSP page ซึ่ง
ใช้ในการกาหนดค่าต่างๆ ที่ เกี่ยวข้องกับ JSP page นั้นๆ (set ค่า Attribute
ต่าง ๆ ของ JSP) หรื อเกี่ยวข้องกับการติดต่อสื่ อสารกับ JSP Container
รู ปแบบ คือ
<%@ page แอตทริ บิวต์=“ค่าที่กาหนดให้แอตทริ บิวต์” %>
ยกตัวอย่างเช่น ถ้าเรา อยากเรี ยกใช้คลาสที่ชื่อ java.util.Date เราก็สามารถที่
จะ import คลาสนี้ได้โดยใช้
** ห้ ามใส่ ; ปิ ดท้ ายค่ าใน tag นีโ้ ดยเด็ดขาด
ทาความรู้จกั กับ Tag

แสดงการทางาน สร้าง Directive.jsp
ทาความรู้จกั กับ Tag
ตัวอย่าง สร้าง Directivepage.jsp (set ค่าให้สามารถใช้ภาษาไทยได้)
ทาความรู้จกั กับ Tag
include directive
เป็ นการแทรกไฟล์อื่นเข้ามาไว้ในไฟล์ JSP ของเรา
รูปแบบ
<%@ include file=“URL ของไฟล์ ” %>
เช่น
<%@ include file=“mywebapps/Header.html” %>
ทาความรู้จกั กับ Tag

แสดงการทางาน include Directives
ทาความรู้จกั กับ Tag
taglib directive
หน้าที่ของ directive ชนิดนี้ บอกให้ JSP Container ให้รู้วา่ ภายใน JSP นี้
จะใช้ Tag ที่สร้างขึ้นมาใหม่ ซึ่งเนื้อหาส่ วนนี้จะไม่กล่าวถึงเพราะมีเนื้อหา
ลึกเกินไป และเราก็ยงั ไม่จาเป็ นต้องสร้าง Tag ขึ้นมาใช้เอง
รูปแบบ
<%@ taglib uri=“MyTags.tld” prefix=“mytag” %>
ทาความรู้จกั กับ Tag
Tag Scriptlet <% %>
 ใช้สาหรับแทรกโค้ดของจาวาลงในไฟล์ JSP
 ต้องปิ ดท้ายคาสัง่ ต่าง ๆ ของจาวาด้วย ; (semicolon) เสมอ
 ตัวแปรต่าง ๆ ที่ประกาศใน Scriptlet นี้ จะเป็ นตัวแปรของเมธอด (local
Variable)
ทาความรู้จกั กับ Tag

แสดงการทางานของ Tag Scriptlet
สร้างไฟล์ Scriptlet.jsp
ทาความรู้จกั กับ Tag
สัญลักษณ์ <%! %>
 ใช้สาหรับประกาศตัวแปรและเมธอดที่จะใช้ใน JSP (โดยตัวแปรที่ประกาศ
นี้เป็ นตัวแปรและเมธอดของ Class )
 ต้องปิ ดท้ายคาสัง่ ต่าง ๆ ด้วย ; (semicolon) เสมอ
ทาความรู้จกั กับ Tag
 ไฟล์ Declaration.jsp
เปรี ยบเทียบการประกาศในTag Scriplet & declaration
 โปรแกรมนับจานวนผูเ้ ข้าชมเว็บเพจ :ไฟล์ Counter1.jsp แบบใช้ Scriptlet
Count จะไม่เพิม่ ขึ้นเนื่องจากการประกาศแบบ Scriptet เป็ นการตัวแปรของ local Variable
คือเมื่อมีการ request เข้ามา count จะถูกกาหนดค่าเริ่ มต้นใหม่ทุกครั้ง คือ 0 จึงได้ค่า เพิ่มขึ้นมาเป็ น 1
ตลอด
เปรี ยบเทียบการประกาศในTag Scriplet & declaration
 โปรแกรมนับจานวนผูเ้ ข้าชมเว็บเพจ :ไฟล์ Counter.jsp แบบใช้ declaration
Count จะเพิ่มขึ้นเนื่องจากการประกาศแบบ declaration
เป็ นการประกาศตัวแปรของ Class (instance variable)
คือเมื่อมีการ request เข้ามา count จะถูกกาหนดค่าเริ่ มต้นเพียงครั้งเดียวเท่านั้นเฉพาะตอนที่ class ถูกโหลด
ครั้งแรกจากนั้นค่าจะเพิ่มขึ้นตามที่เรากาหนดในที่น้ ีคือเพิ่มขึ้นทีละ 1
Comment ในภาษา JSP
คือส่ วนที่เป็ นหมายเหตุของโปรแกรม หรื อใส่ ขอ้ ความอธิบายกากับลงในโค๊ด
ซึ่งส่ วนนี้จะไม่ถูกแปลผล
สั ญลักษณ์ Comment
<!-- -->
<%-- --%>
//
/* */
ความหมาย
Comment ของภาษา Html ใช้ได้กบั ทุกส่ วนของโปรแกรม
Comment ของภาษา JSP ใช้ได้กบั ทุกส่ วนของโปรแกรม
Comment ของภาษา Java ใช้ได้กบั ส่ วนของ scriptlet และ
declaration เท่านั้น (Comment บรรทัดเดียว)
Comment ของภาษา Java ใช้ได้กบั ส่ วนของ scriptlet และ
declaration เท่านั้น (Comment หลายบรรทัด)
JAVA Doc โดยเปิ ดผ่านเว็บ

http://docs.oracle.com/javase/7/docs/api/
วิธี Download และติดตั้งเอกสารประกอบการเขียน
โปรแกรม (Servlet)

http://java.sun.com/products/servlet/reference/api/index.html
วิธี Download และติดตั้งเอกสารประกอบการเขียน
โปรแกรม
วิธีติดตั้งเอกสารประกอบการเขียนโปรแกรม
1. สร้าง Driectory “servlet doc”
2. นา servlet-2_3-fcs-docs.zip ที่ได้มาไว้ที่น้ ีแล้วขยายไฟล์
3. วิธีการเรี ยกใช้ เปิ ดไฟล์ Index.html
เปิ ดดูเอกสารประกอบแบบออน์ไลน์ (JSP)

http://tomcat.apache.org/tomcat-5.5-doc/servletapi/
Implicit Objects
จากเนื้อหาก่อนหน้า จะเห็นว่าเมื่อไรก็ตามที่เราต้องการเรี ยกใช้คลาสบาง
คลาส เราจะต้องทาการ import โดยใช้ page direction แล้วทาการเรี ยกใน
Scriptlet ยกตัวอย่างเช่น
Implicit Objects
Implicit Object ปกติแล้วก่อนใช้งาน Object ใด ๆ ในสคริ ปต์ JSP จะต้อง
ประกาศว่า Object นั้นสร้างมาจาก Class ใด จึงจะสามารถเรี ยกใช้งาน Object
นั้น ได้ แต่มี Object บางอย่างที่มีโอกาสใช้งานบ่อย ๆ ดังนั้น JSP Container จึง
ช่วยอานวยความสะดวกโดยการสร้าง Object เหล่านั้นขึ้นมาโดยอัตโนมัติ ทา
ให้เราสามารถเรี ยกใช้งานได้ทนั ทีโดยไม่ตอ้ งประกาศก่อนใช้งาน
Implicit Objects มีท้ งั หมด 9 ตัว
ขอบเขต ( scope ) ของ Implicit Object
ขอบเขตของ Implicit Object แบ่งออกเป็ น 4 ขอบเขต คือ
1. Application scope
2. Page scope
3. Request scope
4.Session scope
ขอบเขต ( scope ) ของ Implicit Object
1.Application scope
 ออบเจ็ค application เป็ น implicit object ที่อยูใ่ น scope นี้
 เป็ นขอบเขตภายใน web application เดียว กัน หมายถึง ออบเจ็คที่อยูใ่ น
ขอบเขตนี้จะถูกใช้งานได้ เฉพาะภายใน web application เดียวกันเท่านั้น
ขอบเขตของ application scope จะสิ้ นสุ ดลงเมื่อ web server ถูกปิ ดการ
ทางานลง ( tomcat ถูก shutdown ไป )
ขอบเขต ( scope ) ของ Implicit Object
2. Page scope
 ออบเจ็ค response, pageContext, out,config, page, exception เป็ น
implicit objects ที่อยูใ่ นขอบ เขตนี้
 เป็ นขอบเขต ภายใน page เดียวกัน ออบเจ็คที่อยูใ่ นขอบเขตนี้ จะถูกใช้งาน
ได้เฉพาะภายใน page ของมันเอง เท่านั้น จะนาไปใช้งานนอก page ที่
กาหนดมันขึ้นไม่ได้
ขอบเขต ( scope ) ของ Implicit Object
3. Request scope
 ออบเจ็ค request เป็ น implicit object ที่อยูใ่ นขอบเขตนี้
 เป็ นขอบเขตภายใน request หนึ่ งๆ ออบเจ็คที่ อยูใ่ นขอบเขตนี้ จะถูกใช้
งานได้เฉพาะใน request หนึ่งๆ เท่านั้น โดยเมื่อ request นั้นได้รับ
response กลับมา แล้วออบเจ็คจะใช้งานไม่ได้อีกต่อไป
ขอบเขต ( scope ) ของ Implicit Object
4. Session scope
 ออบเจ็ค session เป็ น implicit object ที่อยูใ่ นขอบเขตนี้
 เป็ นขอบเขตข้อมูลภายใน session หนึ่ ง ๆ ออบเจ็ค ที่อยู่ ในขอบเขตนี้ จะ
ใช้งานได้เฉพาะ ภายใน session หนึ่ง ๆ เท่านั้นหาก session ถูกปิ ดลงก็จะ
ใช้งานออบเจ็ค ไม่ได้อีกต่อไป
Session คืออะไร
การทางานของ Protocol Http จะเกี่ยวข้องกับ Session เพราะเมื่อผูใ้ ช้เปิ ด
browser เพื่อใช้งานครั้งแรกก็ถือว่า ผูใ้ ช้คนนั้นอยูใ่ นการทางานของ Session
แล้ว
ดังนั้น Session คือช่วงระยะเวลาที่ผใู ้ ช้กาลังกระทากิจกรรมหนึ่ง ๆ
ภายในเว็บไซต์ใด เว็บไซต์หนึ่งเริ่ มต้นตั้งแต่ login เข้าสู่ระบบ จนกระทัง่
logout ออกระบบ
Note
เราสามารถเรี ยกใช้งาน implicit object ได้จากทุกส่ วนของโปรแกรม
ภาษา JSP ยกเว้นในส่ วนของ Tag declaration <%! %> ส่ วนเดียวเท่านั้นที่
ไม่สามารถเรี ยกใช้งาน implicit object ได้ดงั นั้นตรงนี้ตอ้ งระมัดระวังในการใช้
งานด้วย
Implicit Object แต่ละตัวมีหน้าที่อะไรบ้าง
ยกตัวอย่ าง บาง Object
Implicit Object แต่ละตัวมีหน้าที่อะไรบ้าง

สร้างไฟล์ชื่อ ObjApp1.jsp
Implicit Object แต่ละตัวมีหน้าที่อะไรบ้าง

สร้างไฟล์ชื่อ ObjApp2.jsp
Implicit Object แต่ละตัวมีหน้าที่อะไรบ้าง

แสดงข้อมูลจาก ObjApp1.jsp

แสดงข้อมูลจาก ObjApp2.jsp
ตัวอย่าง Object request javax.servlet.ServletRequest
เป็ น Object ที่ใช้
สาหรับเก็บข้อมูล
ต่าง ๆ เกี่ยวกับคา
ร้องขอที่ส่งมาจาก
ฝั่ง Client
Implicit Object : Page scope
Page scope
 ออบเจ็ค response, pageContext, out,config, page, exception เป็ น
implicit objects ที่อยูใ่ นขอบ เขตนี้
Implicit Objects
1)
2)
3)
4)
request คือ object ที่เป็ น instance ของ ServletRequest ซึ่ งถ้าใช้ใน Http ก็จะเป็ น
HttpServletRequest. เราสามารถใช้ request ในการอ่านค่า parameters ต่าง ๆ ที่ส่ง
มาโดย GET หรื อ POST จาก client โดยการใช้ request.getParameter(...) หรื ออ่าน
ค่าอื่น ๆ เช่น Header โดยใช้ API ที่มีอยูใ่ น HttpServletRequest
response คือ ServletResponse ที่ใช้ในการส่ งค่าต่าง ๆ กลับไปที่ client โดยผ่านทาง
OutputStream ซึ่ งอยูใ่ นรู ปของ PrintWriter หรื อ JspWriter
pageContext คือ object ที่เก็บฟังค์ชนั่ ต่าง ๆ ที่ใช้ในการเรี ยก features ของ JSP
Container ซึ่ งจะไม่เหมือนกันในแต่ละตัว มาเชื่อมกับ JSP ไฟล์ เพื่อเพิ่ม
ประสิ ทธิภาพในการรัน
session คือ HttpSession ของ client ที่ส่ง request มา ซึ่ งจริ ง ๆ แล้วเราสามารถเรี ยก
object นี้มาโดยผ่านทาง request.getSession(...) ก็ได้
Implicit Objects
5) applicaion คือ ServletContext ที่เก็บค่าต่าง ๆ ของ environment ที่ไฟล์
JSP นี้อยู่
6) out คือ PrintWriter หรื อ JspWriter (Buffered version of PrintWriter) ที่ใช้
ในการพิมพ์ text output ออกไปยัง client โดยผ่านทาง response อีกทีหนึ่ง
7) config คือ ServletConfig ที่เก็บค่า setting ต่าง ๆ สาหรับไฟล์ JSP
page คือ this ที่ใช้แทนตัวของไฟล์ JSP เอง (ไม่ค่อยมีประโยชน์เท่าไหร่
นัก)
8) exception คือ Throwable interface ที่ใช้ส่งค่า error ต่าง ๆ ไปยัง error
page
จบเนื้อหาใน JSP ตอนที่ 1