More Related Content Similar to Java Web Programming Using NetBeans 6.5
Similar to Java Web Programming Using NetBeans 6.5 (20) More from Thanachart Numnonda
More from Thanachart Numnonda (20) Java Web Programming Using NetBeans 6.51. 1
Hand-on
Exercises
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļ§āļ
Java Servlet / JSP
āđāļāļĒāđāļ
GlassFish and NetBeans 6.5
Dr.Thanachart Numnonda
and
Asst Prof.Thanisa Kruawaisayawan
July 2009
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
2. 2
āļŠāļēāļĢāļāļ
Exercise 1 āļāļēāļĢāļŠāļĢāļēāļāđāļāļĢāđāļāļ Web Application āđāļĨāļ°āđāļāļĨ HTML........................................................................5
1.1 āļāļēāļĢāļŠāļĢāļēāļ Web Application Project..................................................................................................5
1.2 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ addCustomer.html................................................................................................9
1.3 āļāļēāļĢāļāļāļŠāļāļāđāļāļĢāđāļāļĢāļĄ..........................................................................................................................11
Exercise 2 āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servlet āđāļ!āļāļ"āļēāļāļ"āļēāļāļēāļĢāļēāļĄ#āđāļāļāļĢ.........................................................................13
2.1 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ CustomerServlet.java.........................................................................................13
2.1.1 āļāļēāļĢāļ"āļēāļāļ"āļēāļāļēāļĢāļēāļĄ#āđāļāļāļĢāļāļēāļ addCustomer.html ...............................................................................13
2.1.2 āļāļēāļĢāđāļŠāļāļāļĢāļēāļĒāļĨāļ°āđāļāļĒāļāļāļāļāļ"āļēāļ"āļēāļāđ.......................................................................................................14
2.2 āļ&āļāļāļāļāļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ CustomerServlet.java ...............................................................................14
2.3 āļāļēāļĢāļāļāļŠāļāļāđāļāļĢāđāļāļĢāļĄ..........................................................................................................................19
2.4 āļāļēāļĢāļāļĢāļāļāļĢ'āļāđāļāļĢāđāļāļĢāļĄāđāļ!āļāđāļŦāđāļŠāļāļāļāļĨāļ āļēāļĐāļēāđāļāļĒāđāļĨāļ°āđāļĢāļĒāļāđāļāļĨ addCustomer.html āđāļĄ!āļāđāļĢ#!āļĄāļāļ......................................20
Exercise 3 āđāļāļĢāđāļāļĢāļĄāđāļ§āļāļŠ.āļēāļŦāļĢāļāļāļēāļĢāļ.āļēāđāļāļĨ........................................................................................................22
3.1 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ vote.html............................................................................................................22
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..............................................................................................29
3.4.1 āļ.āļēāļŦāļāļāļāļ§āđāļāļĢ voters................................................................................................................29
3.4.2 āļāļēāļĢāļ"āļēāļāļŦāļĄāļēāļĒāđāļĨāļāđāļāļāļāļāļāļ/āđāļ..........................................................................................................29
Exercise 4 āļāļēāļĢāđāļ!āļāļĄāļ"āļāļāļ MySQL Database.............................................................................................32
4.1 āļāļēāļĢāļ#āļāļ&āļāđāļāļĢāđāļāļĢāļĄāļāļēāļāļāļāļĄ/āļĨ MySQL....................................................................................................32
4.2 āļāļēāļĢāļŠāļĢāļēāļ Database Connection.....................................................................................................32
4.3 āļāļēāļĢāļŠāļĢāļēāļāļāļēāļĢāļēāļ books.......................................................................................................................35
4.4 āļāļēāļĢāđāļāļ.āļēāļŠ!āļ SQL āđāļ NetBeans........................................................................................................37
Exercise 5 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĄāđāļ§āļāđāļ!āļāļ#āļāļ"āļāļāļāļāļēāļāļāļāļĄ/āļĨ..........................................................................................39
5.1 āļāļēāļĢāļŠāļĢāļēāļ Web Application Project................................................................................................39
5.2 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ addBook.html....................................................................................................39
5.3 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ Thankyou.html...................................................................................................41
5.4 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ AddBookServlet.java.........................................................................................41
5.4.1 āļāļēāļĢāļ"āļēāļāļ"āļēāļāļēāļĢāļēāļĄ#āđāļāļāļĢāļāļēāļ addBook.html ......................................................................................42
5.4.2 āļāļēāļĢāđāļ!āļāļĄāļ"āļāļāļāļāļēāļāļāļāļĄ/āļĨ...............................................................................................................42
5.4.3 āđāļ#!āļĄāļĢāļēāļĒāļ!āļāļŦāļāļāļŠāļāđāļŦāļĄ"āļĨāļāđāļāļāļēāļāļāļāļĄ/āļĨ ................................................................................................43
5.4.4 āļāļēāļĢāđāļĢāļĒāļāđāļ§āļāđāļāļ Thankyou.html ...............................................................................................43
5.5 āļ&āļāļāļāļāļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ AddBookServlet.java ...............................................................................45
5.6 āļāļāļŠāļāļāđāļāļĢāđāļāļĢāļĄ..............................................................................................................................47
Exercise 6 āđāļāļĢāđāļāļĢāļĄāđāļ§āļāđāļ!āļāļŠāļēāļ#āļāļāļāļāđāļāļāļāļāļāļāļāļāđāļāļ............................................................................................49
6.1 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄāđāļ!āļāļŠāļēāļ#āļāļāļāļāđāļāļāļāļāļ Object āđāļāļ Request .....................................................................49
6.1.1 āļ&āļāļāļāļāļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄāđāļ!āļāļŠāļēāļ#āļāļāļāļāđāļāļāļāļāļ Object āđāļāļ Request ....................................................52
6.1.2 āļ&āļāļāļāļāļāļēāļĢāļāļāļŠāļāļāđāļāļĢāđāļāļĢāļĄāđāļ!āļāļŠāļēāļ#āļāļāļāļāđāļāļāļāļāļ Object āđāļāļ Request....................................................52
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
3. 3
6.2 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄāđāļ!āļāļŠāļēāļ#āļāļāļāļāđāļāļāļāļāļ Object āđāļāļ Session .....................................................................52
6.2.1 āļ&āļāļāļāļāļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄāđāļ!āļāļŠāļēāļ#āļāļāļāļāđāļāļāļāļāļ Object āđāļāļ Session .....................................................55
6.2.2 āļ&āļāļāļāļāļāļēāļĢāļāļāļŠāļāļāđāļāļĢāđāļāļĢāļĄāđāļ!āļāļŠāļēāļ#āļāļāļāļāđāļāļāļāļāļ Object āđāļāļ Session ...................................................55
6.3 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄāđāļ!āļāļŠāļēāļ#āļāļāļāļāđāļāļāļāļāļ Object āđāļāļ Application................................................................55
6.3.1 āļ&āļāļāļāļāļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄāđāļ!āļāļŠāļēāļ#āļāļāļāļāđāļāļāļāļāļ Object āđāļāļ Application...............................................58
6.3.2 āļ&āļāļāļāļāļāļēāļĢāļāļāļŠāļāļāđāļāļĢāđāļāļĢāļĄāđāļ!āļāļŠāļēāļ#āļāļāļāļāđāļāļāļāļāļ Object āđāļāļ Application..............................................58
Exercise 7 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ Servlet āđāļāļĒāđāļāļāļĨāļēāļŠāļāļĢāļ°āđāļ āļ Web Listener..........................................................59
7.1 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ Init.java..............................................................................................................59
7.2 āļāļēāļĢāļāļĢāļāļāļĢ'āļāđāļāļĢāđāļāļĢāļĄ AddBookServlet.java .....................................................................................64
7.3 āļāļāļŠāļāļāđāļāļĢāđāļāļĢāļĄ..............................................................................................................................65
Exercise 8 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ Servlet Filter ..............................................................................................67
8.1 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ Servlet Filter......................................................................................................67
8.2 āļāļēāļĢāđāļāļĒāļāļŦāļāļē Login.........................................................................................................................68
8.2.1 āļ&āļāļāļāļāļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ ...........................................................................................................69
8.3 āļāļēāļĢāđāļāļĒāļ Servlet Filter..................................................................................................................70
8.3.1 āļ&āļāļāļāļāļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ ...........................................................................................................71
8.4 āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ ShowServlet .......................................................................................................73
8.4.1 āļ&āļāļāļāļāļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ ...........................................................................................................73
8.5 āļ&āļāļāļāļāļāļēāļĢāļāļāļŠāļāļāđāļāļĢāđāļāļĢāļĄ .................................................................................................................74
Exercise 9 āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ JSP āđāļ!āļāđāļŠāļāļāļāļĨāļĨāļāļ............................................................................................75
9.1 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ hello.jsp.............................................................................................................75
9.2 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ viewBook.jsp....................................................................................................76
9.2.1 āļāļēāļĢāļ.āļēāļŦāļāļ Tag Library .........................................................................................................76
9.2.2 āļāļēāļĢāļ.āļēāļŦāļāļ Datasource ..........................................................................................................76
9.2.3 āļāļēāļĢāđāļāļ.āļēāļŠ!āļ sql:query .............................................................................................................77
9.2.4 āļāļēāļĢāđāļāļ.āļēāļŠ!āļ c:forEach āđāļ!āļāđāļŠāļāļāļāļĨ ..............................................................................................77
Exercise 10 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄāđāļ§āļ Online Book Store................................................................................80
10.1 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ selectBooks.jsp................................................................................................80
10.2 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ Book.java.........................................................................................................84
3
10.3 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ Cart.java...........................................................................................................85
3
10.4 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ ProcessSelection.java......................................................................................86
10.5 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ Init.java ...........................................................................................................88
10.6 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ viewCart.jsp.....................................................................................................88
10.7 āļ&āļāļāļāļāļāļēāļĢāļāļāļŠāļāļāđāļāļĢāđāļāļĢāļĄ ...............................................................................................................89
Exercise 11 āļāļēāļĢāļŠāļĢāļēāļ Custom Tags āļŠ.āļēāļŦāļĢāļāđāļāļĢāđāļāļĢāļĄ JSP...............................................................................92
11.1 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ hello.jsp............................................................................................................92
11.2 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ helloTag.jsp.....................................................................................................94
11.2.1 āļŠāļĢāļēāļ Tag Library Descriptor.............................................................................................94
11.2.2 āļŠāļĢāļēāļāđāļāļĨ Tag Handler.........................................................................................................95
11.2.3 āđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ helloTag.jsp...................................................................................................97
11.3 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ helloJSTL.jsp...................................................................................................98
11.4 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ helloTagFile.jsp...............................................................................................98
11.4.1 āļŠāļĢāļēāļ Tag File....................................................................................................................99
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
4. 4
11.4.2 āđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ helloTagFile.jsp...........................................................................................100
Exercise 12 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄāđāļ§āļāđāļāļĒāđāļ Strut Framework .........................................................................101
12.1 āļāļēāļĢāļŠāļĢāļēāļ Web Application Project............................................................................................101
12.2 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ BookActionForm.java...................................................................................101
12.3 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ AddBook.jsp..................................................................................................106
12.4 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ AddBookAction.java.....................................................................................107
12.5 āļāļēāļĢāļāļāļāļēāđāļāļĨ ApplicationResource.properties..........................................................................109
12.6 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ Init.java āđāļĨāļ° Thankyou.html...........................................................................109
12.7 āļāļēāļĢāļāļāļāļēāđāļāļĨ Struts-config.xml.................................................................................................109
12.8 āļāļēāļĢāļāļāļŠāļāļāđāļāļĢāđāļāļĢāļĄ......................................................................................................................110
Exercise 13 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄāđāļ§āļāđāļāļĒāđāļ JSF Framework............................................................................112
13.1 āļāļēāļĢāļŠāļĢāļēāļ Web Application Project............................................................................................112
13.2 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ JSF Managed Bean........................................................................................113
13.3 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ PriceValidator.java........................................................................................115
13.4 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ AddBook.jsp..................................................................................................116
13.5 āļāļēāļĢāļ.āļēāļŦāļāļ Page Navigation......................................................................................................117
13.6 āļāļēāļĢāļ.āļēāļŦāļāļ Error Message.........................................................................................................118
13.7 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ Thankyou.html, error.html āđāļĨāļ° Init.java.........................................................119
13.8 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ AddBookServlet.java.....................................................................................119
13.9 āļāļēāļĢāļāļāļŠāļāļāđāļāļĢāđāļāļĢāļĄ......................................................................................................................121
Exercise 14 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄāđāļ§āļāđāļāļĒāđāļ Visual JSF....................................................................................122
14.1 āļāļēāļĢāļŠāļĢāļēāļ Web Application Project............................................................................................122
14.2 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ HelloWeb......................................................................................................122
14.3 āļāļēāļĢāļāļāļŠāļāļāđāļāļĢāđāļāļĢāļĄ......................................................................................................................126
14.4 āļāļēāļĢāļāļĢāļāļāļĢ'āļāđāļāļĢāđāļāļĢāļĄ HelloWeb....................................................................................................127
14.5 āļāļēāļĢāļāļāļŠāļāļāđāļāļĢāđāļāļĢāļĄ......................................................................................................................129
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
5. 5
Exercise 1 āļāļēāļĢāļŠāļĢāļēāļāđāļāļĢāđāļāļ Web Application āđāļĨāļ°āđāļāļĨ
HTML
āđāļāļāļāļāļŦāļāļāļāļ°āđāļāļāļāļēāļĢāļŠāļĢāļēāļāđāļāļĢāđāļāļ Web Application āđāļĨāļ°āļāļāļāļēāļŦāļāļēāđāļ§āļāđāļāļāđāļāļāđāļŦāļ#āđāļāļ%āļāļāļāļāļĄ#āļĨ
āļāļāļāļĨ#āļāļāļē āđāļāļĒāđāļ§āļāđāļāļāļāļ°āļāļāļāļēāļāļ§āļĒāļ āļēāļĐāļē HTML āļ,āļāļāļ°āļ.āļēāļŦāļāļēāđāļāļāļŠ/āļ§āļāļ0āļāļ1āļāļāļāļāđāļāļĢāđāļāļĢāļĄāđāļāļāđāļŦāļ#āđāļāļ%āļāļ
āļāļāļĄ#āļĨāļ/āļēāļ Web Browser
āļāļāļāļāļāđāļāļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ
1. āļŠāļĢāļēāļāđāļāļĢāđāļāļ Web Application
2. āļāļāļāļēāđāļāļĢāđāļāļĢāļĄ addCustomer.html
1.1 āļāļēāļĢāļŠāļĢāļēāļ Web Application Project
āđāļĢāļēāļāļ°āđāļĢ0āļĄāļāļāļŠāļĢāļēāļāđāļāļĢāđāļāļĢāļĄ Web-Base Application āđāļāļĒāļāļēāļĢāļŠāļĢāļēāļ Project āđāļŦāļĄ/āļ,āļāļĄāļēāđāļ NetBeans
āļ,āļāļĄāļāļāļāļāļāļāļāļ
1. āđāļĨāļāļāđāļĄāļ# File > New Project
2. āđāļāđāļāļāļ°āļĨāļāļ New Project āđāļŦāđāļĨāļāļ Categories āđāļāļ Java Web āđāļĨāļ°āđāļĨāļāļ Projects āđāļāļ Web
Application āļāļāļĢ#āļāļ 1.1
āļĢāļāļ 1.1 āļāļēāļĢāļŠāļĢāļēāļāđāļāļĢāđāļāļ Web Application
3. āļāļ Next āļ.āļēāļŦāļāļ Project Name: āđāļāļ WebApp āđāļĨāļ§āđāļĨāļāļ Project Location: āđāļāļ Directory āļāđāļĢāļē
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
6. 6
āļāļāļāļāļēāļĢāļāļ°āđāļāļāđāļāļĨ5āđāļ§ āļāļāļĢ#āļāļ 1.2
āļĢāļāļ 1.2 āļāļēāļĢāļāļēāļŦāļāļāļāļāđāļāļĢāđāļāļ
4. āļāļēāļāļāļāđāļŦāđāļĨāļāļ Server āđāļāļ Apache Tomcat 6.0.18 āļāļāļĢ#āļāļ 1.3
āļĢāļāļ 1.3 āļāļēāļĢāđāļĨāļāļ Server āļāļāļ°āļāļāļāļāđāļāļĢāđāļāļ
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
7. 7
5. āļāļāļ16āļĄ Finish āđāļāļĢāđāļāļĢāļĄāļāļ°āļ.āļēāļāļēāļĢāļŠāļĢāļēāļ Projects āđāļĨāļ°āļŠāļĢāļēāļāđāļāļĨ5āļ/āļēāļāđ āļ,āļāļĄāļēāđāļāļĒāļĄāđāļāļĢāļāļŠāļĢāļēāļāļāļāļāđāļāļĨ5āļāļ
āļĢ#āļāļ
āļĢāļāļ 1.4 āđāļāļĢāļāļŠāļĢāļēāļāđāļāļĨ!āļāļāļāđāļāļĢāđāļāļ WebApp
1.2 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ addCustomer.html
āđāļāļĢāđāļāļĢāļĄ addCustomer.html āđāļāļāđāļ§āļāđāļāļāļāđāļāđāļŠāļāļāļāļāļĢ5āļĄāļŠ.āļēāļŦāļĢāļāļ%āļāļāļāļāļĄ#āļĨāļĨ#āļāļāļē āđāļāļēāđāļāļāļēāļāļāļāļĄ#āļĨ
customers āļ,āļāļāļ°āļŠāļĢāļēāļāļ,āļāđāļāđāļāļāļāļāļŦāļāļāļāđāļ āđāļāļĒāļĄāļĢ#āļāđāļāļāļāļāļĢ#āļāļ 1.5 āđāļāļĢāđāļāļĢāļĄ addBook.html āļĄāļāļāļāļāļāļāļēāļĢ
āļāļāļāļēāļāļāļ
1. āđāļĨāļāļāļŦāļāļēāļ/āļēāļ Projects āđāļĨāļ§āļāļĨ0;āļāļāļ§āļēāļāđāļŦāļāļ WebApp āļāļēāļāļāļāđāļĨāļāļāļ.āļēāļŠāļ New > Other
2. āđāļāđāļāļāļ°āļĨāļāļ New File āđāļŦāđāļĨāļāļ Categories āļāļāļ Web āļ,āļāđāļāļĢāđāļāļĢāļĄāļāļāļ°āđāļŠāļāļ File Types āļ/āļēāļāđ āļ āļēāļĒ
āđāļ Category āļ āđāļŦāđāļĢāļēāđāļĨāļāļ HTML āđāļĨāļ§āļāļ Next
3. āļ.āļēāļŦāļāļ HTML File Name: āđāļāļ addCustomer āđāļĨāļ§āļāļ Finish
4. āđāļāļĒāļ source code āļāļāļāđāļāļĨ5 addCustomer.html āļāļēāļĄ Listing āļ 1.1 āđāļāļĒāđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļāļāļ°āļĨāļēāļ icon
āļāļĢāļ°āđāļ āļ HTML Forms āļāļāļĒ#/āđāļāļŦāļāļēāļ/āļēāļ Palette āđāļāļāļŠāļēāļĄāļēāļĢāļāđāļŦāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļ/āļēāļĒāļ,āļ
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
8. 8
āļĢāļāļ 1.5 āļŦāļāļēāđāļ§āļāđāļāļ addCustomer.html
Listing āļ 1.1 āđāļāļĢāđāļāļĢāļĄ addCustomer.html
<html>
<head>
<title> Add Customer </title>
</head>
<body>
<H1> Add a new customer profile </H1>
<p>
<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>
1.3 āļāļēāļĢāļāļāļŠāļāļāđāļāļĢāđāļāļĢāļĄ
1. āļ.āļēāļāļēāļĢ Clean and Build āđāļĨāļ° Undeploy and Deploy āđāļāļĢāđāļāļĢāļĄ WebApp
2. Run āđāļāļĢāđāļāļĢāļĄ WebApp
3. āļ Web Browser āđāļāļĨāļĒāļ URL āđāļāļ http://localhost:8080/WebApp/addCustomer.html āļāļ°āđāļ
āļāļĨāļĨāļāļ5āļāļāļĢ#āļāļ 1.6
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
10. 10
Exercise 2 āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servlet āđāļāļāļ!āļēāļāļ!āļē
āļāļēāļĢāļēāļĄ"āđāļāļāļĢ
āđāļāļāļŦāļēāļāļāļāļāļĻāļāļĐāļēāļāļāļ āļāļēāļĢāļŠāļĢāļēāļāđāļāļĢāđāļāļ Web Application āđāļĨāļ°āļŠāļĢāļēāļāđāļāļĨ5 HTML
āđāļāļāļāļāļŦāļāļāļāļ°āđāļāļāļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ Java Servlet āđāļāļāđāļŠāļāļāļĢāļēāļĒāļĨāļ°āđāļāļĒāļāļāļāļāļ/āļēāļāļēāļĢāļēāļĄ0āđāļāļāļĢ5āļāļ#āđāļ
āļ%āļāļāđāļāļēāļĄāļēāļāļāļāļāļēāļāđāļāļĢāđāļāļĢāļĄ Web Browser āđāļĨāļ°āđāļŠāļāļāļāļĨāļāļēāļĢāļāļāļāļāļāļāļāļēāļ Web Browser
2.1 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ CustomerServlet.java
āđāļāļĢāđāļāļĢāļĄ CustomerServlet.java āđāļāļāđāļāļĢāđāļāļĢāļĄāļāļ#āļāđāļĢāļĒāļāđāļāđāļāļĒ addCustomer.html āđāļĄāļāļ#āđāļāļāļāļ16āļĄ
Add āđāļāļĢāđāļāļĢāļĄāļāļāļ°āļ.āļēāļŦāļāļēāļāļ.āļēāļ/āļēāļāļēāļĢāļēāļĄ0āđāļāļāļĢ5āļ/āļēāļāđ āļāļ#āđāļāļ%āļāļāļĄāļēāđāļŠāļāļāļāļĨ āđāļāļĒāļĄāļāļāļāļāļāļāļēāļĢāļ.āļēāļāļēāļāļāļāļ
1. āļ/āļēāļāļ/āļēāļāļēāļĢāļēāļĄ0āđāļāļāļĢ5āļ/āļēāļāđ āļāļŠ/āļāļĄāļēāļāļēāļ addCustomer.html
2. āđāļŠāļāļāļĢāļēāļĒāļĨāļ°āđāļāļĒāļāļāļāļāļ/āļēāļ/āļēāļāđ
2.1.1 āļāļēāļĢāļ/āļēāļāļ/āļēāļāļēāļĢāļēāļĄ0āđāļāļāļĢ5āļāļēāļ addCustomer.html
āđāļ§āļāđāļāļ addCustomer.html āļāļ°āļŠ/āļāļāļāļĄ#āļĨāļāļāļāļĢāļēāļĒāļāļāļŦāļāļāļŠāļāđāļŦāļĄ/āļ/āļēāļāļĄāļēāļāļēāļāļāļēāļĢāļēāļĄ0āđāļāļāļĢ5āļ/āļēāļāđ āļāļāļ
â id āļĢāļŦāļŠāļāļāļāļĨ#āļāļāļē
â name āļāļāļĨ#āļāļāļē
â addr āļāļāļĒ#/āļĨ#āļāļāļē
â mobile āļŦāļĄāļēāļĒāđāļĨāļāđāļāļĢāļĻāļāļ5āļĄāļāļāļ
â fax āļŦāļĄāļēāļĒāđāļĨāļ fax
â email āļāļāļāļĨ#āļāļāļē
āļāļēāļĢāļēāļĄ0āđāļāļāļĢ5āļ/āļēāļāđ āđāļŦāļĨ/āļēāļāļāļ°āļ#āļāļŠ/āļāļ/āļēāļāđāļāļĢāđāļāļāļāļĨ Http āđāļĨāļ°āđāļāđāļāļĢāđāļāļĢāļĄāđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļāļāļ°āļ/āļēāļāļ/āļēāļāļēāļĢāļē-
āļĄ0āđāļāļāļĢ5āđāļŦāļĨ/āļēāļāđāļāļāļēāļāļāļāļāđāļāļ 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 Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
11. 11
2.1.2 āļāļēāļĢāđāļŠāļāļāļĢāļēāļĒāļĨāļ°āđāļāļĒāļāļāļāļāļ/āļēāļ/āļēāļāđ
āđāļāļĢāđāļāļĢāļĄ Servlet āļāļ°āļŠāļēāļĄāļēāļĢāļāđāļŠāļāļāļāļĨāļāļāļāļāļēāļ Web Browser āđāļāđāļāļĒāļāļēāļĢāđāļāļĒāļāđāļāļ HTML āļ āļēāļĒāđāļ āļ.āļēāļŠāļ
out.println() āđāļāļĒāļĄāļ.āļēāļŠāļāđāļāđāļĄāļāļāļ processRequest() āļāļāļ
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
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();
2.2 āļāļāļāļāļāļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ CustomerServlet.java
āđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļāļāļ°āļāļāļāļēāđāļāļĢāđāļāļĢāļĄ CustomerServlet.java āļāļēāļĄāļāļāļāļāļāļāļāļ
1. āđāļĨāļāļāļŦāļāļēāļ/āļēāļ Projects āđāļĨāļ§āļāļĨ0;āļāļāļ§āļēāļāđāļŦāļāļ WebApp āļāļēāļāļāļāđāļĨāļāļāļ.āļēāļŠāļ New > Other...
2. āđāļāđāļāļāļ°āļĨāļāļ New File āđāļŦāđāļĨāļāļ Categories āļāļāļ Web āļ,āļāđāļāļĢāđāļāļĢāļĄāļāļāļ°āđāļŠāļāļ File Types āļ/āļēāļāđ āļ āļēāļĒ
āđāļ Category āļ āđāļŦāđāļĢāļēāđāļĨāļāļ Servlet āđāļĨāļ§āļāļ Next āļāļāļĢ#āļāļ 2.1
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
12. 12
āļĢāļāļ 2.1 āļāļēāļĢāđāļĨāļāļāđāļāļĨ!āļāļĢāļ°āđāļ āļ Servlet
3. āļ.āļēāļŦāļāļ Class Name: āđāļāļ CustomerServlet āđāļĨāļ°āļ.āļēāļŦāļāļ Package āđāļāļ servlet āļāļāļĢ#āļāļ 2.2
āļĢāļāļ 2.2 āļāļēāļĢāļāļēāļŦāļāļāļāļ Servlet
4. āļāļ Next āļ.āļēāļŦāļāļ URL Pattern(s): āđāļāļ /addCustomer.do āļāļāļĢ#āļāļ 2.3
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
13. 13
āļĢāļāļ 2.3 āļāļēāļĢāļāļēāļŦāļāļ URL Pattern
5. āļāļ Finish āđāļāļĢāđāļāļĢāļĄ NetBeans āļāļ°āļŠāļĢāļēāļāđāļāļĨ5 CustomerServlet.java āđāļ§āļ āļēāļĒāđāļ Source Packages
āđāļāļĒāļāļ°āļāļĒ#/āđāļ Directory āļāļ servlet
6. āđāļāļŦāļāļēāļ/āļēāļ editor āđāļŦāđāļāđāļ sourcecode āļāļāļāđāļāļĨ5 CustomerServlet.java āđāļāļĒāļĄ source code āļāļāļ
āđāļĄāļāļāļ processRequest āļāļēāļĄāļŦāļ§āļāļ 2.1.2
2.3 āļāļēāļĢāļāļāļŠāļāļāđāļāļĢāđāļāļĢāļĄ
1. āļ.āļēāļāļēāļĢ Build āđāļĨāļ° Deploy āđāļāļĢāđāļāļĢāļĄ WebApp
2. Run āđāļāļĢāđāļāļĢāļĄ WebApp
3. āļ Web Browser āđāļāļĨāļĒāļ URL āđāļāļ http://localhost:8080/WebApp/addCustomer.html
4. āļāļāļĨāļāļāļ%āļāļāļāļāļĄ#āļĨāļāļāļĢ#āļ
5. āđāļāļĢāđāļāļĢāļĄāļāļ°āđāļŠāļāļāļāļĨāļāļāļĢ/āļāļ! 2.4 āđāļĨāļ° 2.5
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
14. 14
āļĢāļāļ 2.4 āļāļēāļĢāļ+āļāļāļāļāļĄāļĨāļŦāļāļē addCustomer.html
āļĢāļāļ 2.5 āļāļĨāļĨāļāļ!āļāļēāļāļāļēāļĢāđāļĢāļĒāļāđāļāļĢāđāļāļĢāļĄ CustomerServlet
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
15. 15
2.4 āļāļēāļĢāļāļĢāļāļāļĢāļāđāļāļĢāđāļāļĢāļĄāđāļāļāđāļŦāđāļŠāļāļāļāļĨāļ āļēāļĐāļēāđāļāļĒāđāļĨāļ°āđāļĢ%āļĒāļāđāļāļĨ' addCustomer.html āđāļĄāļāđāļĢ(āļĄāļāļ
āđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļ!āļāļ°āļāļĢāļāļāļĢ'āļāđāļāļĢāđāļāļāļ&āđāļ!āļāđāļŦāđāļĢāļĒāļāđāļāļĨ addCustomer.html āđāļāļĒāļāļāđāļāļĄāļ#āđāļĄ!āļāđāļĢ#!āļĄāļāļāļĢāļ
āđāļāļĢāđāļāļĢāļĄ āđāļāļĒāļāļēāļĢāļ.āļēāļŦāļāļāļāļēāļĢāļēāļĄ#āđāļāļāļĢ Welcome Files āđāļŦāđāļ6āļāđāļāļĨāļāļāļāļĨ"āļēāļ§ āđāļāļĒāļĄāļ&āļāļāļāļāļāļāļ&
1. āđāļāļŦāļāļēāļ/āļēāļ Projects āļāļĒāļēāļĒāđāļŦāļāļ WebApp > Web Pages > WEB-INF
2. āđāļĨāļāļāđāļāļĨ5 web.xml āđāļĨāļ§āđāļĨāļāļāđāļāļ Pages āļ.āļēāļāļēāļĢāđāļāđāļ Welcome Files āđāļāļ addCustomer.html āļāļ
āļĢ#āļāļ 2.6
āļĢāļāļ 2.6 āļāļēāļĢāļāļāļāļēāļĢāđāļāļĨ! web.xml
āļāļāļāļāļēāļāļāļāļēāđāļĢāļēāļāļāļĨāļāļāļ%āļāļāļāļāļĄ#āļĨāļ āļēāļĐāļēāđāļāļĒ āļĨāļāđāļāđāļāļāļ°āļāļāļ§/āļē āđāļāļĢāđāļāļĢāļĄ Web Browser āļāļēāļāļāļ§āļāļ°āđāļŠāļāļ
āļāļĨāļĨāļāļ5āļ āļēāļĐāļēāđāļāļĒāđāļĄ/āļ#āļāļāļāļ āđāļĢāļēāļŠāļēāļĄāļēāļĢāļāđāļāđāļāđāļāđāļāļĒāļāļēāļĢāļ.āļēāļŦāļāļāđāļŦāļāļēāļĢāđāļāļēāļĢāļŦāļŠāļāļāļāļāļēāļĢāļēāļĄ0āđāļāļāļĢ5āļāļŠ/āļāļĄāļēāđāļāļ UTF-
8 āđāļāļĒāđāļ0āļĄāļ.āļēāļŠāļāļāļāļ
request.setCharacterEncoding("UTF-8");
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
16. 16
Exercise 3 āđāļāļĢāđāļāļĢāļĄāđāļ§āļāļŠ%āļēāļŦāļĢāļāļāļēāļĢāļ%āļēāđāļāļĨ
āđāļāļāļŦāļēāļāļāļāļāļĻāļāļĐāļēāļāļāļ āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servlet āđāļāļāļ/āļēāļāļ/āļēāļāļēāļĢāļēāļĄ0āđāļāļāļĢ5
āđāļāļāļāļāļŦāļāļāļāļ°āđāļāļāļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ Java Servlet āđāļāļāļ.āļē Poll āđāļāļĒāđāļŦāļ#āđāļāļŠāļēāļĄāļēāļĢāļāļāļāļ°āđāļŦāļ§āļāđāļĨāļāļ
āļ āļēāļĐāļēāļāļāļĄāļ0āļ§āđāļāļāļĢ5āļāļāļāļāđāļ āđāļĨāļ§āđāļāļĢāđāļāļĢāļĄāļāļ°āđāļŠāļāļāļāļĨāļāļēāļĢāđāļŦāļ§āļāļāļēāļ Web Browser
3.1 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ vote.html
āđāļāļĢāđāļāļĢāļĄ vote.html āđāļāļāļŦāļāļēāđāļ§āļāļāđāļŦāļ#āđāļāļŠāļēāļĄāļēāļĢāļāļāļāļ°āļ.āļēāļāļēāļĢāđāļŦāļ§āļāđāļĨāļāļāļ āļēāļĐāļēāļāļāļĄāļ0āļ§āđāļāļāļĢ5āđāļ āđāļāļĒāđāļĄāļāļ#
āđāļāļāļāļ16āļĄ Vote āđāļāļĢāđāļāļĢāļĄāđāļ§āļāļāļāļ°āđāļāļ.āļēāļāļēāļĢāđāļĢāļĒāļ url āļāļāļ processVote āđāļāļĢāđāļāļĢāļĄāļāļĄāļŦāļāļēāđāļ§āļāļāļāļĢ#āļāļ 3.1
āļĢāļāļ 3.1 āļāļēāļĢāđāļŠāļāļāļāļĨāļāļāļāđāļāļĢāđāļāļĢāļĄ vote.html
āđāļĨāļ°āļĄ sourcecode āļāļ 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>
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
17. 17
<input type="submit" value="Vote" />
</form>
</body>
</html>
3.2 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ VoteServlet.java
āđāļāļĢāđāļāļĢāļĄ VoteServlet.java āđāļāļāđāļāļĢāđāļāļĢāļĄāļāļ#āļāđāļĢāļĒāļāđāļāđāļāļĒ vote.html āđāļĄāļāļ#āđāļāļāļāļ16āļĄ Vote āđāļāļĢāđāļāļĢāļĄ
āļāļāļ°āļ.āļēāļŦāļāļēāļāđāļāļāļ.āļēāļ/āļēāļāļ#āđāļāđāļŦāļ§āļāļĄāļēāļāļĢāļ°āļĄāļ§āļĨāļāļĨ āđāļāļĒāļĄāļāļāļāļāļāļāļēāļĢāļ.āļēāļāļēāļāļāļāļ
1. āļ.āļēāļŦāļāļāļāļ§āđāļāļĢ counter āđāļĨāļ° lang
2. āļ/āļēāļāļ/āļēāļāļēāļĢāļēāļĄ0āđāļāļāļĢ5āļ/āļēāļāđāļāļŠ/āļāļĄāļēāļāļēāļ vote.html āđāļĨāļ°āļ.āļēāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ
3. āđāļŠāļāļāļāļĨāļāļēāļĢāđāļŦāļ§āļ
3.2.1 āļ.āļēāļŦāļāļāļāļ§āđāļāļĢ counter āđāļĨāļ° lang
āļāļ§āđāļāļĢ count āđāļāļāļāļ°āđāļĢāļĒ5āđāļāļāļāļāļ°āđāļāļāļ.āļēāļāļ§āļāļāļĨāđāļŦāļ§āļāļāļāļāļ āļēāļĐāļēāļāļāļĄāļ0āļ§āđāļāļāļĢ5āđāļ/āļĨāļ°āļ āļēāļĐāļē āđāļĨāļ°āļāļ§āđāļāļĢ lang
āđāļāļāļāļ°āđāļĢāļĒ5āļāļāļ String āđāļāļāļāļāļ°āđāļāļāļĢāļēāļĒāļāļāļ āļēāļĐāļēāļāļāļĄāļ0āļ§āđāļāļāļĢ5 āļāļ§āđāļāļĢāļāļāļŠāļāļāđāļāļāļāļ§āđāļāļĢāļāļāļāļāļāļāđāļāļāļāļāļ°āļāļĢāļ°āļāļēāļĻ
āļāļāļāđāļĄāļāļāļ āđāļāļĒāļĄāļ.āļēāļŠāļāļāļĢāļ°āļāļēāļĻāļāļāļ
String []lang ={"Java", "C#", "C", "Pascal"};
int []count = new int[4];
3.2.2 āļ/āļēāļāļ/āļēāļāļēāļĢāļēāļĄ0āđāļāļāļĢ5āļ/āļēāļāđāļāļŠ/āļāļĄāļēāļāļēāļ vote.html āđāļĨāļ°āļ.āļēāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ
āđāļ§āļāđāļāļ vote.html āļāļ°āļŠ/āļāļāļāļĄ#āļĨāļāļāļāļāļēāļĢāđāļŦāļ§āļāļĄāļēāđāļāļāļēāļĢāļēāļĄ0āđāļāļāļĢ5āļāļāļ lang āđāļāļĒāļāļ°āļĄāļ/āļēāđāļāļāļŦāļĄāļēāļĒāđāļĨāļ 1-
4 āđāļāļāļāļāļ°āļĄāļ.āļēāļŠāļ request.getParameter āđāļāļāļāļ°āļ/āļēāļāļ/āļēāļāđāļŦāļ§āļāļĄāļē āļāļēāļāļāļāļāļ°āļ.āļēāļāļēāļĢāđāļāļĨāļāļ/āļēāļ,āļāđāļāļ String āđāļŦ
āđāļāļāļ/āļēāļ.āļēāļāļ§āļāđāļāļĄ āļāļēāļāļāļāļāļ°āđāļāļāļāļēāļĢāđāļ0āļĄāļ.āļēāļāļ§āļāđāļŦāļ§āļāđāļāļāļ§āđāļāļĢ 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 Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
18. 18
}
āđāļāļĢāđāļāļĢāļĄ VoteServlet.java āļāļ°āļĄ sourcecode āļāļ Listing āļ 3.2
Listing āļ 3.2 āđāļāļĢāđāļāļĢāļĄ VoteServlet.java
import java.io.*;
import java.util.HashSet;
import javax.servlet.*;
import javax.servlet.http.*;
public class VoteServlet extends HttpServlet {
String []lang ={"Java", "C#", "C", "Pascal"};
int []count = new int[4];
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
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 Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
19. 19
public String getServletInfo() {
return "Short description";
}
// </editor-fold>
}
3.3 āļāļāļāļāļāļāļēāļĢāļāļāļāļēāđāļāļĢāđāļ*āļ Voter
āđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļāļāļ°āļāļāļāļēāđāļāļāļāļāļŦāļāļāļāļāļāđāļāļĢāđāļāļ Voter āļāļēāļĄāļāļāļāļāļāļāļāļ
1. āđāļĨāļāļāļ.āļēāļŠāļāļŠāļĢāļēāļ New Project > Web Application āļāļēāļāļāļāļ.āļēāļŦāļāļāļāļāđāļāļĢāđāļāļāđāļāļ Voter āļāļāļĢ#āļāļ 3.2
āļĢāļāļ 3.2 āļāļēāļĢāļŠāļĢāļēāļāđāļāļĢāđāļāļ Web Application
2. āđāļĨāļāļāļŦāļāļēāļ/āļēāļ Projects āđāļĨāļ§āļāļĨ0;āļāļāļ§āļēāļāđāļŦāļāļ Voter āļāļēāļāļāļāđāļĨāļāļāļ.āļēāļŠāļ New > Other...
3. āđāļāđāļāļāļ°āļĨāļāļ New File āđāļŦāđāļĨāļāļ Categories āļāļāļ Java Web āļ,āļāđāļāļĢāđāļāļĢāļĄāļāļāļ°āđāļŠāļāļ File Types āļ/āļēāļāđ
āļ āļēāļĒāđāļ Category āļ āđāļŦāđāļĢāļēāđāļĨāļāļ HTML āđāļĨāļ§āļāļ Next
4. āļ.āļēāļŦāļāļ HTML File Name: āđāļāļ vote āđāļĨāļ§āļāļ Finish
5. āđāļāļŦāļāļēāļ/āļēāļ Editor āđāļāļĒāļ Source code āļāļāļ vote.html āļāļ Listing āļ 3.1
6. āđāļĨāļāļāļŦāļāļēāļ/āļēāļ Projects āđāļĨāļ§āļāļĨ0;āļāļāļ§āļēāļāđāļŦāļāļ Voter āļāļēāļāļāļāđāļĨāļāļāļ.āļēāļŠāļ New > Servlet
7. āļ.āļēāļŦāļāļ Class Name: āđāļāļ VoteServlet.java āđāļĨāļ° Package āđāļāļ controller āđāļĨāļ§āļāļ Next āļ.āļēāļŦāļāļ
URL Pattern(s): āđāļāļ /processVote āđāļĨāļ§āļāļ Finish
8. āđāļāļŦāļāļēāļ/āļēāļ Editor āđāļāļĒāļ Source code āļāļāļ VoteServlet.java āļāļ Listing āļ 3.2
9. āļāļ Save āđāļĨāļ§āļ.āļēāļāļēāļĢ run āđāļāļĢāđāļāļāđāļāļāļāļāļŠāļāļāđāļāļĢāđāļāļĢāļĄāđāļāļĒāđāļĢāļĒāļ URL āļ
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
20. 20
http://localhost:8080/Voter/vote.html āđāļāļĒāļāļ°āđāļāļāļĨāļĨāļāļ5āļāļāļāļ§āļāļĒ/āļēāļāđāļāļĢ#āļāļ3.3
āļĢāļāļ 3.3 āļāļ§āļāļĒ-āļēāļāļāļĨāļĨāļāļ!āļāļāļāđāļāļĢāđāļāļ Voter
3.4 āļāļēāļĢāļāļĢāļāļāļĢāļāđāļāļĢāđāļāļĢāļĄ VoteServlet.java
āļāļāļāļāļāļāļāļ°āđāļāļāļāļēāļĢāļāļĢāļāļāļĢ1āļāđāļāļĢāđāļāļĢāļĄ VoteServlet.java āđāļāļāļ%āļāļāļāļāļāļēāļĢāđāļŦāļ§āļāļ.āļēāļāļāļāļāļ°āđāļĄ/āļāļ1āļāļēāļāđāļŦ
āļ#āđāļāļāđāļāļŦāļĄāļēāļĒāđāļĨāļāđāļāļāđāļāļĒāļ§āļāļāđāļŦāļ§āļāļ.āļēāđāļ āđāļāļĒāļāļ°āđāļāļāļŦāļĄāļēāļĒāđāļĨāļāđāļāļāļāļ.āļēāļāļēāļĢāđāļŦāļ§āļāđāļĨāļ§āđāļāļāļāļāđāļāļāļāļ0āļ HashSet
āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄāļāļĄāļ.āļēāļŠāļāđāļ0āļĄāđāļ0āļĄāļāļŠ.āļēāļāļāļāļāļ
1. āļ.āļēāļŦāļāļāļāļ§āđāļāļĢ voters
2. āļ/āļēāļāļŦāļĄāļēāļĒāđāļĨāļāđāļāļāļāļāļāļ#āđāļŦāļ§āļāđāļĨāļ°āđāļ0āļĄāļāļ°āđāļāļāļāļēāļĢāđāļŦāļ§āļāļŦāļēāļāļŦāļĄāļēāļĒāđāļĨāļāđāļāļāļāđāļĄ/āđāļāļĒāđāļŦāļ§āļ
3.4.1 āļ.āļēāļŦāļāļāļāļ§āđāļāļĢ voters
āļāļ§āđāļāļĢ voters āđāļāļāļāļ§āđāļāļĢāļāļ0āļ HashSet āļāļāļ°āđāļāļāļŦāļĄāļēāļĒāđāļĨāļāđāļāļāļāļāļāļ#āđāļŦāļ§āļ āđāļāļĒāļāļ°āļāļĢāļ°āļāļēāļĻāđāļāļāļāļ§āđāļāļĢ
āļāļāļāđāļāļāļāļĄāļ.āļēāļŠāļāļāļĢāļ°āļāļēāļĻāļāļāļ
HashSet voters = new HashSet();
3.4.2 āļāļēāļĢāļ/āļēāļāļŦāļĄāļēāļĒāđāļĨāļāđāļāļāļāļāļāļ#āđāļ
āļāļēāļĢāļ/āļēāļāļŦāļĄāļēāļĒāđāļĨāļāđāļāļāļāļāļāļ#āđāļāļ.āļēāđāļāđāļāļĒāđāļĢāļĒāļāđāļ āļ.āļēāļŠāļ getRemoteAddr() āđāļāļāļāļāđāļāļ request āđāļĄāļ
āļāļĢāļēāļāļŦāļĄāļēāļĒāđāļĨāļāđāļāļ āđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļāļāļ°āļāļĢāļ§āļāļŠāļāļāđāļāļ§/āļēāļŦāļĄāļēāļĒāđāļĨāļāļāđāļāļĒāđāļŦāļ§āļāđāļĨāļ§āļŦāļĢāļāđāļĄ/ āđāļāļĒāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļ§/āļēāļāļāļāđāļāļ
voters āļĄāļ/āļēāļŦāļĄāļēāļĒāđāļĨāļāđāļāļāļāļŦāļĢāļāđāļĄ/āđāļāļĒāđāļāļ.āļēāļŠāļ contain() āļŦāļēāļāļĒāļāđāļĄ/āđāļāļĒāđāļŦāļ§āļāļāđāļŦāđāļ0āļĄāļ/āļēāļāļ§āļāļāđāļĨāļ°āđāļ0āļĄāļŦāļĄāļēāļĒāđāļĨāļ
āđāļāļāļāđāļāļāļāļāđāļāļ voters āđāļāļĒāļĄāļ.āļēāļŠāļāļāļāļ
String ip = request.getRemoteAddr();
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
21. 21
if (!voters.contains(ip)) {
count[voteNum]++;
voters.add(ip);
} else {
out.println("This IP address has been voted");
}
āļŠ.āļēāļŦāļĢāļāđāļāļĢāđāļāļĢāļĄ VoteServlet.java āļāļāļĢāļāļāļĢ1āļāđāļŦāļĄ/āļāļ°āļĄ sourcecode āļāļ Listing āļ 3.3
Listing āļ 3.3 āđāļāļĢāđāļāļĢāļĄ VoteServlet.java āđāļāļāļ%āļāļāļāļāļāļēāļĢāđāļŦāļ§āļāļ.āļē
import java.io.*;
import java.util.HashSet;
import javax.servlet.*;
import javax.servlet.http.*;
public class VoteServlet extends HttpServlet {
String []lang ={"Java", "C#", "C", "Pascal"};
int []count = new int[4];
HashSet voters = new HashSet();
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String vote = request.getParameter("lang");
int voteNum = Integer.parseInt(vote) - 1;
String ip = request.getRemoteAddr();
if (!voters.contains(ip)) {
count[voteNum]++;
voters.add(ip);
} else {
out.println("This IP address has been voted");
}
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();
}
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
22. 22
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 Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
23. 23
Exercise 4 āļāļēāļĢāđāļāļāļĄāļ!āļāļāļ MySQL Database
āđāļāļāļŦāļēāļāļāļāļāļĻāļāļĐāļēāļāļāļ -
āđāļāļāļ8āļāļŦāļāļ&āđāļ6āļāļ&āļāļāļāļāļāļēāļĢāļ#āļāļ&āļ NetBeans āđāļ!āļāđāļ!āļāļĄāļ"āļāļāļāđāļāļĢāđāļāļĢāļĄāļāļēāļāļāļāļĄ/āļĨ MySQL āļ!āđāļ6āļ
āđāļāļĢāđāļāļĢāļĄāļāļēāļāļāļāļĄ/āļĨ OpenSource āđāļāļ FreeWare āļ:!āļāļāļāļ#āļāļ°āļĄāļāļ§āļāļĒ"āļēāļāļāļēāļāļāļāļĄ/āļĨāļ!āļŠāļĢāļēāļāļĄāļēāļāļĢāļāļĄāđāļĨāļ§āļāļĒ/"āļŦāļĨāļēāļĒ
āļ'āļ āļŦāļ:!āļāđāļāļ&āļāļāļāļāļēāļāļāļāļĄ/āļĨāļ!āļ!āļ test āļ!āđāļĢāļēāļāļ°āđāļāđāļāļāļēāļĢāļāļāļŠāļāļāļāļēāļĢāđāļ!āļāļĄāļ"āļāļāļāđāļāļĢāđāļāļĢāļĄ NetBeans
4.1 āļāļēāļĢāļ(āļāļāļāđāļāļĢāđāļāļĢāļĄāļāļēāļāļāļāļĄ-āļĨ MySQL
āļāļāļāļāļāļāđāļāļāļāļēāļĢāļ0āļāļāļāđāļāļĢāđāļāļĢāļĄ MySQL Server 5.0 āđāļāļĒāļĄāļāļāļāļāļāļāļāļ
1. āļ.āļēāļāļēāļĢāļāļēāļ§āļ5āđāļŦāļĨāļāđāļāļĢāđāļāļĢāļĄ MySQL Server 5.0 āļāļēāļ URL āļāļāļ http://www.mysql.com/
2. āļ.āļēāļāļēāļĢ unzip āđāļāļĢāđāļāļĢāļĄ mysql-5.0.xx-win32.zip
3. āļĢāļāđāļāļĢāđāļāļĢāļĄ setup.exe āđāļāļāļ.āļēāļāļēāļĢāļ0āļāļāļāđāļāļĢāđāļāļĢāļĄ MySQL Server 5.0 āđāļāļĒāđāļāļĢāđāļāļĢāļĄāļāļ°āđāļŠāļāļ
āđāļāļāļ°āļĨāļāļāļāļāļĢ#āļāļ 4.1
āļĢāļāļ 4.1 āļāļēāļĢāļāļāļāļ MySQL Server
4. āļāļāļ16āļĄ Next āđāļĨāļ§āļ.āļēāļāļēāļĢāļ0āļāļāļāđāļāļĢāđāļāļĢāļĄāļāļēāļĄāļāļāļāļāļāļ/āļēāļāđ āđāļāļĒāđāļŦāļ.āļēāļŦāļāļāđāļāđāļĢāļāļāļāļĢāļāļāļāļāļāļēāļĢāļ0āļāļāļāļāļēāļĄ
āļāļ§āļēāļĄāđāļŦāļĄāļēāļ°āļŠāļĄ
4.2 āļāļēāļĢāļŠāļĢāļēāļ Database Connection
āđāļĄ!āļāļ#āļāļ&āļ Database āđāļĨāļ§ āđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļ!āļāļ°āđāļ NetBeans āđāļ!āļāđāļ!āļāļĄāļ"āļ Database āđāļāļĒāđāļ JDBC Driver
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
24. 24
āļ:!āļāđāļāļ!āļ&āļāļ°āđāļ Driver āļ!āļ!āļ MySQL Connector/J āļ:!āļāđāļ6āļ Driver āļ!āļāļāļāļēāđāļāļĒāđāļāļ āļēāļĐāļēāļāļēāļ§āļēāđāļĨāļ°āļ#āļāļ"āļāđāļāļĒāļāļĢāļ
āļāļ Database āđāļĨāļ°āđāļāļĢāđāļāļĢāļĄ NetBeans 6.5 āđāļāļ#āļāļ&āļāļĄāļēāđāļ§āđāļŦāđāļĨāļ§ āđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļ!āļāļ°āđāļ!āļāļĄāļ"āļāļāļ Database āđāļāļĒāđāļ
Driver āļāļāļāļĨ"āļēāļ§āđāļ āđāļāļĒāļĄāļ&āļāļāļāļāļāļāļ&
1. āđāļāđāļāļĢāđāļāļĢāļĄ NetBeans āđāļĨāļāļāđāļāļ Services āđāļĨāļ§āļāļĒāļēāļĒāđāļŦāļāļ Databases > Drivers
2. āđāļĨāļāļāđāļŦāļāļ MySQL(Connector/J Driver) āļāļēāļāļ&āļāļāļĨ#;āļāļāļ§āļēāđāļĨāļāļ Connect Using.. āļāļāļĢ/āļāļ! 4.2
āļĢāļāļ 4.2 āļāļēāļĢāđāļĨāļāļāļāļēāļŠāļāđāļāļāļĄāļ-āļ Database
3. āđāļāđāļāļāļ°āļĨāļāļ New Database Connection āđāļŦāļĢāļ°āļ'
â Host: āđāļ6āļ localhost
â Port: āđāļ6āļ 3306
â Database: āđāļ6āļ test
â User Name: āđāļ6āļ root
4. āļŠ.āļēāļŦāļĢāļ Password: āđāļŦāđāļŠ"āļ"āļēāļāļēāļĄāļ!āļ.āļēāļŦāļāļāđāļ§āđāļāļāļāļāļ#āļāļ&āļāđāļāļĢāđāļāļĢāļĄ MySQL āļ:!āļāđāļāļ!āļ&āļāļ°āļĄāļ"āļēāđāļ6āļ
root
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
25. 25
5. āļ.āļēāļāļēāļĢāđāļĨāļāļ Remember password āđāļāļĒāđāļāļāļ°āļĨāļāļāļāļ°āđāļŠāļāļāļāļĨāđāļāļāļāļĢ/āļāļ! 4.3
āļĢāļāļ 4.3 āļāļēāļĢāļāļēāļŦāļāļāļ-āļēāđāļāļāļēāļĢāđāļāļāļĄāļ-āļ Database
6. āļāļāļ'<āļĄ OK āđāļĄ!āļāđāļāļāļ°āļĨāļāļāđāļŠāļāļāļāļāļāļ§āļēāļĄāđāļŦāđāļĨāļāļ database schema.āđāļŦāļāļāļ'<āļĄ OK āļāļāļāļĢ&āļāļ:!āļāļāļāļāļ&āļāļē
āļāļĒāļēāļĒāđāļāļ Database āđāļāļŦāļāļēāļ"āļēāļ Runtime āļāļ°āđāļŦāļ Connection āđāļŦāļĄ"āļāļāļĢ/āļāļ! 4.4
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
26. 26
āļĢāļāļ 4.4 āļāļēāļĢāđāļŠāļāļāļāļēāļĢāđāļāļāļĄāļ-āļ
4.3 āļāļēāļĢāļŠāļĢāļēāļāļāļēāļĢāļēāļ books
āđāļāļ!āļ&āļāļ°āļ.āļēāļŦāļāļāđāļŦāļŠāļĢāļēāļ Table āļ!āļ!āļ books āđāļāļĒāđāļŦāļāļĒ/"āļ āļēāļĒāđāļ Schema āļ!āļ!āļ test āđāļāļĒ Table āļ&āļ.āļēāļŦāļāļ
āđāļŦāļĄ Column āļ"āļēāļāđ āļāļāļāļēāļĢāļēāļāļ! 4.1
āļāļēāļĢāļēāļāļ! 4.1Table books
āļāļ āļāļāļ āļāļāļēāļ
isbn varchar 20
title varchar 70
author varchar 50
price float -
āđāļĢāļēāļāļ°āđāļāđāļāļĢāđāļāļĄ NetBeans āđāļāļāļēāļĢāļ!āļāļ°āļŠāļĢāļēāļ Table āļ&āđāļāļĒāļĄāļ&āļāļāļāļāļ"āļēāļāđ āļāļāļ&
1. āđāļāļŦāļāļēāļ"āļēāļ Runtime āļāļĒāļēāļĒāđāļāļ Databases > jdbc:mysql://localhost:3306/test āđāļĨāļ§āļāļ°āđāļŦāļāļĢāļēāļĒāļāļēāļĢ
Tables
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
27. 27
2. āļāļĨ#;āļāļāļ§āļēāļ! Tables āđāļĨāļ§āđāļĨāļāļ Create Table... āļāļāļĢ/āļāļ! 4.5
āļĢāļāļ 4.5 āļāļēāļĢāđāļĨāļāļāļāļēāļŠāļāļŠāļĢāļēāļāļāļēāļĢāļēāļ
3. āļ āļēāļĒāđāļāđāļāļāļ°āļĨāļāļ Create Table āđāļŦāļ.āļēāļŦāļāļ Table Name āđāļ6āļ books āđāļĨāļ§āđāļŠ" Column āļ"āļēāļāđ āļāļāļāļēāļĢāļēāļāļ!
4.1 āđāļĨāļ°āļ.āļēāļŦāļāļāđāļŦ isbn āđāļ6āļ Key āđāļāļĒāđāļāļāļ°āļĨāļāļāļāļ°āđāļŠāļāļāļāļĨāđāļāļāļāļĢ/āļāļ! 4.6
āļĢāļāļ 4.6 āļāļēāļĢāļŠāļĢāļēāļāļāļēāļĢāļēāļāļāļ books
4. āđāļĨāļ§āļāļ OK āļ:!āļāļāļāļāļ&āđāļāļŦāļāļēāļ"āļēāļ Runtime āļāļēāļāļĒāļēāļĒāđāļāļ Tables > books āļāļ°āđāļŦāļ Column āļ"āļēāļāđ āļāļāļĢ/āļ
āļ! 4.7
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
28. 28
āļĢāļāļ 4.7 āļāļĨāļĨāļāļ!āļāļēāļāļāļēāļĢāļŠāļĢāļēāļāļāļēāļĢāļēāļ
4.4 āļāļēāļĢāđāļāļ/āļēāļŠāļ SQL āđāļ NetBeans
āļ āļēāļĒāļŦāļĨāļāļāļēāļāļ!āļĄāļāļēāļĢāļŠāļĢāļēāļ Table āļ!āļ!āļ books āđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļ!āļāļ°āđāļāđāļāļĢāđāļāļĢāļĄ NetBeans āļŠāļĢāļēāļāļ.āļēāļŠ!āļ SQL
āđāļ!āļāļ!āļāļ°āļ#āļāļ"āļāļāļāļāļēāļāļāļāļĄ/āļĨ āđāļāļ!āļ&āļāļ°āđāļŠāļāļāļāļēāļĢāđāļ#!āļĄāļāļāļĄ/āļĨāļĨāļāđāļ Table āđāļāļĒāļĄāļ&āļāļāļāļāļ"āļēāļāđāļāļāļ&
1. āļāļĢāļāđāļŦāļāļ Procedures āļāļĨ#;āļāļāļ§āļēāļ!āđāļŦāļāļāđāļĨāļ§āđāļĨāļāļāļ.āļēāļŠ!āļ Execute Command... āļŦāļāļēāļ"āļēāļ SQL Editor
āļāļ°āļāļĢāļēāļāļāļ:&āļāļĄāļē
2. āđāļŦāļ>āļāļāļ.āļēāļŠ!āļ SQL āđāļ6āļ
INSERT INTO books VALUES ('123', 'Intro to Java Programming', 'Thanachart', 500.00)
3. āļāļ Enter āļŦāļĢāļ (Ctrl-Shift-E) āđāļ!āļāļĢāļāļ.āļēāļŠ!āļ SQL
4. āđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļ!āļāļ°āļ/āļāļāļĄ/āļĨāļ!āļ>āļāļāđāļāļēāđāļāđāļ āđāļāļĒāđāļĨāļāļāļ.āļēāļŠ!āļ View Data.. āļāļēāļ Table āļ!āļ!āļ books āļāļāļĢ/āļāļ! 4.8
āļĢāļāļ 4.8 āļāļēāļĢāđāļĢāļĒāļāļāļēāļŠāļāļāļāļāļĄāļĨāđāļāļāļēāļĢāļēāļ
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
29. 29
Exercise 5 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĄāđāļ§āļāđāļāļāļ"āļāļ!āļāļāļāļāļēāļāļāļāļĄ,āļĨ
āđāļāļāļŦāļēāļāļāļāļāļĻāļāļĐāļēāļāļāļ āļāļēāļĢāđāļāļāļĄāļ/āļāļāļ MySQL Database
āđāļāļāļāļāļŦāļāļāļāļ°āđāļāļāļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ Web Application āđāļāļĒāđāļ Java Servlet āđāļāļāđāļāļāļĄāļ/āļāļāļāļāļēāļ
āļāļāļĄ#āļĨ āđāļāļāļāļ.āļēāļŦāļāļāđāļŦāđāļāļāļēāļāļāļāļĄ#āļĨ MySQL āļ,āļāļĄ Table āļāļāļ books āđāļāļĢāđāļāļĢāļĄāļāļāļ°āļāļāļāļēāļ,āļāđāļāļāļāļēāļĢāđāļ0āļĄ
āļāļāļĄ#āļĨāļĨāļāđāļ Table āļāļāļāļĨ/āļēāļ§ āđāļāļĒāļ.āļēāļŦāļāļāđāļŦāļ#āđāļāļ%āļāļāļĢāļēāļĒāļĨāļ°āđāļāļĒāļāļāļāļĄ#āļĨāļ/āļēāļāđāļ§āļāđāļāļāļāļāļ addBook.html āļ,āļāđāļĄāļāļ#
āđāļāļāļāļ16āļĄ Add āđāļāļĢāđāļāļĢāļĄāļāļāļ°āđāļāđāļĢāļĒāļāđāļāļĢāđāļāļĢāļĄ Servlet āļāļāļ AddBookServlet āļ,āļāļāļ°āļĄāļ.āļēāļŠāļāđāļāļ/āļēāļāļ/āļē
parameter āļāļ#āđāļāļ%āļāļāđāļāļēāļĄāļēāđāļĨāļ°āļ.āļēāļāļēāļĢāđāļŠ/āļāļāļĄ#āļĨāļĨāļāđāļ Table āļāļāļāļĨ/āļēāļ§ āđāļāļĒāđāļāļ1āļāļ.āļēāļŠāļ JDBC
āļāļāļāļāļāđāļāļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ
1. āļŠāļĢāļēāļāđāļāļĢāđāļāļ WebBaseDB
2. āļāļāļāļēāđāļāļĢāđāļāļĢāļĄ addBook.html āđāļĨāļ° Thankyou.html
3. āļāļāļāļēāđāļāļĢāđāļāļĢāļĄ AddBookServlet.java
5.1 āļāļēāļĢāļŠāļĢāļēāļ Web Application Project
āđāļĢāļēāļāļ°āđāļĢ0āļĄāļāļāļŠāļĢāļēāļāđāļāļĢāđāļāļĢāļĄ Web-Base Database āđāļāļĒāļāļēāļĢāļŠāļĢāļēāļ Project āđāļŦāļĄ/āļ,āļāļĄāļēāđāļ NetBeans āļ,āļāļĄ
āļāļāļāļāļāļāļāļ
1. āđāļĨāļāļāđāļĄāļ# File > New Project..
2. āđāļāđāļāļāļ°āļĨāļāļ New Project āđāļŦāđāļĨāļāļ Categories āđāļāļ Java Web āđāļĨāļ°āđāļĨāļāļ Projects āđāļāļ Web
Application āđāļĨāļ§āļāļ Next
3. āļ.āļēāļŦāļāļ Project Name: āđāļāļ WebBaseDB āđāļĨāļ§āđāļĨāļāļ Project Location: āđāļāļ Director āļāđāļĢāļēāļāļāļāļāļēāļĢ
āļāļ°āđāļāļāđāļāļĨ5āđāļ§ āļāļēāļāļāļāđāļĨāļāļ Server āđāļāļ Apache Tomcat 6.0.18 āđāļĨāļ§āļāļ Finish
5.2 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ addBook.html
āđāļāļĢāđāļāļĢāļĄ addBook.html āđāļāļāđāļ§āļāđāļāļāļāđāļāđāļŠāļāļāļāļāļĢ5āļĄāļŠ.āļēāļŦāļĢāļāļ%āļāļāļāļāļĄ#āļĨāļŦāļāļāļŠāļāđāļŦāļĄ/āđāļāļēāđāļāļāļēāļāļāļāļĄ#āļĨ
books āļ,āļāļĄāļĨāļāļĐāļāļ°āļāļāļĢ#āļāļ 5.1 āđāļāļĢāđāļāļĢāļĄ addBook.html āļĄāļāļāļāļāļāļāļēāļĢāļāļāļāļēāļāļāļ
1. āđāļĨāļāļāļŦāļāļēāļ/āļēāļ Projects āđāļĨāļ§āļāļĨ0;āļāļāļ§āļēāļāđāļŦāļāļ WebBaseDB āļāļēāļāļāļāđāļĨāļāļāļ.āļēāļŠāļ New > Other...
2. āđāļāđāļāļāļ°āļĨāļāļ New File āđāļŦāđāļĨāļāļ Categories āļāļāļ Web āļ,āļāđāļāļĢāđāļāļĢāļĄāļāļāļ°āđāļŠāļāļ File Types āļ/āļēāļāđ āļ āļēāļĒ
āđāļ Category āļ āđāļŦāđāļĢāļēāđāļĨāļāļ HTML āđāļĨāļ§āļāļ Next
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
30. 30
3. āļ.āļēāļŦāļāļ HTML File Name: āđāļāļ addBook āđāļĨāļ§āļāļ Finish
4. āđāļāļĒāļ source code āļāļāļāđāļāļĨ5 addBook.html āļāļēāļĄ Listing āļ 5.1 āđāļāļĒāđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļāļāļ°āļĨāļēāļ icon āļāļĢāļ°āđāļ āļ
HTML Forms āļāļāļĒ#/āđāļāļŦāļāļēāļ/āļēāļ Palette āļāļāļĢ#āļāļ 5.2 āđāļāļāļŠāļēāļĄāļēāļĢāļāđāļŦāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļ/āļēāļĒāļ,āļ
āļĢāļāļ 5.1 āļŦāļāļēāđāļ§āļāđāļāļ addBook.html
āļĢāļāļ 5.2 āļāļ§āļāļĒ-āļēāļāļŦāļāļēāļ-āļēāļ 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>
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
31. 31
<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>
5.3 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ Thankyou.html
āđāļāļĢāđāļāļĢāļĄ Thankyou.html āđāļāļāđāļ§āļāđāļāļāļāđāļāđāļŠāļāļāđāļŦāđāļŦāļāļ§/āļēāļāļāļĄ#āļĨāđāļāļ#āļāđāļ0āļĄāđāļāļēāđāļāđāļāļāļēāļāļāļāļĄ#āļĨāđāļĨāļ§ āđāļāļĒ
āļĄ sourcecode āļāļ Listing āļ 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.4 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ AddBookServlet.java
āđāļāļĢāđāļāļĢāļĄ AddBookServlet.java āđāļāļāđāļāļĢāđāļāļĢāļĄāļāļ#āļāđāļĢāļĒāļāđāļāđāļāļĒ addBook.html āđāļĄāļāļ#āđāļāļāļāļ16āļĄ Add
āđāļāļĢāđāļāļĢāļĄāļāļāļ°āļ.āļēāļŦāļāļēāļāđāļāļāļ0āļāļ/āļāļāļāļāļēāļāļāļāļĄ#āļĨāđāļāļĒāļĄāļāļāļāļāļāļāļēāļĢāļ.āļēāļāļēāļāļāļāļ
1. āļ/āļēāļāļ/āļēāļāļēāļĢāļēāļĄ0āđāļāļāļĢ5āļ/āļēāļāđāļāļŠ/āļāļĄāļēāļāļēāļ addBook.html
2. āđāļāļāļĄāļ/āļāļāļāļāļēāļāļāļāļĄ#āļĨ books
3. āđāļ0āļĄāļĢāļēāļĒāļāļāļŦāļāļāļŠāļāđāļŦāļĄ/āļĨāļāđāļāļāļēāļāļāļāļĄ#āļĨ books
4. āđāļĢāļĒāļāđāļ§āļāđāļāļ Thankyou.html
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
32. 32
5.4.1 āļāļēāļĢāļ/āļēāļāļ/āļēāļāļēāļĢāļēāļĄ0āđāļāļāļĢ5āļāļēāļ addBook.html
āđāļ§āļāđāļāļ addBook.html āļāļ°āļŠ/āļāļāļāļĄ#āļĨāļāļāļāļĢāļēāļĒāļāļāļŦāļāļāļŠāļāđāļŦāļĄ/āļ/āļēāļāļĄāļēāļāļēāļāļāļēāļĢāļēāļĄ0āđāļāļāļĢ5āļ/āļēāļāđāļāļāļ
â isbn āļŦāļĄāļēāļĒāđāļĨāļ ISBN āļāļāļāļŦāļāļāļŠāļ
â title āļāļāļŦāļāļāļŠāļ
â author āļāļāļ#āđāļ/āļ
â price āļĢāļēāļāļēāļŦāļāļāļŠāļ
āļāļēāļĢāļēāļĄ0āđāļāļāļĢ5āļ/āļēāļāđāđāļŦāļĨ/āļēāļāļāļ°āļ#āļāļŠ/āļāļ/āļēāļāđāļāļĢāđāļāļāļāļĨ Http āđāļĨāļ°āđāļāđāļāļĢāđāļāļĢāļĄāđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļāļāļ°āļ/āļēāļāļ/āļē
āļāļēāļĢāļēāļĄ0āđāļāļāļĢ5āđāļŦāļĨ/āļēāļāđāļāļāļēāļāļāļāļāđāļāļ request āđāļāļĒāđāļĢāļĒāļāđāļāđāļĄāļāļāļ getParameter() āļ,āļāđāļāļĢāđāļāļĢāļĄāļŠ/āļ§āļāļāļāļ°āļĄāļ.āļēāļŠāļ
āļ/āļēāļāđāļāļāļ
String isbn = request.getParameter("isbn");
String author = request.getParameter("author");
String title = request.getParameter("title");
String priceStr = request.getParameter("price");
5.4.2 āļāļēāļĢāđāļāļāļĄāļ/āļāļāļāļāļēāļāļāļāļĄ#āļĨ
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļāđāļāļāļĄāļ/āļāļāļāļāļēāļāļāļāļĄ#āļĨāđāļāļāđāļāļāļāļēāļĢāđāļĢāļĒāļāđāļāļ.āļēāļŠāļ SQL āļ,āļāļāļ°āļāļāļāđāļ JDBC
API āđāļāļĒāļāļ°āļĄāļāļāļāļāļāļāļāļ
â āļ.āļēāļāļēāļĢāđāļŦāļĨāļ Driver āļŠ.āļēāļŦāļĢāļ Database Server āļāļāļāļāļāļēāļĢāđāļāļāļĄāļ/āļ āļ/āļēāļ DriverManager āļŦāļĢāļ
āđāļŦāļĨāļ DataSource āļāļēāļ JNDI
â āļ,āļāļāļāļāđāļāļāļāļ0āļ Connection āļāļēāļ Driver āļŦāļĢāļ Datasource
â āļ,āļāļāļāļāđāļāļāļāļ0āļ Statement āļāļēāļāļāļāļāđāļāļāļāļ0āļ Connection
â āđāļĢāļĒāļāđāļāļ.āļēāļŠāļ SQL āđāļāļĒāđāļāđāļĄāļāļāļ executeQuery() āļŦāļĢāļ executeUpdate() āļāļāļāļāļāļāđāļāļāļāļ0āļ
Statement
āđāļāļĢāđāļāļĢāļĄ AddBookServlet āļāļ°āđāļāļ§0āļāļāļēāļĢāđāļŦāļĨāļ DataSource āļāļēāļ JNDI āļ,āļāđāļĢāļēāđāļĄ/āļ.āļēāđāļāļāļāļāļ°āļāļāļāđāļŦāļĨāļ
āļ1āļāļāļĢāļāļāļĄāļāļēāļĢāđāļĢāļĒāļāđāļāđāļāļĢāđāļāļĢāļĄ Servlet āļāđāļ/āļāļ°āļ.āļēāļāļēāļĢāđāļŦāļĨāļāļāļĢāļāđāļĢāļāļāļĄāļāļēāļĢāđāļĢāļĒāļāđāļ Servlet āļ āļāļāļāļāđāļĢāļēāļāļ°āđāļāļĒāļ
sourcecode āļŠ/āļ§āļāļāļāđāļĄāļāļāļ init() āļāļāļ
private Connection conn;
public void init() {
try {
conn = jdbcTest.getConnection();
} catch (Exception ex) {
System.out.println(ex);
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
33. 33
}
}
5.4.3 āđāļ0āļĄāļĢāļēāļĒāļāļāļŦāļāļāļŠāļāđāļŦāļĄ/āļĨāļāđāļāļāļēāļāļāļāļĄ#āļĨ
āđāļĄāļāđāļāļāļĄāļ/āļāļāļēāļāļāļāļĄ#āļĨāđāļĨāļ°āđāļāļāļāļāđāļāļāļāļ0āļ Connection āļĄāļēāđāļĨāļ§ āđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļāļāļ°āđāļĢāļĒāļāđāļāļ.āļēāļŠāļ SQL āđāļ
āļ,āļāđāļāļāļāļāļāļ.āļēāļŠāļ INSERT āļ,āļāļāļ°āļĄāļĢ#āļāđāļāļāļāļāļāļ.āļēāļŠāļāļāļāļ
INSERT INTO books VALUES(....)
āđāļāļĒāđāļĢāļēāļāļ°āđāļāļ/āļēāļāļēāļāļāļēāļĢāļēāļĄ0āđāļāļāļĢ5āļ/āļēāļāđāļāļĢāļāļĄāļē āļāļāļāļāļāļēāļāļāļĄ#āļĨāļāļ%āļāļāđāļāļēāļĄāļēāļ#āļāļāļāļāđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļāļāļ°āđāļ0āļĄāļĢāļēāļĒāļāļ
āļŦāļāļāļŠāļāđāļŦāļĄ/āļĨāļāđāļāļāļēāļāļāļāļĄ#āļĨāđāļāļĒāđāļāļ.āļēāļŠāļāļāļāļ
Statement stmt = conn.createStatement();
String sql = "INSERT INTO books VALUES('"+isbn+"','" + title +"','" +author +"',"+price
+")";
int numRow = stmt.executeUpdate(sql);
5.4.4 āļāļēāļĢāđāļĢāļĒāļāđāļ§āļāđāļāļ Thankyou.html
āđāļĄāļāļāļāļĄ#āļĨāđāļāļ#āļāđāļ0āļĄāļĨāļāđāļāđāļāļāļēāļāļāļāļĄ#āļĨāđāļĨāļ§ āđāļāļĢāđāļāļĢāļĄ AddBookServlet āļāļ°āļ.āļēāļāļēāļĢāđāļĢāļĒāļāđāļ§āļāđāļāļ
Thankyou.html āđāļāļĒāļāļēāļĢāđāļĢāļĒāļāđāļ RequestDispatcher āļāļāļ
RequestDispatcher obj = request.getRequestDispatcher("Thankyou.html");
if (numRow == 1 && obj != null) {
obj.forward(request,response);
}
āđāļāļĢāđāļāļĢāļĄ AddBookServlet.java āļāļ°āļĄ sourcecode āļāļāļŦāļĄāļāļāļ 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.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.sql.DataSource;
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
34. 34
public class AddBookServlet extends HttpServlet {
@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>");
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);
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
35. 35
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
}
5.5 āļāļāļāļāļāļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ AddBookServlet.java
āđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļāļāļ°āļāļāļāļēāđāļāļĢāđāļāļĢāļĄ AddBookServlet.java āļāļēāļĄāļāļāļāļāļāļāļāļ
1. āđāļĨāļāļāļŦāļāļēāļ/āļēāļ Projects āđāļĨāļ§āļāļĨ0;āļāļāļ§āļēāļāđāļŦāļāļ WebBaseDB āļāļēāļāļāļāđāļĨāļāļāļ.āļēāļŠāļ New > Other...
2. āđāļāđāļāļāļ°āļĨāļāļ New File āđāļŦāđāļĨāļāļ Categories āļāļāļ Web āļ,āļāđāļāļĢāđāļāļĢāļĄāļāļāļ°āđāļŠāļāļ File Types āļ/āļēāļāđ āļ āļēāļĒ
āđāļ Category āļ āđāļŦāđāļĢāļēāđāļĨāļāļ Servlet āđāļĨāļ§āļāļ Next
3. āļ.āļēāļŦāļāļ Class Name: āđāļāļ AddBookServlet āđāļĨāļ°āļ.āļēāļŦāļāļ Package āđāļāļ controller āđāļĨāļ§āļāļ Next
4. āļ.āļēāļŦāļāļ URL Pattern(s): āđāļāļ /addBook.do āđāļĨāļ§āļāļ Finish
5. āđāļāļĢāđāļāļĢāļĄ NetBeans āļāļ°āļŠāļĢāļēāļāđāļāļĨ5 AddBookServlet.java āđāļ§āļ āļēāļĒāđāļ Source Packages āđāļāļĒāļāļ°āļāļĒ#/āđāļ
Directory āļāļ controller
6. āđāļāļŦāļāļē Editor āđāļŦāļāļĨ0;āļāļāļ§āļēāđāļĨāļāļ Insert Code... > Use Database āļāļāļĢ#āļāļ 5.3
āļĢāļāļ 5.3 āļāļēāļĢāđāļĨāļāļāļāļēāļŠāļ Use Database
7. āđāļāđāļāļāļ°āļĨāļāļ Choose Database āļāļāļ16āļĄ Add...
8. āđāļāđāļāļāļ°āļĨāļāļ Add Data Source Reference āļāļāļ16āļĄ Add...
9. āđāļāđāļāļāļ°āļĨāļāļ Create Data Source āļ.āļēāļŦāļāļ JNDI Name āđāļāļ jdbc/test āđāļĨāļ°āđāļĨāļāļ Database
Connection āđāļāļ jdbc:mysql//localhost:3306/test āļāļāļĢ#āļāļ 5.4
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
36. 36
āļĢāļāļ 5.4 āļāļēāļĢāļāļēāļŦāļāļāļ-āļē JNDI
10. āļāļāļ16āļĄ OK āđāļāļĢāđāļāļĢāļĄāļāļ°āļāļĨāļāđāļāđāļŠāļāļāđāļāļāļ°āļĨāļāļ Add Data Source Reference āđāļŦāļ.āļēāļŦāļāļ Reference
Name: āđāļāļ jdbc/test āļāļāļĢ#āļāļ 5.5
āļĢāļāļ 5.5 āļāļēāļĢāļāļēāļŦāļāļāļ-āļē Reference Name
11. āļāļāļ16āļĄ OK āļāļ°āđāļāđāļāļāļ°āļĨāļāļ Choose Database āļāļāļĢ#āļāļ 5.6
āļĢāļāļ 5.6 āļŦāļāļēāđāļāļāļ°āļĨāļāļ Choose Database
12. āļāļāļ16āļĄ OK āđāļāļĢāđāļāļĢāļĄ NetBeans āļāļ°āđāļ0āļĄ context.xml āđāļŦāļāļāđāļāļĄāļ0 āđāļāļĒāļŠāļēāļĄāļēāļĢāļāļ#āđāļāļāļēāļāļāļēāļĢ āļāļĒāļēāļĒāđāļŦāļāļ
WebBaseDB > Web Pages > META-INF [āļŦāļĄāļēāļĒāđāļŦāļ1 āđāļāļāļĢāļāļāđāļ GlassFish Server āļ.āļēāļŠāļāļāļāļ°
āđāļāļĒāļāđāļāđāļāļĨ5 sun-web.xml]
13. āđāļāļĢāđāļāļĢāļĄāļāļ°āđāļ0āļĄ sourcecode āđāļŦāļāļāļ
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
37. 37
@Resource(name = "jdbc/test")
private DataSource jdbcTest;
14. āđāļāļŦāļāļēāļ/āļēāļ editor āđāļŦāđāļāđāļ sourcecode āļāļāļāđāļāļĨ5 AddBookServlet.java āđāļŦāđāļāļāđāļāļāļēāļĄ Listing āļ
5.3
15. āđāļāļĢāđāļāļĢāļĄāļāļ°āļĄāļāļāļ0āļāļāļĨāļēāļāļāļĒ#/āđāļāļāļāļāļēāļāļĒāļāđāļĄ/āđāļāļ.āļēāļāļēāļĢ import āļāļĨāļēāļŠāļ/āļēāļāđ āđāļĢāļēāļŠāļēāļĄāļēāļĢāļāđāļāđāļāđāļāđāļāļĒāļāļĨ0;āļ
āļāļ§āļēāđāļāļŦāļāļēāļ/āļēāļ editor āđāļĨāļ§āđāļĨāļāļ Fix Imports āļŦāļĢāļāļāļ Ctrl+Shift+I āđāļāļĢāđāļāļĢāļĄāļāļ°āđāļŠāļāļāļāļāļāļĨāļēāļŠāļ/āļēāļāđ āļ
āļāļāļ Import āļĄāļēāđāļŦāđāļĨāļāļ āđāļāļāļāļāļ°āļāļāļāđāļĨāļāļāļāļĨāļēāļŠāđāļŦāļ#āļāļāļāļāļāļāļĢ#āļāļ 5.7
āļĢāļāļ 5.7 āļāļēāļĢāļāļēāļŦāļāļāļāļĨāļēāļŠāļāļāļāļ import
16. āļ.āļēāļāļēāļĢ Save āđāļāļĢāđāļāļĢāļĄāđāļāļĒāļāļēāļĢāļāļ Ctrl+S
17. āļāļĢāļ§āļāļŠāļāļāđāļāļĨ5 context.xml āļāļ°āđāļāļāļāļ Listing āļ 5.4
Listing āļ 5.4 āđāļāļĨ5 context.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/WebBaseDB">
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" maxActive="20"
maxIdle="10" maxWait="-1" name="jdbc/test" password="root" type="javax.sql.DataSource"
url="jdbc:mysql://localhost:3306/test" username="root"/>
</Context>
5.6 āļāļāļŠāļāļāđāļāļĢāđāļāļĢāļĄ
1. āļ.āļēāļāļēāļĢ Build āđāļĨāļ° Deploy āđāļāļĢāđāļāļĢāļĄ WebBaseDB
2. Run āđāļāļĢāđāļāļĢāļĄ WebBaseDB āļāļāļāļāļāļāļ.āļēāļāļēāļĢāļĢāļ MySQL Database Server āļ/āļāļ
3. āđāļāļĢāđāļāļĢāļĄāļāļ°āđāļŠāļāļāļŦāļāļē addBook.html āđāļŦāđāļĢāļēāđāļŠ/āļāļāļĄ#āļĨ āļĨāļāļāļāļāļĨāļāļāđāļŠ/āļāļāļĄ#āļĨāļāļāļĢ#āļāļ 5.8
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
38. 38
āļĢāļāļ 5.8 āļāļ§āļāļĒ-āļēāļāļāļēāļĢāļ+āļāļāļāļāļĄāļĨ Books
4. āđāļĄāļāļāļāļ16āļĄ Add āđāļāļĢāđāļāļĢāļĄāļāļāļ°āđāļŠ/āļāļāļĄ#āļĨāļĨāļāđāļ Database āđāļĨāļ°āđāļŠāļāļāļāļĨāļĨāļāļ5āļāļāļĢ#āļāļ 5.9
āļĢāļāļ 5.9 āļāļĨāļĨāļāļ!āļāđāļŠāļāļāļāļēāļ Web Browser
5. āđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļāļāļ°āļ#āļāļāļĄ#āļĨāļāļ%āļāļāđāļāļēāđāļāđāļ āđāļāļĒāđāļāļāļŦāļāļēāļ/āļēāļ Services āļāļāļāđāļāļĢāđāļāļĢāļĄ NetBeans āđāļĨāļ§āđāļĨāļāļ
āļ.āļēāļŠāļ View Data.. āļāļēāļ Table āļāļāļ books āļāļāļĢ#āļāļ 5.10
āļĢāļāļ 5.10 āļāļāļĄāļĨāļāļāļāļ+āļāļāđāļāļē Table āļāļāļ books
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
39. 39
Exercise 6 āđāļāļĢāđāļāļĢāļĄāđāļ§āļāđāļāļāļŠāļēāļ"āļāļāļāļāđāļāļāļāļāļāļāļāļāđāļāļ
āđāļāļāļŦāļēāļāļāļāļāļĻāļāļĐāļēāļāļāļ āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Servlet āđāļāļāļ/āļēāļāļ/āļēāļāļēāļĢāļēāļĄ0āđāļāļāļĢ5
āđāļāļāļāļāļŦāļāļāļāļ°āđāļāļāļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ Java Servlet āđāļāļāļāļ0āļāļēāļĒāļāļāļāđāļāļāļāļēāļĢāļ.āļēāļāļēāļāļāļāļāļāļāļāđāļāļāđāļ
āđāļāļĢāđāļāļĢāļĄāđāļāļāđāļ§āļ (Object Scope) āļāļĄāļāļĒ#/āļŠāđāļāļāļāļ Page, Request, Session āđāļĨāļ° Web (Application) āđāļāļĒ
āļāļ°āļāļāļĨāļāļāļŠ/āļāļ/āļēāļāļāļāļāļāļāđāļāļāļ/āļēāļāļāļāļĢāļ°āļŦāļ§/āļēāļāđāļāļĢāđāļāļĢāļĄ Servlet āļŠāļāļāļ1āļ
6.1 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄāđāļāļāļŠāļēāļ(āļāļāļāļāđāļāļāļāļāļ Object āđāļāļ Request
āļāļāļāđāļāļāļāļŠāļĢāļēāļāļ,āļāđāļāđāļāļĢāđāļāļĢāļĄ Java Servlet āđāļāđāļ/āđāļāļĢāđāļāļĢāļĄāļāļ°āļĄāļāļāļāđāļāļāļāļēāļĢāđāļāļāļēāļ (scope) āļāļĒ#/āđāļāļĒāļ
āđāļ/āđāļāļĢāđāļāļĢāļĄāļāļāđ (url āļāļāđ) āđāļĄ/āļŠāļēāļĄāļēāļĢāļāļāļāļ°āđāļāđāļāļĢāđāļāļĢāļĄ Java Servlet āļŦāļĢāļ JSP āļāļ§āļāļāđāļĢāļĒāļāđāļāļāļāļāđāļāļāļāļ§āļāļ
āđāļ āļāļēāļĢāļāļ°āđāļŦāđāļāļĢāđāļāļĢāļĄ Servlet āļŦāļĢāļ JSP āļāļāđ āđāļĢāļĒāļāļāļāļāđāļāļāđāļāđ āđāļāļāļ āļāļ°āļāļāļāļĄāļāļēāļĢāđāļāļĒāļ source code āđāļāļāļŠ/āļ
āļ/āļēāļāļ/āļēāļāļāļāļāļāļāđāļāļāļāļāđāļāļĒāļāļāļāļāđāļāļāļāļāđ āļāļāļāđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļ.āļēāļŦāļāļāļāļāļāđāļāļāļāļēāļĢāđāļāļāļēāļāđāļ0āļĄāđāļ0āļĄāđāļāļāļ 3 āđāļāļāļāļ
â Request āļāļāļāđāļāļāļŠāļēāļĄāļēāļĢāļāļ#āļāđāļĢāļĒāļāđāļāđāļĄāļāļĄāļāļēāļĢāđāļĢāļĒāļāļĄāļēāļāļēāļāđāļāļĢāđāļāļĢāļĄ Servlet/JSP āļāļ
â Session āļāļāļāđāļāļāļāļ°āđāļāļāļāļĒ#/āđāļ Session āļāļāļ Web Browser āļāļĢāļēāļāđāļ/āļēāļāļĒāļāļĄāļāļēāļĢāđāļāļāļēāļāļāļĒ#/
â Application āļāļāļāđāļāļāļāļ°āļŠāļēāļĄāļēāļĢāļāđāļāļāļēāļāđāļāđāļāđāļāļĢāđāļāļĢāļĄ Servlet/JSP āđāļāđ āļāļāļĒ#/āđāļ Web
Application āđāļāļĒāļ§āļāļ
āļāļēāļĢāļŠ/āļāļ/āļēāļāļāļāļāļāļāđāļāļāļāļēāļ url āļŦāļ,āļāļĄāļēāļĒāļ url āļāļāļ.āļēāđāļāļŦāļĨāļēāļĒāļ§0āļ āđāļāļāļāļāļŦāļāļāļ/āļēāļāļĄāļēāđāļāļāļāļēāļĢāđāļŠāļāļāđāļŦāđāļŦāļāļ,āļ
āļāļēāļĢāļŠ/āļāļ/āļēāļāļēāļĢāļēāļĄ0āđāļāļāļĢ5āļāļāļĒ#/āđāļāļāļāļĢ5āļĄāļāļāļāđāļāļĨ5 HTML āđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servlet āļāļŠāļēāļĄāļēāļĢāļāđāļĢāļĒāļāđāļāđāļāđāļāļĒ āļ.āļēāļŠāļ
request.getParameter()
āļāļāļāļāļēāļāļāđāļĢāļēāļĒāļāļŠāļēāļĄāļēāļĢāļāļāļāļ°āļŠ/āļāļāļāļāđāļāļāđāļāļĒāļ āđāļāļĢāđāļāļĢāļĄ Java Servlet āļŦāļĢāļ JSP āļāļāđāļāļĒāļāļēāļĢāđāļāļ.āļēāļŠāļ
setAttribute() āļāļēāļ0āđāļ/āļāļŠ/āļāļ/āļēāļāļāļāļāļ§āđāļāļĢ String āļāļāļ§/āļē name āđāļāļĒāļāļ°āđāļāļāđāļ§āđāļ attribute āļāļāļ RequestName
āđāļĨāļ°āļĄāļĢ#āļāđāļāļāļ.āļēāļŠāļāļāļāļ
String name = âThanisaâ;
request.setAttribute(âRequestNameâ, name);
āļ,āļāļāļ°āļ.āļēāđāļŦ url āļāļ.āļēāļāļēāļĢāđāļĢāļĒāļāļāļāđāļāļŠāļēāļĄāļēāļĢāļāđāļĢāļĒāļāđāļ attribute āļāļāļ RequestName āđāļĨāļ°āļ,āļāļ/āļēāļāļāļāļāļ§āđāļāļĢ
name āļāļāļāļĄāļēāđāļ āđāļāļĒāđāļāļ.āļēāļŠāļ getAttribute() āđāļāļĒāļĄāļĢ#āļāđāļāļāļāļāļ
String name = (String) request.getAttribute(âRequestNameâ);
āļŠ/āļ§āļāļ.āļēāļŠāļāļāđāļāđāļāļāļēāļĢāļāļāļ° forward āļāļēāļāđāļāļĢāđāļāļĢāļĄ Servlet āļāļ§āļŦāļ,āļāđāļāļĒāļ url āļāļāļāļ°āđāļāļāļ.āļēāļŠāļāļāļĄāļĢ#āļāđāļāļ
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
40. 40
āļāļāļ
RequestDispatcher obj = request.getRequestDispatcher("SecondServlet");
obj.forward(request,response);
āđāļāļĒāļ SecondServlet āļāļāļāļ url āļāļāļāļāļāļēāļĢ forward
āđāļāļāļāļāļāļāļāļāļ°āđāļāļāļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄāđāļāļāļŠāļēāļ0āļāļāļēāļĢāļ.āļēāļāļēāļāļāļāļāļāļāļāđāļāļāļāļēāļĢāļ.āļēāļāļēāļāļāļāļ 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 {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
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);
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
41. 41
}
public String getServletInfo() {
return "Short description";
}
// </editor-fold>
}
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 {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
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";
}
// </editor-fold>
}
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
42. 42
6.1.1 āļāļāļāļāļāļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄāđāļāļāļŠāļēāļ0āļāļāļāļāđāļāļāļāļāļ Object āđāļāļ Request
āđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļāļāļ°āļāļāļāļēāđāļāļĢāđāļāļĢāļĄ āļāļēāļĄāļāļāļāļāļāļāļāļ
1. āđāļĨāļāļāļ.āļēāļŠāļāļŠāļĢāļēāļ New Project āļāļēāļāđāļĄāļ# āđāļĨāļāļ Java Web āđāļĨāļ§āđāļĨāļāļ Web Application āļ.āļēāļŦāļāļāļāļāđāļāļĢ
āđāļāļāđāļāļ ScopeDemo āđāļĨāļāļ Server āđāļāļ Apache Tomcat 6.0.18 āđāļĨāļ° Java EE Version āđāļāļ Java
EE5 āđāļĨāļ§āļāļ Finish
2. āđāļĨāļāļāļŦāļāļēāļ/āļēāļ Projects āđāļĨāļ§āļāļĨ0;āļāļāļ§āļēāļāđāļŦāļāļ ScopeDemo āļāļēāļāļāļāđāļĨāļāļāļ.āļēāļŠāļ New > Servlet
3. āļ.āļēāļŦāļāļ Class Name: āđāļāļ FirstServlet.java āđāļĨāļ° Package āđāļāļ servlet āđāļĨāļ§āļāļ Finish
4. āđāļāļŦāļāļēāļ/āļēāļ Editor āđāļāļĒāļ Source code āļāļāļ FirstServlet.java āļāļ Listing āļ 6.1 āđāļĨāļ§āđāļĨāļāļāļ.āļēāļŠāļ Save
5. āđāļĨāļāļāļŦāļāļēāļ/āļēāļ Projects āđāļĨāļ§āļāļĨ0;āļāļāļ§āļēāļāđāļŦāļāļ ScopeDemo āļāļēāļāļāļāđāļĨāļāļāļ.āļēāļŠāļ New > Servlet
6. āļ.āļēāļŦāļāļ Class Name: āđāļāļ SecondServlet.java āđāļĨāļ° Package āđāļāļ servlet āđāļĨāļ§āļāļ Finish
7. āđāļāļŦāļāļēāļ/āļēāļ Editor āđāļāļĒāļ Source code āļāļāļ SecondServlet.java āļāļ Listing āļ 6.2 āđāļĨāļ§āđāļĨāļāļāļ.āļēāļŠāļ
Save
6.1.2 āļāļāļāļāļāļāļēāļĢāļāļāļŠāļāļāđāļāļĢāđāļāļĢāļĄāđāļāļāļŠāļēāļ0āļāļāļāļāđāļāļāļāļāļ Object āđāļāļ Request
āđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļāļāļ°āļāļāļŠāļāļāđāļāļĢāđāļāļĢāļĄ āļāļēāļĄāļāļāļāļāļāļāļāļ
1. āļ.āļēāļāļēāļĢ Build āđāļĨāļ° Deploy āđāļāļĢāđāļāļ ScopeDemo
2. āļ.āļēāļāļēāļĢ Run āđāļāļĢāđāļāļ ScopeDemo
3. āđāļāđāļāļĢāđāļāļĢāļĄ Web Browser āđāļĨāļāļ url āļāļāļ http://localhost:8080/ScopeDemo/FirstServlet
āđāļĨāļ§āļŠāļāđāļāļ1āļāļĨāļĨāļāļ5
4. āļāļāļĨāļāļāļĢāļ url āļāļāļ http://localhost:8080/ScopeDemo/SecondServlet āđāļāļĒāļāļĢāļ āđāļĨāļ§āļŠāļāđāļāļāļāļĨāļĨāļāļ5
āļāļāļāļĢāļāļāļ°āđāļŦāļāļ§/āļē āļ/āļēāļāđāļŠāļāļāđāļāļ null āļāļāļāđāļāļāļāļāļēāļāđāļāļĢāđāļāļĢāļĄāđāļĄ/āđāļāļĄāļāļēāļĢāļŠ/āļ request āļĄāļēāļāļēāļ FirstServlet
6.2 āļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄāđāļāļāļŠāļēāļ(āļāļāļāļāđāļāļāļāļāļ Object āđāļāļ Session
āļāļāļāđāļāļāļāļēāļĢāđāļāļāļēāļāļāļāļāļāļāļāđāļāļāđāļāļ Request āļāļ°āļŠ/āļāļ/āļēāļāļ/āļēāļāļāļāļāļāļāđāļāļāļāļēāļĄ request āļāļāļ url āļāļāļāđāļĄ/
āļŠāļēāļĄāļēāļĢāļāļāļāļ°āđāļāļāļēāļāđāļāđāļāļĒāļāļēāļĢāđāļĢāļĒāļ url āļāļāđāļāļĒāđāļĄ/āļĄāļāļēāļĢāļŠ/āļ request āļĄāļēāļāļāđāļŠāļāļāđāļāļāļāļāļāļāļāļ/āļēāļāļĄāļē āđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļ
āļāļ°āļ.āļēāļŦāļāļāļāļāļāđāļāļāļāļāļāļāļēāļĢāđāļāļāļēāļāļāļāļāļāļāļāđāļāļ āđāļŦāđāļāļāļēāļāļ/āļēāļāđāļ session āļāļāļ Web Browser āđāļ (āļāļĢāļēāļāđāļ/āļēāļ
Browser āļĒāļāđāļ session āļāļāļāļĒ#) āđāļāļĒāļāļēāļĢāļ.āļēāļŦāļāļ Attribute āļĨāļāđāļāļāļāļāđāļāļāļāļ0āļ HttpSession āļ,āļāļāļ°āđāļāļāļāļāļāđāļāļāļ
/
āđāļāļāļāļāļĄ#āļĨ session āļāļāļ Web Browser āļāļēāļ0āđāļ/āļāđāļāļāļ/āļēāļāļāļāļāļ§āđāļāļĢ String āļāļāļ§/āļē name āđāļ§āđāļ attribute
āļāļāļ session āļāļāļ SessionName āđāļāļĒāļĄāļĢ#āļāđāļāļāļ.āļēāļŠāļāļāļāļ
String name = âThanisaâ;
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
43. 43
HttpSession session = request.getSession();
session.setAttribute(âSessionNameâ, name);
āđāļāļĢāđāļāļĢāļĄ Java Servlet āļāļāđāļŠāļēāļĄāļēāļĢāļāļāļāļ°āđāļĢāļĒāļāđāļ attribute āļāļāļ Session āļāļāļ SessionName āđāļĨāļ°āļ,āļ
āļ/āļēāļāļāļāļāļ§āđāļāļĢ name āļāļāļāļĄāļēāđāļ āđāļāļĒāđāļāļ.āļēāļŠāļ getAttribute() āđāļāļāđāļĢāļĒāļāļ/āļēāļāļēāļ Session āđāļāļĒāļĄāļĢ#āļāđāļāļāļāļāļ
HttpSession session = request.getSession();
String name = (String) session.getAttribute(âSessionNameâ);
āđāļāļāļāļāļāļāļāļāļ°āđāļāļāļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄāđāļāļāļŠāļēāļ0āļāļāļēāļĢāļ.āļēāļāļēāļāļāļāļāļāļāļāđāļāļāļāļēāļĢāļ.āļēāļāļēāļāļāļāļ Object āđāļāļ
session āđāļāļĒāļāļēāļĢāļāļāļāļēāđāļāļĢāđāļāļĢāļĄ Servlet āļ,āļāļĄāļēāļŠāļāļāđāļāļĢāđāļāļĢāļĄāļāļ FirstSessionServlet āļāļāļ°āđāļāđāļāļāļēāļĢāļŠ/āļāļāļāļ
āđāļāļāļ,āļāļĄ source code āļāļēāļĄ Listing āļ 6.3 āđāļĨāļ° āđāļāļĢāđāļāļĢāļĄ SecondSessionServlet āļāļāļ°āđāļ/āđāļāļāļēāļĢāļ/āļēāļāļ/āļēāļāļāļāļāļāļ
āđāļāļāļāļŠ/āļāļāļāļāļĄāļēāđāļĨāļ§āļ.āļēāļĄāļēāđāļŠāļāļāļāļĨ āļ,āļāļĄ source code āļāļēāļĄ Listing āļ 6.4
Listing āļ 6.3 āđāļāļĢāđāļāļĢāļĄ FirstSessionServlet.java
package servlet;
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class FirstSessionServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
String name = "Thanisa";
HttpSession session = request.getSession();
session.setAttribute("SessionName", 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);
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan
44. 44
}
public String getServletInfo() {
return "Short description";
}
// </editor-fold>
}
Listing āļ 6.4 āđāļāļĢāđāļāļĢāļĄ SecondSessionServlet.java
package servlet;
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SecondSessionServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
HttpSession session = request.getSession();
String name = (String) session.getAttribute("SessionName");
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";
}
// </editor-fold>
}
āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ Java Servet / JSP Thanachart Numnonda / Thanisa Kruawaisayawan