The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by ปิติ เกตุ, 2021-04-05 10:09:24

webprogramming-eclipse

webprogramming-eclipse

1

Hand-on
Exercises

การเขียนโปรแกรมเว็บ

Java Servlet / JSP

โดยใช้

Eclipse and TomCat

Assoc.Prof.Dr.Thanachart Numnonda

Software Park Thailand

and
Asst Prof.Thanisa Kruawaisayawan

King Mongkut's Institute of Technology Ladkrabang

April 2011

การเขียนโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

2

สารบญั

Exercise 1 การสรา้ งโปรเจค็ Web Application และไฟล์ HTML..........................................................................5
1.สร้าง Application Server ................................................................................................................. 5
2.สรา้ งโปรเจ็ค Web Application............................................................................................................. 5
3.พฒั นาโปรแกรม addCustomer.html ...................................................................................................... 5
1.1 สรา้ ง Application Server............................................................................................................... 5
1.2 การสรา้ ง Web Application Project.................................................................................................. 6
1.3 การพฒั นาโปรแกรม addCustomer.html................................................................................................ 8
1.4 การทดสอบโปรแกรม...........................................................................................................................12

Exercise 2 การเขียนโปรแกรม Java Servlet เพื่ออา่ นค่าพารามิเตอร์..........................................................................14
2.1 การพฒั นาโปรแกรม CustomerServlet.java......................................................................................... 14
2.1.1 การอา่ นคา่ พารามเิ ตอร์จาก addCustomer.html ............................................................................... 14
2.1.2 การแสดงรายละเอียดของค่าต่างๆ.......................................................................................................15
2.2 ขั้นตอนการพฒั นาโปรแกรม CustomerServlet.java ................................................................................16
2.3 การทดสอบโปรแกรม...........................................................................................................................18
2.4 การปรบั ปรุงโปรแกรมเพือ่ ให้เรยี กไฟล์ addCustomer.html เม่อื เรม่ิ ตน้ และ ให้แสดงผลภาษาไทยถูกตอ้ ง............................20

Exercise 3 โปรแกรมเว็บสำหรับการทำโพล......................................................................................................... 23
3.1 โปรแกรม vote.html....................................................................................................................... 23
3.2 การพัฒนาโปรแกรม VoteServlet.java................................................................................................. 23
3.2.1 กำหนดตวั แปร counter และ lang ............................................................................................... 24
3.2.2 อ่านคา่ พารามิเตอร์ต่างๆทส่ี ง่ มาจาก vote.html และทำการประมวลผล............................................................ 24
3.2.3 การแสดงผลการโหวต...................................................................................................................24
3.3 ขน้ั ตอนการพัฒนาโปรเจ็ค Voter ............................................................................................................ 25
3.4 การปรับปรงุ โปรแกรม VoteServlet.java............................................................................................... 30
3.4.1 กำหนดตวั แปร voters................................................................................................................30
3.4.2 การอา่ นหมายเลขไอพีของผ้ใู ช.้ ......................................................................................................... 30

Exercise 4 การเช่อื มต่อกบั MySQL Database............................................................................................. 32
4.1 การจดั การ Table
เปิดโปรแกรม MySQL Workbench....................................................................................................... 32
4.2 การสรา้ งตาราง books....................................................................................................................... 33
4.3 การใชค้ ำสง่ั SQL ใน MySQL WorkBench........................................................................................35

Exercise 5 การพัฒนาโปรแกรมเวบ็ เพ่อื ตดิ ตอ่ กับฐานขอ้ มูล........................................................................................ 37
5.1 การ Config Apache Tomcat ใหส้ ามารถใช้งาน JDBC Driver...............................................................37
5.2 การสรา้ ง Web Application Project................................................................................................ 38
5.3 การพัฒนาโปรแกรม addBook.html.....................................................................................................38
5.4 การพัฒนาโปรแกรม thankyou.html.................................................................................................... 40
5.5 การพฒั นาโปรแกรม AddBookServlet.java......................................................................................... 40
5.5.1 การอา่ นค่าพารามิเตอรจ์ าก addBook.html ......................................................................................40
5.5.2 การเช่อื มตอ่ กบั ฐานขอ้ มูล...............................................................................................................41
5.5.3 เพมิ่ รายชอื่ หนงั สือใหมล่ งในฐานข้อมลู ................................................................................................ 43
5.5.4 การเรยี กเวบ็ เพจ thankyou.html ................................................................................................ 43
5.6 ขน้ั ตอนการพฒั นาโปรแกรม AddBookServlet.java ................................................................................44
5.7 ทดสอบโปรแกรม...............................................................................................................................46

Exercise 6 โปรแกรมเวบ็ เพ่อื สาธิตขอบเขตของออปเจ็ค............................................................................................ 48
6.1 การพัฒนาโปรแกรมเพือ่ สาธติ ขอบเขตของ Object แบบ Request ..................................................................... 48
6.1.1 ขน้ั ตอนการพฒั นาโปรแกรมเพอ่ื สาธติ ขอบเขตของ Object แบบ Request .....................................................50
6.1.2 ขั้นตอนการทดสอบโปรแกรมเพ่ือสาธิตขอบเขตของ Object แบบ Request.................................................... 51
6.2 การพฒั นาโปรแกรมเพอื่ สาธิตขอบเขตของ Object แบบ Session ......................................................................52
6.2.1 ขั้นตอนการพฒั นาโปรแกรมเพ่ือสาธติ ขอบเขตของ Object แบบ Session .....................................................54

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

3

6.2.2 ข้ันตอนการทดสอบโปรแกรมเพอื่ สาธิตขอบเขตของ Object แบบ Session ....................................................54
6.3 การพฒั นาโปรแกรมเพ่อื สาธิตขอบเขตของ Object แบบ Application................................................................ 55

6.3.1 ข้ันตอนการพฒั นาโปรแกรมเพอื่ สาธติ ขอบเขตของ Application................................................................. 57
6.3.2 ขั้นตอนการทดสอบโปรแกรมเพื่อสาธติ ขอบเขตของ Object แบบ Application.............................................. 57
Exercise 7 การพฒั นา WebBase DB โดยคลาสประเภท Web Listener............................................................... 58
7.1 การพฒั นาโปรแกรม Init.java.............................................................................................................. 58
7.2 การปรบั ปรงุ โปรแกรม AddBookServlet.java ......................................................................................61
7.3 ทดสอบโปรแกรม...............................................................................................................................63
Exercise 8 การพฒั นาโปรแกรม Servlet Filter ...............................................................................................64
8.1 การพัฒนาโปรแกรม Servlet Filter.......................................................................................................64
8.2 การเขียนหนา้ Login......................................................................................................................... 65
8.3 การเขียน Servlet Filter.................................................................................................................. 67
8.4 การเขียนโปรแกรม ShowServlet ........................................................................................................70
8.5 ขั้นตอนการทดสอบโปรแกรม ..................................................................................................................72
Exercise 9 การเขยี นโปรแกรม JSP เพอื่ แสดงผลลพั ธ.์ ............................................................................................73
9.1 การพัฒนาโปรแกรม hello.jsp............................................................................................................. 73
9.2 การพัฒนาโปรแกรม viewBook.jsp.....................................................................................................74
9.2.1 การกำหนด Tag Library.......................................................................................................... 74
9.2.2 การกำหนด Datasource........................................................................................................... 74
9.2.3 การใชค้ ำสงั่ c:forEach เพอ่ื แสดงผล .............................................................................................. 75
Exercise 10 การพัฒนาโปรแกรมเวบ็ Online Book Store.................................................................................77
10.1 การพฒั นาโปรแกรม selectBooks.jsp.................................................................................................77
10.2 การพฒั นาโปรแกรม Book.java......................................................................................................... 81
10.3 การพฒั นาโปรแกรม Cart.java........................................................................................................... 84
10.4 การพัฒนาโปรแกรม ProcessSelection.java.......................................................................................85
10.5 การพฒั นาโปรแกรม Init.java ........................................................................................................... 87
10.6 การพัฒนาโปรแกรม viewCart.jsp..................................................................................................... 88
10.7 ขน้ั ตอนการทดสอบโปรแกรม ................................................................................................................89
Exercise 11 การสรา้ ง Custom Tags สำหรบั โปรแกรม JSP............................................................................... 90
11.1 การพัฒนาโปรแกรม hello.jsp............................................................................................................ 90
11.2 การพฒั นาโปรแกรม helloTag.jsp...................................................................................................... 92
11.2.1 สร้างไฟล์ Java ClassTag Handler.........................................................................................93
11.2.2 สร้าง Tag Library Descriptor............................................................................................. 95
11.2.3 เขยี นโปรแกรม helloTag.jsp.................................................................................................... 97
11.3 การพัฒนาโปรแกรม helloJSTL.jsp................................................................................................... 98
11.4 การพฒั นาโปรแกรม helloTagFile.jsp................................................................................................ 99
11.4.1 สร้าง Tag File.....................................................................................................................99
11.4.2 เขียนโปรแกรม helloTagFile.jsp............................................................................................101
Exercise 12 การพัฒนาโปรแกรมเวบ็ โดยใช้ Strut Framework ..........................................................................102
12.1 การสร้างโปรเจค็ StrutsDBApp ในรูปแบบ Struts Frameworks...........................................................103
12.2 การพฒั นาโปรแกรม addBook.jsp................................................................................................... 104
12.3 การพัฒนาโปรแกรม BookFormBean.java และ AddBookAction......................................................106
12.4 การพฒั นาโปรแกรม AddBookAction.java......................................................................................109
12.5 การพัฒนาโปรแกรม Init.java และ Thankyou.html [View]................................................................ 111
12.6 การพฒั นาไฟล์ struts-config.xml [Controller].............................................................................. 111
12.7 การทดสอบโปรแกรม.......................................................................................................................112
Exercise 13 การพฒั นาโปรแกรมเว็บโดยใช้ JSF Framework.............................................................................114
13.1 สรา้ งโปรเจค็ JSFDBApp............................................................................................................. 114
13.2 การพฒั นาโปรแกรม JSF Managed Bean.........................................................................................116
13.3 สรา้ งหนา้ จอรับ Input โดยสร้าง addBook.jsp และ พัฒนาส่วนตรวจสอบ(Validation ขอ้ มูล).............................118
13.4 สรา้ ง thankyou.html, error.html.............................................................................................. 119

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

4

13.5 การกำหนด Page Navigation...................................................................................................... 119
13.6 การทดสอบโปรแกรม.......................................................................................................................122
Exercise 14 การ Authentication โดยใช้ Tomcat .....................................................................................123
14.1 สรา้ ง Web Application Project................................................................................................ 123
14.2 เพิ่ม User ของ Tomcat Web Server........................................................................................... 123
14.3 การ Config ไฟล์ web.xml ของ Web Application ท่ตี ้องการใช้ Tomcat user .....................................124
14.4 การทดสอบโปรแกรมแบบ Basic Authenticate...................................................................................126
14.5 การปรับปรุงโปรแกรมเพ่อื ให้ใช้ Login Form........................................................................................ 127
14.6 การทดสอบโปรแกรม แบบ Form Authenticate.................................................................................. 128
14.7 การปรบั ปรงุ โปรแกรม เพื่อใช้ Authenticate โดยอา่ นจาก Database MySQL.............................................. 128
14.8 การทดสอบโปรแกรม แบบ Database Authenticate............................................................................ 129

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

5

Exercise 1 การสร้างโปรเจค็ Web Application และไฟล์ HTML

แบบฝกึ หดั น้จี ะเป็นการสรา้ งโปรเจค็ Web Application และพฒั นาหน้าเว็บเพจเพื่อใหผ้ ใู้ ชป้ อ้ นขอ้ มลู ของ
ลูกค้า โดยพฒั นาด้วยภาษา HTML ซึ่งจะทำหนา้ เป็นส่วนอินพตุ ของโปรแกรมเพ่อื ใหผ้ ู้ใช้ปอ้ นขอ้ มลู ผา่ น Web

Browser

ขั้นตอนในการพฒั นาโปรแกรม
1. สรา้ ง Application Server
2. สรา้ งโปรเจ็ค Web Application
3. พฒั นาโปรแกรม addCustomer.html

1.1 สร้าง Application Server
สร้างเพ่อื ให้ Eclipse รูว้ า่ จะนำ code ที่compile แล้ว ไป Deploy ลง Application Server ท่ีเป็น Tomcat
เลือกที่ TAB Servers คลกิ ขวาภายใน Window แลว้ เลือก New → Server - เลอื กชือ่ Apache → Tomcat
v6.0 Server และ Browse ไปยัง folder Tomcat ทตี่ ดิ ตัง้ ไว้

รูปที่ 1.1 การ Config Eclipse เพื่อให้รู้จัก TOMCAT Application Server

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

6

1.2 การสร้าง Web Application Project

สร้างโปรแกรม Web-Base Application โดยการสร้าง Project ใหม่ มีขัน้ ตอนดังน้ี
1. เลือกเมนู File → New → Project

เลือกรปู Folder ชอ่ื Web และเลอื ก Dynamic Web Project ดังรูปท่ี 1.2

รปู ท่ี 1.1 การสรา้ งโปรเจค็ Web Application

2. ใหก้ ำหนด Project Name = WebApp
สว่ นการเก็บ File Eclipse จะใช้ Directory ทถี่ ามเมือ่ คร้ังเปดิ ขึ้นมาเป็น Default
แต่ ถ้าตอ้ งการระบุ กส็ ามารถคลกิ เครอ่ื งหมายออก (Uncheck) แล้วทำการระบุ Directory ใหมไ่ ด้
จากน้นั กด ปุ่ม Next ดังรูปที่ 1.2

การเขียนโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

7

รูปท่ี 1.2 การกำหนดช่ือ Project

3. แสดง Folder ทเ่ี กบ็ source code และ Output folder (ทีเ่ ก็บ Class file)
คอื [directory ท่ใี สก่ อ่ นรัน Eclipse]\src\ และ [directory ทใ่ี ส่กอ่ นรัน Eclipse]\build\classes\
ดังรปู ท่ี 1.3 จากนน้ั กด ปุ่ม Next

รปู ที่ 1.3 แสดงท่เี กบ็ source code และ Output directory

การเขียนโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

8

4. แสดง Context root และ Content directory ดงั รปู ท่ี 1.4 กด Finish

รูปที่ 1.4 แสดงชอ่ื Context root และ Content directory

1.3 การพฒั นาโปรแกรม addCustomer.html

โปรแกรม addCustomer.html เปน็ เวบ็ เพจที่ใชแ้ สดงฟอรม์ สำหรับปอ้ นข้อมลู ลูกค้า
แลว้ นำไปบนั ทกึ ลงฐานข้อมูล customers โดยมรี ูปแบบหนา้ จอ HTML ท่ตี อ้ งสรา้ ง ดงั รปู ท่ี 1.5
(สว่ นของโปรแกรมจะสรา้ งในแบบฝึกหัดถดั ไป)

รปู ท่ี 1.5 หนา้ เวบ็ เพจ addCustomer.html

ขั้นตอนการพัฒนาโปรแกรม addCustomer.html

การเขียนโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

9

1. เลือกหนา้ ตา่ ง Project แล้วคล๊ิกขวาท่โี หนด WebApp เลือก New → HTML File ดังรูป 1.7

รูปท่ี 1.6 การ new File HTML
2. กำหนด HTML File Name: เปน็ addCustomer แล้วกด Finish ดังรปู 1.8

รปู ท่ี 1.7 การสร้างและตงั้ ช่ือ File HTML

การเขียนโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

10

3. เขียน source code ทำได้ 2 รูปแบบคือ
รูปแบบที่ 1 เขยี นตาม Listing ท่ี 1.1

Listing ท่ี 1.1 โปรแกรม addCustomer.html

<html><head><title> Add Customer</title></head>
<body><H1> Add a new customer profile</H1>
<form action="addCustomer.do" method="POST">

Customer ID : <input name="id" /> <br>
Name: <input name="name" /> <br>
Address: <textarea name="addr" rows="4" cols="20"></textarea> <br>
Mobile: <input name="mobile" size="9" /> <br>
Fax: <input name="fax" size="9" /> <br>
E-mail: <input name="email" size="25" /> <br><br>
<input type="submit" value="Add" />
</form>
</body>
</html>

รปู แบบที่ 2 ให้เขียนหน้าจอได้ง่ายขึ้นสามารถทีจ่ ะลาก Icon ประเภท HTML Forms
ท่ีอยใู่ นหนา้ ตา่ ง Palette มาใสท่ ่ีหน้าจอ Design ไดโ้ ดยไม่ต้องเขียน HTML ดังนี้

- ปดิ หน้าจอ HTML เดมิ
- เลือกหนา้ ต่าง Project แล้วคลก๊ิ ขวาที่ File addCustomer.html
- เลอื ก Open With และเลอื กท่ี Web Page Editor ดังรปู 1.9

รปู ที่ 1.8 การเลอื กเปิด HTML กบั Editor ท่ีเป็น Design view

การเขียนโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

11

- คลิกเลือกพ้ืนท่ีวา่ งสว่ นบนของหน้าจอ เลอื ก Show และ Palette

รูปท่ี 1.9 การเรยี กใช้ HTML Forms Icon ใน Palette Tools

- จะได้ Tab ช่ือ Palette อยทู่ ่ีหนา้ จอดา้ นล่าง คลิกท่ี HTML 4.0 จะมี Icons ใหเ้ ลอื ก
สามารถที่จะ Drag & Drop ข้นึ ไปวางด้านบนสดุ (ลำดับที่3 ดังรูป 1.11)
และปรับค่า Attribute ของ Object นั้นๆโดย เลอื กท่ี Tab Properties(Tabถดั ไปทางขวา) ได้

รปู ท่ี 1.10 การ Drag and Drop Forms Icon ไปที่หนา้ Design
1.4 การทดสอบโปรแกรม

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

12

1. Deploy Web Project สู่ Web Application Server
โดยไปที่ Tab Server แลว้ Click ขวาที่ ชอ่ื Tomcat v6.0 เลอื ก Add and Remove

รปู ที่ 1.11 การ Drag and Drop Forms Icon ไปที่หน้า Design
จากน้นั เลอื ก WebApp แลว้ กดป่มุ Add เพอื่ เพ่มิ เขา้ ไปท่ี Web Application Server และกด Finish

รปู ท่ี 1.12 การ Deploy Project สู่ Web Application Server
2. Run โปรแกรม WebApp โดยคล๊ิกขวาที่ addCustomer.html → Run As → Run on Server

รปู ที่ 1.13 การรัน File ทต่ี ้องการ Test
3. จะมีให้เลอื กวา่ จะให้รนั file น้ที ี่ Server ไหน (กรณเี รานีม้ ี Server เดียว) กด Finish

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

13

รูปที่ 1.14 การเลอื ก Web Application Server ทีจ่ ะใช้รัน
4. จะไดผ้ ลลพั ธ์ดัง รปู ท่ี 1.15

รปู ที่ 1.15 ผลลัพธท์ ่ไี ดจ้ ากการรัน File addCustomer.html

หมายเหตุ สังเกตท่ที า้ ย hostname จะหมายเลขพอรต์ ซึ่งก็คื อ port ที่ Tomcat Server ให้บรกิ ารอยู่
โดย Default จะเป็น 8080 ยกเวน้ ว่าจะกำหนดหมายเลขอืน่

การเขียนโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

14

Exercise 2 การเขยี นโปรแกรม Java Servlet เพอ่ื อา่ นคา่ พารามเิ ตอร์

เนื้อหาที่ต้องศกึ ษาก่อน การสรา้ งโปรเจ็ค Web Application และสรา้ งไฟล์ HTML

แบบฝึกหัดนจี้ ะเป็นการพฒั นาโปรแกรม Java Servlet เพ่อื แสดงรายละเอียดของค่าพารามิเตอรท์ ่ผี ู้ใช้ปอ้ น
เขา้ มาออกทางโปรแกรม Web Browser และแสดงผลการออกออกทาง Web Browser

2.1 การพัฒนาโปรแกรม CustomerServlet.java

โปรแกรม CustomerServlet.java เปน็ โปรแกรมที่ถกู เรียกใช้โดย addCustomer.html เมอ่ื ผู้ใช้กดปุ่ม Add
โปรแกรมนีจ้ ะทำหนา้ ทีน่ ำคา่ พารามิเตอร์ตา่ งๆ ทผี่ ู้ใชป้ ้อนมาแสดงผล โดยมขี ั้นตอนการทำงานดังนี้

1. อา่ นคา่ พารามิเตอร์ตา่ งๆ ท่ีสง่ มาจาก addCustomer.html
2. แสดงรายละเอียดของค่าตา่ งๆ

2.1.1 การอา่ นค่าพารามิเตอรจ์ าก addCustomer.html

เว็บเพจ addCustomer.html จะสง่ ข้อมูลของรายช่อื หนังสอื ใหม่ผา่ นมาทางพารามเิ ตอร์ตา่ งๆ ดังนี้
● id รหสั ของลูกค้า
● name ช่ือลกู ค้า
● addr ท่ีอยู่ลูกค้า
● mobile หมายเลขโทรศพั ท์มอื ถือ
● fax หมายเลข fax
● email ของลกู คา้

พารามิเตอรต์ า่ งๆ เหลา่ นจ้ี ะถูกส่งผ่านโปรโตคอล Http และในโปรแกรมเราสามารถทีจ่ ะอา่ นคา่ พารา-
มิเตอร์เหล่านี้ได้จากออปเจค็ request โดยเรยี กใชเ้ มธอด getParameter( ) ซง่ึ โปรแกรมสว่ นนจี้ ะมคี ำส่ังต่างๆ ดงั น้ี

String id = request.getParameter("id");
String name = request.getParameter("name");
String addr = request.getParameter("addr");
String mobile = request.getParameter("mobile");
String fax = request.getParameter("fax");
String email = request.getParameter("email");

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

15

2.1.2 การแสดงรายละเอยี ดของค่าตา่ งๆ

โปรแกรม Servlet จะสามารถแสดงผลออกทาง Web Browser ไดโ้ ดยการเขยี นโคด้ HTML
ภายในคำสง่ั out.println( ) โดยมคี ำส่ังในเมธอด processRequest( ) ดงั น้ี

protected void processRequest(HttpServletRequest request,
HttpServletResponse response) throws IOException
{

PrintWriter out = response.getWriter();

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

out.println("<html>");
out.println("<head>");
out.println("<title>Customer Information</title>");
out.println("</head>");
out.println("<body>");

String id = request.getParameter("id");
String name = request.getParameter("name");
String addr = request.getParameter("addr");
String mobile = request.getParameter("mobile");
String fax = request.getParameter("fax");
String email = request.getParameter("email");

out.println("<h1> Customer Information </h1>");
out.println("<b>ID: </b>" + id + "<BR>");
out.println("<b>Name: </b>" + name + "<BR>");
out.println("<b>Address: </b>" + addr + "<BR>");
out.println("<b>Mobile: </b>" + mobile + "<BR>");
out.println("<b>Fax: </b>" + fax + "<BR>");
out.println("<b>E-mail: </b>" + email + "<BR>");

out.println("</body>");
out.println("</html>");

out.close();
}

การเขียนโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

16

2.2 ขัน้ ตอนการพัฒนาโปรแกรม CustomerServlet.java
เราสามารถที่จะพัฒนาโปรแกรม CustomerServlet.java ตามขนั้ ตอนดังนี้

1. เลือกหนา้ ต่าง Projects แล้วคลิก๊ ขวาทโี่ หนด WebApp → New → Servlet ดังรูปที่ 2.1

รปู ที่ 2.1 การสร้างไฟลป์ ระเภท Servlet
2. กำหนดชอื่ Class Name = CustomerServlet และ Package = servlet ดังรูปที่ 2.2 และกด Next

รปู ท่ี 2.2 การกำหนดชือ่ Package และ ชอ่ื File Servlet
3. กำหนดค่า URL Pattern(หรือ URL Mappings) เปน็ /addCustomer.do

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

17

โดยคลกิ เลือกชอ่ื CustomerServlet, กดปุ่ม Edit
แล้วเปล่ียน URL Mapping เปน็ addCustomer.do และกด Finish ดังรูปท่ี 2.3

รูปท่ี 2.3 การกำหนด URL Pattern

4. จากนั้นเพิม่ Method ท่ี file CustomerServlet.java
สำหรับรบั action ท่ีSubmit มาจาก Http-Request (HTML Form) ทงั้ ชนดิ POST และ GET
โดยตัง้ ชอ่ื Method ว่า processRequest( )

protected void processRequest(HttpServletRequest
request,HttpServletResponse response)
throws IOException {

// ให้ implement source code ตาม หัวขอ้ 2.1.2

}

การเขียนโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

18

5. Implement Code เพ่ิมใน Method doGet(),doPost()
เพอื่ สง่ ต่อ Http-Request ให้ Method processRequest()

protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

processRequest(request, response); //เพ่ิม Code เข้าไปทนี่ ่ี

}

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

processRequest(request, response); //เพ่มิ Code เขา้ ไปที่นี่

}

2.3 การทดสอบโปรแกรม

1. Run โปรแกรม WebApp โดยคลก๊ิ ขวาที่ addCustomer.html
เลอื ก Run As → Run on Server → กดปุ่ม Finish

รูปท่ี 2.4 การรนั ทดสอบ addCustomer Servlet

การเขียนโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

19

2. ทดลองป้อนขอ้ มลู ดังรูป 2.5

รูปท่ี 2.5 กรอกข้อมลู ทดสอบ Servlet ผ่านหนา้ addCustomer.html
3. โปรแกรมจะแสดงผล ดังรูปท่ี 2.6

รูปท่ี 2.6 ผลลพั ธจ์ ากการเรียกโปรแกรม CustomerServlet

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

20

2.4 การปรับปรงุ โปรแกรมเพื่อให้เรยี กไฟล์ addCustomer.html เม่อื เร่ิมต้น และ ให้แสดงผลภาษาไทยถูกต้อง

เราสามารถท่จี ะปรับปรงุ โปรเจค็ น้ีเพือ่ ให้เรียกไฟล์ addCustomer.html โดยไมต่ อ้ งระบุช่อื file ใน URL
เชน่ เรยี ก http://localhost:8080/WebApp แลว้ ให้รัน Webpage addCustomer.html อัตโนมตั ิ

ทำได้โดยการกำหนดพารามิเตอร์ Welcome Files ให้เป็นไฟล์ดงั กลา่ ว โดยมขี น้ั ตอนดังนี้

1. ในหนา้ ตา่ ง Projects ขยายโหนด WebApp → Deployment Descriptor → Welcome Page
2. Double click ที่ Welcome Pages แลว้ เพิม่ ชอื่ ของหนา้ Page addCustomer.html ลงไปที่บรรทักแรก หลัง Tag

<Welcome-file-list> ดังรปู ที่ 2.7 แลว้ save

รูปที่ 2.7 แกไ้ ข web.xml ให้ addCustomer.html เป็นหนา้ แรกของ Project
3. ทำการทดสอบคอื คล๊กิ ขวาที่ Project WebApp → Run As → Run on Server

รูปท่ี 2.8 ทดสอบรันหน้า addCustomer.html เพือ่ เรียกใช้ CustomerServlet.java

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

21

รปู ที่ 2.9 ทดสอบรนั หนา้ addCustomer.html เพ่อื เรยี กใช้ CustomerServlet.java

จะเห็นวา่ เราไม่ไดร้ ะบชุ ่ือ addCustomer.html ลงไป แตเ่ ม่ือเรียก /WebApp, Application Server
จะทราบทนั ทวี า่ ต้องนำ File ไหนขึน้ มารนั เพือ่ ให้เปน็ Page แรก (Tomcat อา่ นจาก web.xml น่ันเอง)

4. กรณีถา้ Configuration ถูกเปล่ยี นคา่ หรอื มี class ใหมเ่ กดิ ขนึ้ Tomcat จะมกี ารตอบสนองดังนี้
4.1 การเตอื นที่ Status ที่ Tab Server

รปู ท่ี 2.10 Apache Tomcat เตือนให้ Restart Server

4.2 เมือ่ ส่งั รนั Application ดงั ขอ้ 3 จะมี Dialog box ถาม เพื่อให้Confirm วา่ จะ Restart App Server หรือไม่
ถา้ ตอ้ งการให้ source code ที่แก้ไป มีผลทันที ให้เลอื ก Restart Server แลว้ กดปมุ่ OK

รูปที่ 2.11 Apache Tomcat ขอ Confirm การ Restart Server

เมอ่ื ได้ทำขอ้ 4.1 หรือ 4.2 ข้อใดขอ้ หนงึ่ แลว้ ใหด้ ูท่ีสถานะของ Tomcat จะพบว่าเป็น Synchronized

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

22

ก็จะทำให้ source code ทถี่ กู แก้ไขไปนัน้ ถกู ใช้งาน

รูปที่ 2.12 Apache Tomcat ขณะพร้อมใช้งาน

นอกจากนถี้ ้าเราทดลองปอ้ นขอ้ มูลภาษาไทย ลงไปในจะพบว่าโปรแกรม Web Browser บางตวั จะแสดง
ผลลัพธภ์ าษาไทยไมถ่ กู ต้อง เราสามารถแก้ไขได้ โดยการกำหนดให้การเขา้ รหัสของพารามิเตอร์ทสี่ ่งมาเปน็
UTF-8 โดยเพ่มิ คำสงั่ เขา้ ไปที่ Method processRequest โดยต่อจากบรรทัดของ PrintWriter out …. ดงั น้ี

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

การเขียนโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

23

Exercise 3 โปรแกรมเว็บสำหรบั การทำโพล

เนอ้ื หาท่ตี ้องศึกษากอ่ น การเขยี นโปรแกรม Java Servlet เพือ่ อ่านค่าพารามิเตอร์
แบบฝึกหัดน้ีจะเปน็ การพัฒนาโปรแกรม Java Servlet เพือ่ ทำ Poll โดยใหผ้ ูใ้ ชส้ ามารถท่จี ะโหวตเลือกภาษา

คอมพวิ เตอร์ทช่ี อบได้ แลว้ โปรแกรมจะแสดงผลการโหวตทาง Web Browser
3.1 โปรแกรม vote.html

โปรแกรม vote.html เป็นหนา้ เวบ็ ท่ีใหผ้ ใู้ ช้สามารถทจี่ ะทำการโหวตเลอื กภาษาคอมพวิ เตอรไ์ ด้ โดยเม่ือผู้ใช้
กดป่มุ Vote โปรแกรมเวบ็ ก็จะไปทำการเรียก URL ทชี่ อื่ processVote โปรแกรมน้ีมหี น้าเว็บดังรูปที่ 3.1

รปู ที่ 3.1 การแสดงผลของโปรแกรม vote.html
3.2 การพัฒนาโปรแกรม VoteServlet.java

โปรแกรม VoteServlet.java เปน็ โปรแกรมทถี่ กู เรียกใชโ้ ดย vote.html เมื่อผ้ใู ช้กดปมุ่ Vote โปรแกรมนจ้ี ะทำ
หนา้ ท่ีเพื่อนำคา่ ทผี่ ูใ้ ชโ้ หวตมาประมวลผล โดยมีการทำงานคอื

1. กำหนดตวั แปร counter และ lang
2. อา่ นค่าพารามิเตอรต์ ่างๆท่สี ่งมาจาก vote.html และทำการประมวลผล
3. แสดงผลการโหวต

การเขียนโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

24

3.2.1 กำหนดตวั แปร counter และ lang

ตวั แปร count เป็นอะเรย์เพือ่ ที่จะเก็บจำนวนผลโหวตของภาษาคอมพิวเตอร์แตล่ ะภาษา และตวั แปร lang
เปน็ อะเรยข์ อง String เพ่อื ทจี่ ะเกบ็ รายชอ่ื ภาษาคอมพวิ เตอร์ ตัวแปรทั้งสองเปน็ ตัวแปรของออปเจ็คท่ีจะประกาศ
นอกเมธอด (Instance Variable) โดยมคี ำสงั่ ประกาศดงั น้ี

String []lang ={"Java", "C#", "C", "Pascal"};
int []count = new int[4];

3.2.2 อ่านคา่ พารามิเตอร์ตา่ งๆทสี่ ่งมาจาก vote.html และทำการประมวลผล

เว็บเพจ vote.html จะสง่ ข้อมูลของการโหวต ไปกับพารามิเตอร์ท่ชี อ่ื lang โดยจะมีค่าเป็นหมายเล 1-4
ในทน่ี ้จี ะมีคำส่ัง request.getParameter เพอ่ื จะอา่ นค่าทโี่ หวตมา จากนั้นจะทำการแปลงคา่ ซงึ่ เปน็ String ให้เป็นค่า
จำนวนเต็มโดยใช้ Wrapper class จากน้ันจะเปน็ การเพ่มิ จำนวนโหวตในตัวแปร count ตามคา่ index ท่สี อดคล้องกับ
ภาษาที่โหวตมา โดยมคี ำสัง่ ตา่ งๆ ดังนี้

String vote = request.getParameter("lang");
int voteNum = Integer.parseInt(vote) – 1;
count[voteNum]++;

3.2.3 การแสดงผลการโหวต

คำสั่งแสดงผลการโหวตจะเปน็ คำสั่งเพอ่ื แสดงค่าของตัวแปร count โดยมีคำสั่งดังน้ี

for (int i = 0; i < count.length; i++) {
out.println(lang[i] +" = " + count[i] + "<BR>");
}

การเขียนโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

25

3.3 ขัน้ ตอนการพฒั นาโปรเจ็ค Voter
เราสามารถที่จะพัฒนาแบบฝกึ หดั นีท้ ีช่ อื่ โปรเจค็ Voter ตามข้ันตอนดังนี้

1. สร้าง New Project ชนดิ Dynamic Web Application ชอ่ื Voter ดงั รูปท่ี 3.2

รูปท่ี 3.2 การสรา้ งโปรเจ็ค Web Application ชื่อ Voter

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

26

2. กำหนด HTML File Name = vote แลว้ กด Finish

รปู ที่ 3.3 การสรา้ ง HTML Page ช่อื vote.html

3. ในหน้าต่าง Editor เขียน Source code ของ vote.html ดงั Listing ท่ี 3.1

Listing ท่ี 3.1 โปรแกรม vote.html

<html>
<head><title>Web Voting</title></head>
<body>

<form action="processVote" method="POST">
Select a computer language <BR>

<input type="radio" name="lang" value="1" /> Java <br>
<input type="radio" name="lang" value="2" /> C# <br>
<input type="radio" name="lang" value="3" /> C <br>
<input type="radio" name="lang" value="4" /> Pascal <br>
<input type="submit" value="Vote" />
</form>
</body>
</html>

การเขียนโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

27

4. เลอื กหนา้ ต่าง Projects แล้วคลก๊ิ ขวาทโ่ี หนด Voter เลอื กคำสง่ั New > Servlet
กำหนด Package เป็น controller และ Class Name = VoteServlet.java
แลว้ กด Next กำหนด URL Mapping = /processVote แลว้ กด Finish

รปู ที่ 3.4 การสร้าง Java Servlet ช่อื VoteServlet.java และกำหนด URL Pattern (URL Mapping)

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

28

ในหน้าตา่ ง Editor เขยี น Source code ของ VoteServlet.java ดัง Listing ท่ี 3.2
Listing ที 3.2 โปรแกรม VoteServlet.java

package controller;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class VoteServlet extends HttpServlet {

private static final long serialVersionUID = 1L;
String []lang ={"Java", "C#", "C", "Pascal"};
int []count = new int[4];

protected void processRequest(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException {

PrintWriter out = response.getWriter();
response.setContentType("text/html;charset=UTF-8");

String vote = request.getParameter("lang");
int voteNum = Integer.parseInt(vote) - 1;
count[voteNum]++;
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet VoteServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet VoteServlet at " +request.getContextPath() + "</h1>");

for (int i = 0; i < count.length; i++) {
out.println(lang[i] +" = " + count[i] + "<BR>");

}

out.println("</body>");
out.println("</html>");

out.close();
}

protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

processRequest(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

processRequest(request, response);
}
}

การเขียนโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

29

5. ทำการ Deploy Web Project ท่ี Apache Tomcat
ไปท่ี Tab Server ดา้ นลา่ ง คล๊กิ ขวา ที่ Tomcat v6.0 Server แล้วเลือก Add and Remove

รูปท่ี 3.5 การ Deploy Project ไปที่ Apache Tomcat แบบ Manual

6. กด Save แลว้ ทำการ run โปรเจค็ เพ่อื ทดสอบโปรแกรมโดยเรยี ก URL ท่ี
http://localhost:8080/Voter/vote.html โดยจะไดผ้ ลลัพธด์ ังตัวอยา่ งในรูปท่ี3.6

รูปท่ี 3.6 ตัวอย่างผลลพั ธ์ของโปรเจ็ค Voter

การเขียนโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

30

3.4 การปรบั ปรุงโปรแกรม VoteServlet.java

ให้ Set Welcome Page เมอื่ เรยี ก http://localhost:8080/Voter/ ใหไ้ ปท่ี vote.html ทนั ที (ตัวอยา่ ง หน้าท่ี 20)
เพอื่ ความสะดวก ไมต่ อ้ งระบุชื่อ html page ขณะเรยี กใชง้ าน

ขั้นตอนนจี้ ะเปน็ การปรบั ปรงุ โปรแกรม VoteServlet.java เพ่อื ป้องกนั การโหวตซำ้ ท้งั นีจ้ ะไมอ่ นุญาตให้ ผู้ใช้
ที่ใชห้ มายเลขไอพีเดยี วกนั โหวตซำ้ ได้ โดยจะเก็บหมายเลขไอพที ่ที ำการโหวตแลว้ ในออปเจค็ ชนดิ HashSet การ
พัฒนาโปรแกรมนม้ี ีคำสง่ั เพิ่มเติมทีส่ ำคญั ดงั น้ี

1. กำหนดตวั แปร voters
2. อ่านหมายเลขไอพีของผโู้ หวตและเพ่มิ คะแนนการโหวต หากหมายเลขไอพนี ้ีไมเ่ คยโหวต

3.4.1 กำหนดตวั แปร voters

ตวั แปร voters เป็นตัวแปรชนิด HashSet ( Set ไม่เก็บขอ้ มลู ซ้ำ ไมจ่ ำลำดบั ข้อมลู ว่าเขา้ ก่อนหรือหลัง
และไมเ่ รยี งลำดับ) เกบ็ หมายเลขไอพีของผูโ้ หวต โดยจะประกาศเป็นตัวแปร ออปเจ็คที่มคี ำส่งั ประกาศดังนี้

HashSet voters = new HashSet();

3.4.2 การอ่านหมายเลขไอพีของผู้ใช้

การอา่ นหมายเลขไอพีของผู้ใชท้ ำได้โดยเรียกใช้ คำสั่ง getRemoteAddr() ในออปเจ็ค request เมือ่ ทราบ
หมายเลขไอพี เราสามารถที่จะตรวจสอบได้วา่ หมายเลขน้เี คยโหวตแล้วหรอื ไม่ โดยการตรวจสอบวา่ ออปเจ็ค voters
มคี า่ หมายเลขไอพนี หี้ รอื ไม่โดยใช้คำส่งั contain() หากยังไมเ่ คยโหวตกใ็ ห้เพิ่มค่าตัวนบั และเพม่ิ หมายเลขไอพีนีใ้ น
ออปเจค็ voters โดยมคี ำส่งั ดังน้ี

String ip = request.getRemoteAddr();
if(voter.contains(request.getRemoteAddr())){

out.print("This IP Address has been voted");
}else{

count[voteNum]++;
voter.add(request.getRemoteAddr());
}

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

31

สำหรับโปรแกรม VoteServlet.java ท่ปี รบั ปรุงใหมจ่ ะมี source code ดัง Listing ท่ี 3.3
Listing ท่ี 3.3 โปรแกรม VoteServlet.java เพื่อป้องกันการโหวตซำ้

package controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashSet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class VoteServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

HashSet<String> voter = new HashSet<String>();
String[] lang = { "Java", "C#", "C", "Pascal" };
int[] count = new int[4];

protected void processRequest(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

PrintWriter out = response.getWriter();
response.setContentType("text/html;charset=UTF-8");

String vote = request.getParameter("lang");
int voteNum = Integer.parseInt(vote) - 1;

if (voter.contains(request.getRemoteAddr())) {
out.print("<font color=red>This IP Address has been voted</font>");

} else {
voter.add(request.getRemoteAddr());
count[voteNum]++;

}
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet VoteServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet VoteServlet at " + request.getContextPath()

+ "</h1>");
for (int i = 0; i < count.length; i++) {

out.println(lang[i] + " = " + count[i] + "<BR>");
}
out.println("</body>");
out.println("</html>");
out.close();
}

protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

processRequest(request, response);
}

protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

processRequest(request, response);
}

public String getServletInfo() {
return "Short description";

}
}

การเขียนโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

32

Exercise 4 การเช่อื มต่อกับMySQL Database

เนอื้ หาที่ต้องศึกษากอ่ น -
แบบฝึกหดั นี้เปน็ การเรม่ิ ต้นใชง้ าน Database Tool เพ่ือเชื่อมตอ่ กบั Table test ในฐานข้อมลู MySQL

สำหรบั เป็นตัวชว่ ยให้ทำงานได้เร็วขนึ้ เชน่ ปกตถิ า้ จะ create table กต็ อ้ งเขียน SQL แต่ Tool นี้มี GUI มาช่วย
ทำให้ลดขอ้ ผิดพลาด และ สะดวกในการทำงานมากขน้ึ
4.1 การจัดการ Table

เปิดโปรแกรม MySQL Workbench

รปู ที่ 4.1 การเรียกใชง้ าน Program MySQL Workbench
1. Double Click Connection Name ใส่ Password ทก่ี ำหนดไวใ้ นตอนติดต้งั โปรแกรม MySQL ซ่ึงจะมคี ่าเป็น

root ดงั รูปที่ 4.2

รปู ที่ 4.2 การแสดงการเชือ่ มตอ่ Connection เพือ่ เข้าไปจดั การ Database

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

33

4.2 การสร้างตาราง books
ในทีน่ จี้ ะกำหนดให้สร้าง Table ทช่ี ือ่ books โดยใหอ้ ย่ภู ายใต้ Schema ท่ีชอ่ื test โดย Table น้กี ำหนดให้มี

Column ตา่ งๆ ดังตารางท่ี 4.1
ตารางที่ 4.1 Table books

ช่ือ Column ชนดิ ขนาด Primary Key Index

isbn varchar 20 Y Y

title varchar 70 - -

author varchar 50 - -

price float - - -

เราจะใชโ้ ปรแกรม MySQL WorkBench ในการทจี่ ะสรา้ ง Table นโ้ี ดยมีข้ันตอนต่างๆ ดงั น้ี

1. Double คลกิ๊ Add Table... ใสช่ อื่ table และ ชือ่ field แล้วกดปุ่ม Apply ดังตารางท่ี 4.1

การเขยี นโปรแกรม Java Servlet / JSP รปู ท่ี 4.3 การเลือกคำส่งั สรา้ งตาราง

Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

34

2. หรือใชค้ ำส่งั SQL Statement ก็ได้ โดยนำไปใส่ทห่ี นา้ ต่าง Query1 แล้ว กด icon สายฟา้ สีเหลืองเพ่ือรนั

CREATE TABLE BOOKS (
ISBN VARCHAR(20) NOT NULL ,
TITLE VARCHAR(70) NULL ,
AUTHOR VARCHAR(50) NULL ,
PRICE FLOAT NULL ,
PRIMARY KEY (ISBN) );

3. เปดิ Tables books จะเห็น Column ตา่ งๆ ดังรปู ท่ี 4.4

รูปที่ 4.4 ผลลัพธ์จากการสร้างตาราง

การเขียนโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

35

4.3 การใช้คำสงั่ SQL ใน MySQL WorkBench
ภายหลงั จากทมี่ ีการสร้าง Table ที่ช่ือ books เราสามารถใช้คำสั่ง SQL เพอื่ ทจี่ ะตดิ ต่อกบั ฐานขอ้ มูล

ในท่นี ี้จะแสดงการเพม่ิ ข้อมลู ลงใน Table โดยมีขนั้ ตอนต่างๆดงั น้ี
1. Double Click ที่ Table books ด้านขวา จะได้ SQL Editor ใหป้ ้อนคำส่งั SQL เป็น

INSERT INTO books VALUES ('123', 'JAVA', 'Thanisa', 2500.00);
INSERT INTO books VALUES ('456', 'SOA', 'Thanachart ', 3000.00) ;

แลว้ กด Icon สายฟา้ สีเหลอื ง ดังรปู 4.8 หรอื กด Ctrl+Shift+Enter เพอ่ื รนั คำสงั่ SQL ทัง้ หมด

รปู ที่ 4.5 การ Execute คำสงั่ เพมิ่ ขอ้ มูลในตาราง

การเขียนโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

36

2. เราสามารถทจ่ี ะดขู ้อมูลทีป่ อ้ นเขา้ ไปได้
โดยเลือก tab Overview → จาก Table ทชี่ อื่ books เลือก Select Rows – Limit1000 ดงั รปู ที่ 4.6

รูปที่ 4.6 การเรยี กดขู อ้ มูลในตาราง

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

37

Exercise 5 การพัฒนาโปรแกรมเว็บ เพือ่ ติดต่อกบั ฐานข้อมลู

เน้ือหาท่ีตอ้ งศึกษาก่อน การใชง้ าน Tool ที่ติดตอ่ กับ MySQL Database

แบบฝกึ หัดนจ้ี ะเป็นการพัฒนาโปรแกรม Web Application โดยใช้ Java Servlet เพอื่ เชือ่ มต่อกบั ฐานข้อมูล
ในท่นี ้ใี ชฐ้ านขอ้ มูล MySQL ซ่ึงมี Database ช่อื test และสร้าง Table ที่ชื่อ books ไวแ้ ลว้ จาก ที่ Exercise 4 (หนา้ 34)

การทำงานของโปรแกรม เป็นการเพม่ิ ข้อมลู ลงใน Table ดงั กล่าว โดยกำหนดให้ผ้ใู ช้ป้อนรายละเอียดข้อมูล
ผา่ นเว็บเพจท่ชี ือ่ addBook.html ซึ่งเม่ือผูใ้ ชก้ ดปมุ่ Add โปรแกรมกจ็ ะไปเรียกโปรแกรม Servlet ทช่ี ือ่
AddBookServlet ซ่ึงจะมีคำสง่ั ในอา่ นค่า parameter ที่ผู้ใชป้ ้อนเข้ามาและทำการบนั ทกึ ขอ้ มูลลงใน Table books ซึ่ง
ใช้ชดุ คำสั่ง SQL ผ่าน JDBC API

ขั้นตอนในการพฒั นาโปรแกรม
1. Config Apache Tomcat ให้สามารถใชง้ าน JDBC Driver
2. สรา้ งโปรเจ็ค WebBaseDB
3. พัฒนา Web page addBook.html
4. พัฒนา Web page Thankyou.html
5. พฒั นาโปรแกรม AddBookServlet.java

5.1 การ Config Apache Tomcat ให้สามารถใช้งาน JDBC Driver
ในท่ีน้จี ะใช้ Driver ทีช่ ือ่ MySQL Connector/J ซ่งึ เป็น JDBC Driver ทใ่ี ชต้ ิดต่อกบั MySQL

File ที่จำเป็น คอื mysql-connector-java-5.1.15-bin.jar โดยให้ Copy ไปวางท่ี directory /lib ของ Apache Tomcat
Default อยทู่ ่ี C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\

รปู ท่ี 5.1 ตำแหนง่ ของ File JDBC Driver ใน Folder lib ของ Apache Tomcat

สามารถ Download MySQL Connector/J ได้ที่

http://mysql.cs.pu.edu.tw/Downloads/Connector-J/mysql-connector-java-5.1.15.zip

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

38

5.2 การสรา้ ง Web Application Project
เลือกเมนู File → New Project เลือก Dynamic Web Application
กำหนดชอ่ื Project Name = WebBaseDB (ตัวอย่างการสรา้ ง Project Web Application หนา้ 24)

5.3 การพฒั นาโปรแกรม addBook.html
โปรแกรม addBook.html เป็นเวบ็ เพจท่ีใชแ้ สดงฟอร์มสำหรบั ปอ้ นข้อมลู หนังสือใหม่เขา้ ในฐานข้อมลู

books ซ่งึ มลี กั ษณะดังรูปที่ 5.2 โปรแกรม addBook.html

รูปที่ 5.2 หน้าเว็บเพจ addBook.html
ขัน้ ตอนการพัฒนาดังน้ี
1. คลิ๊กขวาท่โี หนด WebBaseDB จากน้นั เลือกคำสง่ั New → HTML File (ตัวอยา่ ง หนา้ 25)
กำหนด File Name: เปน็ addBook แล้วกด Finish
2. เขยี น source code ของไฟล์ addBook.html ตาม Listing ท่ี 5.1
หรอื ลาก icon ประเภท HTML Forms ท่อี ยใู่ นหนา้ ตา่ ง Palette เพือ่ สามารถให้เขยี นโปรแกรมได้ง่ายข้ึน
(ตัวอย่าง หนา้ 9 โดยทำตาม รปู แบบท่ี 2) ดังรปู ที่ 5.3

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

39

รปู ที่ 5.3 การใช้งาน Palette สำหรบั การสร้างหนา้ จอ HTML

Listing ท่ี 5.1 โปรแกรม addBook.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Add a new book</title>
</head>

<body><h1>Add a new book</h1><P>
<form action="addBook.do" method="POST">
ISBN : <input type="text" name="isbn" value="" size="15"/> <BR>
Title : <input type="text" name="title" value="" size="50"/> <BR>
Author : <input type="text" name="author" value="" size="50"/> <BR>
Price : <input type="text" name="price" value="" size="10"/> <BR>
<input type="submit" value="Add" />
</form>

</body>
</html>

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

40

5.4 การพัฒนาโปรแกรม thankyou.html

โปรแกรม Thankyou.html เปน็ เวบ็ เพจท่ีใช้แสดงให้เห็นวา่ ข้อมลู ได้ถกู เพ่ิมเขา้ ไปในฐานขอ้ มลู แลว้ โดยมี
source code ดัง Listing ท่ี 5.2 ซง่ึ ขัน้ ตอนการพัฒนาโปรแกรมน้ีจะเป็นเชน่ เดียวกับการพฒั นาโปรแกรม

addBook.html

Listing ท่ี 5.2 โปรแกรม thankyou.html

<html>
<head>
<title>Thank you</title>
</head>
<body>
<H1>Thank you for inserting data </H1>
</body>

</html>

5.5 การพัฒนาโปรแกรม AddBookServlet.java

โปรแกรม AddBookServlet.java เปน็ โปรแกรมทีถ่ กู เรียกใช้โดย addBook.html เมอื่ ผ้ใู ชก้ ดปมุ่ Add
โปรแกรมนจี้ ะทำหน้าทีเ่ พื่อติดตอ่ กบั ฐานขอ้ มูลโดยมีขัน้ ตอนการทำงานดังนี้

1. อา่ นคา่ พารามเิ ตอร์ต่างๆทีส่ ่งมาจาก addBook.html
2. เช่ือมต่อกบั ฐานข้อมูล books
3. เพ่มิ รายช่ือหนงั สือใหมล่ งในฐานข้อมลู books
4. เรยี กเว็บเพจ Thankyou.html

5.5.1 การอ่านคา่ พารามิเตอร์จาก addBook.html

เวบ็ เพจ addBook.html จะสง่ ข้อมูลของรายช่ือหนังสอื ใหมผ่ า่ นมาทางพารามเิ ตอรต์ า่ งๆดงั นี้
● isbn หมายเลข ISBN ของหนังสือ
● title ชือ่ หนังสือ
● author ชอื่ ผูแ้ ตง่
● price ราคาหนังสือ

พารามเิ ตอร์ต่างๆเหล่าน้ีจะถูกสง่ ผา่ นโปรโตคอล Http และในโปรแกรมเราสามารถท่จี ะอา่ นค่าพารามิเตอร์
เหลา่ น้ีได้จากออปเจค็ request โดยเรียกใชเ้ มธอด getParameter() ซึ่งโปรแกรมส่วนน้ีจะมคี ำส่งั ต่างๆดังน้ี

String isbn = request.getParameter("isbn");
String author = request.getParameter("author");
String title = request.getParameter("title");
String priceStr = request.getParameter("price");

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

41

5.5.2 การเชอ่ื มต่อกบั ฐานขอ้ มูล

การดงึ ข้อมลู ระหวา่ ง Application กบั MySQL Database มีขนั้ ตอนดงั นี้
● เพมิ่ Resource ชนิด Data source ลงไปท่ี Container ของ Tomcat
● เพม่ิ Resource Reference โดยทำการ Map DataSource ที่ Application ต้องการใช้
● เรยี กใชค้ ำสั่ง SQL โดยใชเ้ มธอด executeQuery() หรอื executeUpdate()

1. เพ่ิม Resource ชนดิ DataSource ลงไปท่ี Tomcat
โดยสรา้ ง file context.xml ที่ Folder \WebBaseDB\WebContent\META-INF\ ดงั รูป 5.4

<Context>
<Resource

name="jdbc/test"
auth="Container"
driverClassName="com.mysql.jdbc.Driver"
type="javax.sql.DataSource"
url="jdbc:mysql://localhost:3306/test"
username="root"
password="root" >
</Resource>
</Context>

รปู ท่ี 5.4 เพิ่ม Resource ให้กับ Apache Tomcat

การเขียนโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

42

2. ทำการ Mapping Data source ท่ี Application ต้องการเชือ่ มต่อ
โดยแกไ้ ข Web Deployment Descriptor ของ Project (\WEB-INF\web.xml) โดยเพิ่มดังน้ี

<resource-ref>

<description>Test Database</description>
<res-ref-name>jdbc/test</res-ref-name>

<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>

</resource-ref>

รูปท่ี 5.5 เพิม่ Resource Reference ที่ Web Deployment Descriptor

3. การขอ Data source จะใช้ @annotation และบอกชื่อของ Data source ตัวท่ีเราตอ้ งการ
ตย. source code เชน่

@Resource(name = "jdbc/test")
private DataSource jdbcTest;

เมอื่ ได้ Data source แล้ว เราก็จะสรา้ งทางติดต่อ โดย get Connection จากมนั แลว้ เก็บค่าไว้ท่ีตวั แปร conn
โดยเขียน source code สว่ นน้ีท่ี Method init( )

5.5.3 private Connection conn;

public void init() {
try {
conn = jdbcTest.getConnection();
} catch (Exception ex) {System.out.println(ex);}

}

เพ่ิมรายช่ือหนังสอื ใหมล่ งในฐานขอ้ มลู

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

43

เมอื่ เชอ่ื มต่อฐานข้อมลู และได้ออปเจค็ ชนดิ Connection มาแล้ว เราสามารถที่จะเรียกใช้คำสั่ง SQL ได้ ซึ่ง
ในที่น้คี ือคำสง่ั INSERT ซ่งึ จะมรี ูปแบบของคำส่งั ดงั นี้

INSERT INTO books VALUES(....)

โดยเราจะใชค้ า่ จากพารามเิ ตอรต์ ่างๆท่ีรบั มา ดงั นน้ั ถ้าขอ้ มูลทป่ี อ้ นเข้ามาถูกต้องเราสามารถทีจ่ ะเพิม่ รายช่ือ
หนังสือใหม่ลงในฐานขอ้ มลู โดยใชค้ ำสั่งดงั น้ี

Statement stmt = conn.createStatement();
String sql = "INSERT INTO books VALUES('"

+ isbn + "','" + title +"','"
+ author +"',"+ price +")";
int numRow = stmt.executeUpdate(sql);

5.5.4 การเรียกเว็บเพจ thankyou.html

เมื่อข้อมลู ได้ถูกเพิ่มลงไปในฐานข้อมลู แลว้ โปรแกรม AddBookServlet จะทำการเรียกเวบ็ เพจ
thankyou.html โดยการเรียกใช้ RequestDispatcher ดงั นี้

RequestDispatcher obj = request.getRequestDispatcher("thankyou.html");
if (numRow == 1 && obj != null) {

obj.forward(request,response);
}

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

44

5.6 ขั้นตอนการพัฒนาโปรแกรม AddBookServlet.java

1. คลิ๊กขวาทโี่ หนด WebBaseDB จากนนั้ เลือกคำสงั่ New → Servlet
กำหนด Package = controller , Class Name = AddBookServlet
URL Mapping = /addBook.do แล้วกด Finish

2. ในหนา้ ต่าง editor ให้แกไ้ ข source code ของไฟล์ AddBookServlet.java
ให้เป็นไปตาม Listing ที่ 5.3

Listing ท่ี 5.3 โปรแกรม AddBookServlet.java

package controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

import javax.annotation.Resource;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;

public class AddBookServlet extends HttpServlet {

private static final long serialVersionUID = 1L;
@Resource(name = "jdbc/test")
private DataSource jdbcTest;
private Connection conn;

public void init() {
try {
conn = jdbcTest.getConnection();
} catch (Exception ex) {
System.out.println(ex);
}

}

protected void processRequest(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Add a new book</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1> Add a new book </h1>");

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

45

try {

String isbn = request.getParameter("isbn");
String author = request.getParameter("author");
String title = request.getParameter("title");
String priceStr = request.getParameter("price");
float price = Float.parseFloat(priceStr);
Statement stmt = conn.createStatement();
String sql = "INSERT INTO books VALUES('"
+ isbn + "','" + title
+ "','" + author + "'," + price + ")";

int numRow = stmt.executeUpdate(sql);

RequestDispatcher obj =
request.getRequestDispatcher("thankyou.html");

if (numRow == 1 && obj != null) {
obj.forward(request, response);

}
} catch (SQLException ex) {

out.println("Error " + ex);
return;
}
out.println("</body>");
out.println("</html>");
out.close();
}

protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

processRequest(request, response);
}

protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

processRequest(request, response);
}
}

3. บางส่วนท่ลี มื import หรอื พบ Error หรอื พบ Warning ข้นึ มา ให้ตรวจสอบ import file
โดยกด Ctrl+Shift+O Eclipse จะมใี หเ้ ลอื กว่าจะ import ไฟลไ์ หน เรยี กว่า การทำ Organize Imports

รปู ที่ 5.6 Ctrl+Shift+O ให้ Eclipse เป็นตัวชว่ ยในการแสดง Import file

4. เพื่อความสะดวกในการเรียกใช้ Web Application อาจปรบั ให้ Welcome file เป็น addBook.html (ตวั อย่าง
Exercise 2 การเขียนโปรแกรม Java Servlet เพ่ืออ่านค่าพารามเิ ตอร์ ที่หนา้ 20)

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

46

5.7 ทดสอบโปรแกรม
1. ทำการ Deploy โปรแกรม WebBaseDB ซึง่ ใน Eclipse ทำโดย Click ขวาที่ Add and Remove

2. เรยี กใช้งานหน้า addBook.html แลว้ ทดสอบกรอกขอ้ มลู ดังรปู ที่ 5.7

รูปท่ี 5.7 ตัวอย่างการปอ้ นข้อมลู Books
3. เมอื่ กดปุ่ม Add โปรแกรมกจ็ ะใสข่ อ้ มลู ลงใน Database และแสดงผลลพั ธด์ งั รูปท่ี 5.8

รูปที่ 5.8 ผลลพั ธท์ ่ีแสดงทาง Web Browser

การเขียนโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

47

4. เขา้ ไปดูข้อมูล โดยใช้ MySQLWorkbench เลอื กคำส่ัง Select Rows -... จาก Table ทีช่ ่ือ books ดงั รูปที่ 5.9

รูปที่ 5.9 ข้อมลู ทีถ่ กู ปอ้ นเขา้ Table ท่ีชอ่ื books

การเขียนโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

48

Exercise 6 โปรแกรมเว็บเพือ่ สาธิตขอบเขตของออปเจ็ค

น้ือหาท่ตี ้องศกึ ษาก่อน การเขยี นโปรแกรม Servlet เพื่ออ่านคา่ พารามิเตอร์

แบบฝกึ หดั นจ้ี ะเป็นการพัฒนาโปรแกรม Java Servlet เพ่อื อธิบายขอบเขตการทำงานของออปเจค็ ใน
โปรแกรมแบบเวบ็ (Object Scope) ทม่ี อี ยสู่ ่แี บบคอื Page, Request, Session และ Web (Application) โดยจะทดลอง
สง่ คา่ ของออปเจค็ ผ่านกันระหวา่ งโปรแกรม Servlet สองชดุ

6.1 การพฒั นาโปรแกรมเพอ่ื สาธติ ขอบเขตของ Object แบบ Request

ออปเจค็ ท่ีสร้างข้นึ ในโปรแกรม Java Servlet ในแต่โปรแกรมจะมีขอบเขตการใชง้ าน (scope) อยู่เพียงแค่
โปรแกรมนัน้ ๆ (URL นั้นๆ) ไม่สามารถท่จี ะใชโ้ ปรแกรม Java Servlet หรอื JSP ตัวอนื่ เรียกใชอ้ อปเจค็ ตวั น้ันได้ การ
จะให้โปรแกรม Servlet หรอื JSP อื่นๆ เรยี กออปเจ็คใดๆ ไดน้ ้นั จะตอ้ งมีการเขยี น source code เพือ่ สง่ ผา่ นคา่ ขอ
งออปเจ็คนน้ั ไปยังออปเจค็ อ่ืนๆ ทง้ั นเี้ ราสามารถกำหนดขอบเขตการใช้งานเพ่มิ เติมได้อีก 3 แบบคือ

● Request ออปเจ็คสามารถถูกเรียกใช้เมอื่ มกี ารเรยี กมาจากโปรแกรม Servlet/JSP อ่นื
● Session ออปเจค็ จะเก็บอยใู่ น Session ของ Web Browser ตราบเทา่ ที่ยังมกี ารใช้งานอยู่
● Application ออปเจค็ จะสามารถใชง้ านไดใ้ นโปรแกรม Servlet/JSP ใดๆ

ทีอ่ ยู่ใน Web Application เดยี วกนั

การส่งคา่ ของออปเจค็ จาก URL หน่ึงมายัง URL อ่ืนทำได้หลายวธิ ี แบบฝึกหดั ทผ่ี ่านมาเป็นการแสดงให้
เหน็ ถงึ การสง่ ค่าพารามิเตอรท์ ่อี ย่ใู นฟอร์มของไฟล์ HTML ไปยงั โปรแกรม Java Servlet ทส่ี ามารถเรยี กใช้ไดโ้ ดย คำ
ส่งั request.getParameter()

นอกจากน้ีเรายังสามารถทจ่ี ะส่งออปเจ็คไปยัง โปรแกรม Java Servlet หรอื JSP อนื่ โดยการใชค้ ำสง่ั
setAttribute() อาทิเช่นส่งคา่ ของตวั แปร String ช่อื ว่า name โดยจะเกบ็ ไว้ใน attribute ท่ชี ือ่ RequestName และมรี ูป
แบบคำสงั่ ดงั น้ี

String name = “Thanisa”;
request.setAttribute(“RequestName”, name);

ซึง่ จะทำให้ URL ทีท่ ำการเรยี กถัดไปสามารถเรยี กใช้ attribute ที่ชือ่ RequestName และดงึ ค่าของตวั แปร
name ออกมาได้ โดยใชค้ ำส่งั getAttribute() โดยมีรูปแบบดงั น้ี

String name = (String) request.getAttribute(“RequestName”);

การเขียนโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

49

สว่ นคำส่ังท่ีใชใ้ นการท่ีจะ forward จากโปรแกรม Servlet ตัวหนงึ่ ไป URL อื่นจะเป็นคำสั่งทม่ี ีรปู แบบดังนี้

RequestDispatcher obj = request.getRequestDispatcher("SecondServlet");
obj.forward(request,response);

โดยที่ SecondServlet คอื ชือ่ URL ทตี่ อ้ งการ forward
ในข้ันตอนนี้จะเปน็ การพัฒนาโปรแกรมเพ่อื สาธิตการทำงานของขอบเขตการทำงานของ Object แบบ
request โดยการพัฒนาโปรแกรม Servlet ขึ้นมาสองโปรแกรมคือ FirstServlet ที่จะใชใ้ นการสง่ ออปเจค็ ซ่ึงมี source
code ตาม Listing ที่ 6.1 และ โปรแกรม SecondServlet ทจ่ี ะใช่ในการอา่ นค่าของออปเจค็ ที่ส่งออกมาแลว้ นำมา
แสดงผล ซึง่ มี source code ตาม Listing ท่ี 6.2

Listing ที่ 6.1 โปรแกรม FirstServlet.java

package servlet;

import java.io.*;
import java.net.*;

import javax.servlet.*;
import javax.servlet.http.*;

public class FirstServlet extends HttpServlet {

protected void processRequest(HttpServletRequest request, HttpServletResponse
response)

throws ServletException, IOException {

PrintWriter out = response.getWriter();
response.setContentType("text/html;charset=UTF-8");

try {
String name = "Thanisa";
request.setAttribute("RequestName", name);
RequestDispatcher obj = request.getRequestDispatcher("SecondServlet");
obj.forward(request, response);

} finally {
out.close();

}
}

protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

processRequest(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

processRequest(request, response);
}

public String getServletInfo() {
return "Short description";

}
}

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan

50

Listing ท่ี 6.2 โปรแกรม SecondServlet.java

package servlet;

import java.io.*;
import java.net.*;

import javax.servlet.*;
import javax.servlet.http.*;

public class SecondServlet extends HttpServlet {

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

PrintWriter out = response.getWriter();
response.setContentType("text/html;charset=UTF-8");

try {
String name = (String) request.getAttribute("RequestName");
out.println(name);
} finally {
out.close();
}
}

protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

processRequest(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

processRequest(request, response);
}

public String getServletInfo() {
return "Short description";

}
}

6.1.1 ขั้นตอนการพฒั นาโปรแกรมเพอื่ สาธิตขอบเขตของ Object แบบ Request

เราสามารถทจี่ ะพฒั นาโปรแกรม ตามข้นั ตอนดงั น้ี
1. เลือกเมนู File → New → Dynamic Web Application

กำหนด Project Name = ScopeDemo
2. คลิ๊กขวาท่โี หนด ScopeDemo → New → Servlet

กำหนด Package = servlet , Class Name = FirstServlet แลว้ กด Finish
ในหน้าต่าง Editor เขยี น Source code ของ FirstServlet.java ดัง Listing ท่ี 6.1 แล้ว Save

การเขยี นโปรแกรม Java Servlet / JSP Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan


Click to View FlipBook Version