บทที่ 1 :: เตรียมความพร้อมของเครื่อง

Download Report

Transcript บทที่ 1 :: เตรียมความพร้อมของเครื่อง

บทที่ 1: การเขียนโปรแกรมบนเว็บ
(Web Programming)
AJ Wathinee dung-onnam
ICT @ RERU
ชื่อวิชา การเขียนโปรแกรมบนเว็บ
คำอธิบำยรำยวิชำ
ความรู ้เบื้องต้นเกี่ยวกับ Internet , WWW, TCP/IP Protocal ,
การออกแบบและพัฒนาที่อยูเ่ ว็บ การเขียนภาษา Script การ
เขียนโปรแกรมฝั่ง Client และการเขียนโปรแกรมฝั่ง Server
ระบบฐานข้อมูลบนอินเตอร์เน็ต การสร้างเว็บไซต์ในการทา
ธุรกรรมอิเล็กทรอนิกส์
สิ่งที่คาดหวัง ว่ านักศึกษาจะได้ รับวันนี ้
1.
ติดตังโปรแกรมและเตรี
้
ยมควำมพร้ อมของเครื่ อง
สร้ ำงไฟล์แรก และแสดงผลได้ (แสดงผลภำษำไทยและภำษำอังกฤษ)
3. แสดงผลโปรแกรมออกทำงหน้ ำจอได้
4. ทดสอบสร้ ำงตัวแปร ชนิดต่ำง ๆ และแสดงผล
5. ทดสอบสร้ ำงตัวแปรตัวเลขและ ทดสอบคำนวณ แสดงผลออกหน้ ำจอ
2.
เตรียมความพร้ อมของเครื่อง
J2SE
App server (Apache Tomcat)
Tool ในการพัฒนา (Editplus) และ Dreamweaver
รู้จักกับ 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.
request
jsp
Web
Browser
Web Server
response
มี Servlet ที่
คอมไพล์
แล้วหรื อยัง ?
มีแล้ว
JSP Container
ยัง
แปลงไฟล์ JSP ไป
เป็ น Servlet
คอมไพล์ Servlet
ประมวลคาร้องขอ จาก Web browser
(Servlet ที่คอมไพล์แล้ว)
โครงสร้ าง และขั้นตอนการทางานของ JSP
http://locahost/hello.
request
jsp
Web
Browser
Web Server
response
มี Servlet ที่
คอมไพล์
แล้วหรื อยัง ?
มีแล้ว
JSP Container
ยัง
แปลงไฟล์ 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
request
Web Server
response
มี Servlet ที่
คอมไพล์
แล้วหรื อยัง ?
มีแล้ว
JSP Container
ยัง
แปลงไฟล์ JSP ไป
เป็ น Servlet
คอมไพล์ Servlet
ประมวลคาร้องขอ จาก Web browser
(Servlet ที่คอมไพล์แล้ว)
executio
n
translatio
n
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\WEBINF\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.jsp
Scriptlet
ทาความรู้ จกั กับ Tag
สัญลักษณ์ <%! %>
 ใช้สาหรับประกาศตัวแปรและเมธอดที่จะใช้ใน JSP (โดยตัวแปรที่ประกาศ
นี้เป็ นตัวแปรและเมธอดของ Class )
 ต้องปิ ดท้ายคาสัง่ ต่าง ๆ ด้วย ; (semicolon) เสมอ
ทาความรู้ จกั กับ Tag
 ไฟล์ Declaration.jsp
เปรียบเทียบการประกาศในTag Scriplet & declaration
 โปรแกรมนับจานวนผูเ้ ข้าชมเว็บเพจ :ไฟล์ Counter1.jsp แบบใช้ Scriptlet
Count จะไม่เพิม่ ขึ้นเนื่องจากการประกาศแบบ Scriptet เป็ นการตัวแปรของ local
Variable
คือเมื่อมีการ request เข้ามา count จะถูกกาหนดค่าเริ่ มต้นใหม่ทุกครั้ง คือ 0 จึงได้ค่า เพิ่ม
เปรียบเทียบการประกาศใน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