Enviar pesquisa
Carregar
Java Web Programming [Servlet/JSP] Using GlassFish and NetBeans
âĒ
3 gostaram
âĒ
2,808 visualizaçÃĩes
IMC Institute
Seguir
Java Web Programming WorkBook [in Thai]
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 111
Baixar agora
Baixar para ler offline
Recomendados
Java Web Programming Using NetBeans 6.5
Java Web Programming Using NetBeans 6.5
Thanachart Numnonda
Â
Hand-on Exercise Java Web Programming
Hand-on Exercise Java Web Programming
IMC Institute
Â
Java Web programming Using NetBeans
Java Web programming Using NetBeans
Software Park Thailand
Â
Java Web programming Using Eclipse
Java Web programming Using Eclipse
Software Park Thailand
Â
āļŠāļĢāđāļēāļ Soap web services āļāđāļēāļĒāđ
āļŠāļĢāđāļēāļ Soap web services āļāđāļēāļĒāđ
Utain Wongpreaw
Â
Java Web Services and SOA Using GlassFish openESB and NetBeans
Java Web Services and SOA Using GlassFish openESB and NetBeans
Software Park Thailand
Â
Java Web Services and SOA Exercises [in Thai]
Java Web Services and SOA Exercises [in Thai]
IMC Institute
Â
āđHand-on Exercise: Java Web Services using Eclipse + Tomcat & NetBeans + Glas...
āđHand-on Exercise: Java Web Services using Eclipse + Tomcat & NetBeans + Glas...
IMC Institute
Â
Recomendados
Java Web Programming Using NetBeans 6.5
Java Web Programming Using NetBeans 6.5
Thanachart Numnonda
Â
Hand-on Exercise Java Web Programming
Hand-on Exercise Java Web Programming
IMC Institute
Â
Java Web programming Using NetBeans
Java Web programming Using NetBeans
Software Park Thailand
Â
Java Web programming Using Eclipse
Java Web programming Using Eclipse
Software Park Thailand
Â
āļŠāļĢāđāļēāļ Soap web services āļāđāļēāļĒāđ
āļŠāļĢāđāļēāļ Soap web services āļāđāļēāļĒāđ
Utain Wongpreaw
Â
Java Web Services and SOA Using GlassFish openESB and NetBeans
Java Web Services and SOA Using GlassFish openESB and NetBeans
Software Park Thailand
Â
Java Web Services and SOA Exercises [in Thai]
Java Web Services and SOA Exercises [in Thai]
IMC Institute
Â
āđHand-on Exercise: Java Web Services using Eclipse + Tomcat & NetBeans + Glas...
āđHand-on Exercise: Java Web Services using Eclipse + Tomcat & NetBeans + Glas...
IMC Institute
Â
lesson4 JSP
lesson4 JSP
Kukik Kanoknuan
Â
Java Web Programming (JSP/Servlet) Using Eclipse and Tomcat
Java Web Programming (JSP/Servlet) Using Eclipse and Tomcat
IMC Institute
Â
Animation Restaurant2
Animation Restaurant2
tunk
Â
Brew up a Rich Web Application with Cappuccino
Brew up a Rich Web Application with Cappuccino
Howard Lewis Ship
Â
Web app
Web app
ėĄ° ėĐęĩŽ
Â
Smart phone development
Smart phone development
Myles Eftos
Â
Struts,Jsp,Servlet
Struts,Jsp,Servlet
dasguptahirak
Â
āļāļēāļĢāļāļąāļāļāļīāļāļāļĢāļĢāļĄāļāļēāļĢāđāļĢāļĩāļĒāļāļĢāļđāđāđāļ Web Application : Edmodo
āļāļēāļĢāļāļąāļāļāļīāļāļāļĢāļĢāļĄāļāļēāļĢāđāļĢāļĩāļĒāļāļĢāļđāđāđāļ Web Application : Edmodo
Nunta Petman
Â
lesson1 JSP
lesson1 JSP
Kukik Kanoknuan
Â
Hybrid vs Native vs Web Apps
Hybrid vs Native vs Web Apps
Poluru S
Â
Introduction to the Servlet / JSP course
Introduction to the Servlet / JSP course
JavaEE Trainers
Â
āļāļēāļĢāļāļąāļāļāļēāđāļāļāļŠāļēāļĢāļāļāļāđāļĨāļāđāļāļąāđāļāļŠāļđāļ Lect 04
āļāļēāļĢāļāļąāļāļāļēāđāļāļāļŠāļēāļĢāļāļāļāđāļĨāļāđāļāļąāđāļāļŠāļđāļ Lect 04
Jenchoke Tachagomain
Â
Dream mx
Dream mx
phochai
Â
Web Based Application Development with Open Source
Web Based Application Development with Open Source
Rachabodin Suwannakanthi
Â
webprogramming eclipse-jsp
webprogramming eclipse-jsp
Weerasak Sriwongyang
Â
Intermediate Java Programming Language (in Thai)
Intermediate Java Programming Language (in Thai)
Thanachart Numnonda
Â
Hand on Exercises Java Web Services and SOA using GlassFish ESB and NetBeans
Hand on Exercises Java Web Services and SOA using GlassFish ESB and NetBeans
IMC Institute
Â
SOA Using GlassFishESB and NetBeans [in Thai]
SOA Using GlassFishESB and NetBeans [in Thai]
Thanachart Numnonda
Â
Word2007 moce
Word2007 moce
520147141
Â
Atomymaxsite25
Atomymaxsite25
Warapang Plodplong
Â
Cisco packet tracer_1
Cisco packet tracer_1
Tru Regis Nitt
Â
Cisco packet tracer_1
Cisco packet tracer_1
Tru Regis Nitt
Â
Mais conteÚdo relacionado
Destaque
lesson4 JSP
lesson4 JSP
Kukik Kanoknuan
Â
Java Web Programming (JSP/Servlet) Using Eclipse and Tomcat
Java Web Programming (JSP/Servlet) Using Eclipse and Tomcat
IMC Institute
Â
Animation Restaurant2
Animation Restaurant2
tunk
Â
Brew up a Rich Web Application with Cappuccino
Brew up a Rich Web Application with Cappuccino
Howard Lewis Ship
Â
Web app
Web app
ėĄ° ėĐęĩŽ
Â
Smart phone development
Smart phone development
Myles Eftos
Â
Struts,Jsp,Servlet
Struts,Jsp,Servlet
dasguptahirak
Â
āļāļēāļĢāļāļąāļāļāļīāļāļāļĢāļĢāļĄāļāļēāļĢāđāļĢāļĩāļĒāļāļĢāļđāđāđāļ Web Application : Edmodo
āļāļēāļĢāļāļąāļāļāļīāļāļāļĢāļĢāļĄāļāļēāļĢāđāļĢāļĩāļĒāļāļĢāļđāđāđāļ Web Application : Edmodo
Nunta Petman
Â
lesson1 JSP
lesson1 JSP
Kukik Kanoknuan
Â
Hybrid vs Native vs Web Apps
Hybrid vs Native vs Web Apps
Poluru S
Â
Introduction to the Servlet / JSP course
Introduction to the Servlet / JSP course
JavaEE Trainers
Â
āļāļēāļĢāļāļąāļāļāļēāđāļāļāļŠāļēāļĢāļāļāļāđāļĨāļāđāļāļąāđāļāļŠāļđāļ Lect 04
āļāļēāļĢāļāļąāļāļāļēāđāļāļāļŠāļēāļĢāļāļāļāđāļĨāļāđāļāļąāđāļāļŠāļđāļ Lect 04
Jenchoke Tachagomain
Â
Dream mx
Dream mx
phochai
Â
Web Based Application Development with Open Source
Web Based Application Development with Open Source
Rachabodin Suwannakanthi
Â
Destaque
(14)
lesson4 JSP
lesson4 JSP
Â
Java Web Programming (JSP/Servlet) Using Eclipse and Tomcat
Java Web Programming (JSP/Servlet) Using Eclipse and Tomcat
Â
Animation Restaurant2
Animation Restaurant2
Â
Brew up a Rich Web Application with Cappuccino
Brew up a Rich Web Application with Cappuccino
Â
Web app
Web app
Â
Smart phone development
Smart phone development
Â
Struts,Jsp,Servlet
Struts,Jsp,Servlet
Â
āļāļēāļĢāļāļąāļāļāļīāļāļāļĢāļĢāļĄāļāļēāļĢāđāļĢāļĩāļĒāļāļĢāļđāđāđāļ Web Application : Edmodo
āļāļēāļĢāļāļąāļāļāļīāļāļāļĢāļĢāļĄāļāļēāļĢāđāļĢāļĩāļĒāļāļĢāļđāđāđāļ Web Application : Edmodo
Â
lesson1 JSP
lesson1 JSP
Â
Hybrid vs Native vs Web Apps
Hybrid vs Native vs Web Apps
Â
Introduction to the Servlet / JSP course
Introduction to the Servlet / JSP course
Â
āļāļēāļĢāļāļąāļāļāļēāđāļāļāļŠāļēāļĢāļāļāļāđāļĨāļāđāļāļąāđāļāļŠāļđāļ Lect 04
āļāļēāļĢāļāļąāļāļāļēāđāļāļāļŠāļēāļĢāļāļāļāđāļĨāļāđāļāļąāđāļāļŠāļđāļ Lect 04
Â
Dream mx
Dream mx
Â
Web Based Application Development with Open Source
Web Based Application Development with Open Source
Â
Semelhante a Java Web Programming [Servlet/JSP] Using GlassFish and NetBeans
webprogramming eclipse-jsp
webprogramming eclipse-jsp
Weerasak Sriwongyang
Â
Intermediate Java Programming Language (in Thai)
Intermediate Java Programming Language (in Thai)
Thanachart Numnonda
Â
Hand on Exercises Java Web Services and SOA using GlassFish ESB and NetBeans
Hand on Exercises Java Web Services and SOA using GlassFish ESB and NetBeans
IMC Institute
Â
SOA Using GlassFishESB and NetBeans [in Thai]
SOA Using GlassFishESB and NetBeans [in Thai]
Thanachart Numnonda
Â
Word2007 moce
Word2007 moce
520147141
Â
Atomymaxsite25
Atomymaxsite25
Warapang Plodplong
Â
Cisco packet tracer_1
Cisco packet tracer_1
Tru Regis Nitt
Â
Cisco packet tracer_1
Cisco packet tracer_1
Tru Regis Nitt
Â
MySQL Multi-Master Replication Using Tungsten Replicator 2.0.5
MySQL Multi-Master Replication Using Tungsten Replicator 2.0.5
Nont Banditwong
Â
āļĢāļđāļāđāļĨāđāļĄāļ§āļīāļāļēāđāļāļĢāļāļāļēāļ
āļĢāļđāļāđāļĨāđāļĄāļ§āļīāļāļēāđāļāļĢāļāļāļēāļ
AjBenny Pong
Â
EJB Programming Using Eclipse & JBoss
EJB Programming Using Eclipse & JBoss
Software Park Thailand
Â
Eclipse
Eclipse
gzxc
Â
Typecom
Typecom
Tay Chaloeykrai
Â
Tab10 1 manual
Tab10 1 manual
Ratchanee Sangkaew
Â
Active Directory
Active Directory
sompriaw aums
Â
Exproject2
Exproject2
najak
Â
āđāļāļāļēāļ
āđāļāļāļēāļ
āđāļāļĄāļīāļāļē āļāļļāļĨāļēāļĻāļĢāļĩ
Â
Google App Engine Using Eclipse
Google App Engine Using Eclipse
Software Park Thailand
Â
āđJava Web Programming on Cloud Computing using Google App Engine
āđJava Web Programming on Cloud Computing using Google App Engine
IMC Institute
Â
āļŠāđāļ§āļāļāļģ āļāļ§āļĩāļāļąāļĒ
āļŠāđāļ§āļāļāļģ āļāļ§āļĩāļāļąāļĒ
āļāļīāļāļāļķāļ āļāļīāļāļāļķāļ
Â
Semelhante a Java Web Programming [Servlet/JSP] Using GlassFish and NetBeans
(20)
webprogramming eclipse-jsp
webprogramming eclipse-jsp
Â
Intermediate Java Programming Language (in Thai)
Intermediate Java Programming Language (in Thai)
Â
Hand on Exercises Java Web Services and SOA using GlassFish ESB and NetBeans
Hand on Exercises Java Web Services and SOA using GlassFish ESB and NetBeans
Â
SOA Using GlassFishESB and NetBeans [in Thai]
SOA Using GlassFishESB and NetBeans [in Thai]
Â
Word2007 moce
Word2007 moce
Â
Atomymaxsite25
Atomymaxsite25
Â
Cisco packet tracer_1
Cisco packet tracer_1
Â
Cisco packet tracer_1
Cisco packet tracer_1
Â
MySQL Multi-Master Replication Using Tungsten Replicator 2.0.5
MySQL Multi-Master Replication Using Tungsten Replicator 2.0.5
Â
āļĢāļđāļāđāļĨāđāļĄāļ§āļīāļāļēāđāļāļĢāļāļāļēāļ
āļĢāļđāļāđāļĨāđāļĄāļ§āļīāļāļēāđāļāļĢāļāļāļēāļ
Â
EJB Programming Using Eclipse & JBoss
EJB Programming Using Eclipse & JBoss
Â
Eclipse
Eclipse
Â
Typecom
Typecom
Â
Tab10 1 manual
Tab10 1 manual
Â
Active Directory
Active Directory
Â
Exproject2
Exproject2
Â
āđāļāļāļēāļ
āđāļāļāļēāļ
Â
Google App Engine Using Eclipse
Google App Engine Using Eclipse
Â
āđJava Web Programming on Cloud Computing using Google App Engine
āđJava Web Programming on Cloud Computing using Google App Engine
Â
āļŠāđāļ§āļāļāļģ āļāļ§āļĩāļāļąāļĒ
āļŠāđāļ§āļāļāļģ āļāļ§āļĩāļāļąāļĒ
Â
Mais de IMC Institute
āļāļīāļāļĒāļŠāļēāļĢ Digital Trends āļāļāļąāļāļāļĩāđ 14
āļāļīāļāļĒāļŠāļēāļĢ Digital Trends āļāļāļąāļāļāļĩāđ 14
IMC Institute
Â
Digital trends Vol 4 No. 13 Sep-Dec 2019
Digital trends Vol 4 No. 13 Sep-Dec 2019
IMC Institute
Â
āļāļāļāļ§āļēāļĄ The evolution of AI
āļāļāļāļ§āļēāļĄ The evolution of AI
IMC Institute
Â
IT Trends eMagazine Vol 4. No.12
IT Trends eMagazine Vol 4. No.12
IMC Institute
Â
āđāļāļĢāļēāļ°āđāļŦāļāļļāđāļ Digitization āđāļĄāđāļāļāļāđāļāļāļĒāđ Digital Transformation
āđāļāļĢāļēāļ°āđāļŦāļāļļāđāļ Digitization āđāļĄāđāļāļāļāđāļāļāļĒāđ Digital Transformation
IMC Institute
Â
IT Trends 2019: Putting Digital Transformation to Work
IT Trends 2019: Putting Digital Transformation to Work
IMC Institute
Â
āļĄāļđāļĨāļāđāļēāļāļĨāļēāļāļāļīāļāļīāļāļąāļĨāđāļāļĒ 3 āļāļļāļāļŠāļēāļŦāļāļĢāļĢāļĄ
āļĄāļđāļĨāļāđāļēāļāļĨāļēāļāļāļīāļāļīāļāļąāļĨāđāļāļĒ 3 āļāļļāļāļŠāļēāļŦāļāļĢāļĢāļĄ
IMC Institute
Â
IT Trends eMagazine Vol 4. No.11
IT Trends eMagazine Vol 4. No.11
IMC Institute
Â
āđāļāļ§āļāļēāļāļāļēāļĢāļāļģ Digital transformation
āđāļāļ§āļāļēāļāļāļēāļĢāļāļģ Digital transformation
IMC Institute
Â
āļāļāļāļ§āļēāļĄ The New Silicon Valley
āļāļāļāļ§āļēāļĄ The New Silicon Valley
IMC Institute
Â
āļāļīāļāļĒāļŠāļēāļĢ IT Trends āļāļāļ IMC Institute āļāļāļąāļāļāļĩāđ 10
āļāļīāļāļĒāļŠāļēāļĢ IT Trends āļāļāļ IMC Institute āļāļāļąāļāļāļĩāđ 10
IMC Institute
Â
āđāļāļ§āļāļēāļāļāļēāļĢāļāļģ Digital transformation
āđāļāļ§āļāļēāļāļāļēāļĢāļāļģ Digital transformation
IMC Institute
Â
The Power of Big Data for a new economy (Sample)
The Power of Big Data for a new economy (Sample)
IMC Institute
Â
āļāļāļāļ§āļēāļĄ Robotics āđāļāļ§āđāļāđāļĄāđāļŦāļĄāđāļŠāļđāđāļāļĢāļīāļāļēāļĢāđāļāļāļēāļ°āļāļēāļ
āļāļāļāļ§āļēāļĄ Robotics āđāļāļ§āđāļāđāļĄāđāļŦāļĄāđāļŠāļđāđāļāļĢāļīāļāļēāļĢāđāļāļāļēāļ°āļāļēāļ
IMC Institute
Â
IT Trends eMagazine Vol 3. No.9
IT Trends eMagazine Vol 3. No.9
IMC Institute
Â
Thailand software & software market survey 2016
Thailand software & software market survey 2016
IMC Institute
Â
Developing Business Blockchain Applications on Hyperledger
Developing Business Blockchain Applications on Hyperledger
IMC Institute
Â
Digital transformation @thanachart.org
Digital transformation @thanachart.org
IMC Institute
Â
āļāļāļāļ§āļēāļĄ Big Data āļāļēāļāļāļĨāđāļāļ thanachart.org
āļāļāļāļ§āļēāļĄ Big Data āļāļēāļāļāļĨāđāļāļ thanachart.org
IMC Institute
Â
āļāļĨāļĒāļļāļāļāđ 5 āļāđāļēāļāļāļąāļāļāļēāļĢāļāļģ Digital Transformation
āļāļĨāļĒāļļāļāļāđ 5 āļāđāļēāļāļāļąāļāļāļēāļĢāļāļģ Digital Transformation
IMC Institute
Â
Mais de IMC Institute
(20)
āļāļīāļāļĒāļŠāļēāļĢ Digital Trends āļāļāļąāļāļāļĩāđ 14
āļāļīāļāļĒāļŠāļēāļĢ Digital Trends āļāļāļąāļāļāļĩāđ 14
Â
Digital trends Vol 4 No. 13 Sep-Dec 2019
Digital trends Vol 4 No. 13 Sep-Dec 2019
Â
āļāļāļāļ§āļēāļĄ The evolution of AI
āļāļāļāļ§āļēāļĄ The evolution of AI
Â
IT Trends eMagazine Vol 4. No.12
IT Trends eMagazine Vol 4. No.12
Â
āđāļāļĢāļēāļ°āđāļŦāļāļļāđāļ Digitization āđāļĄāđāļāļāļāđāļāļāļĒāđ Digital Transformation
āđāļāļĢāļēāļ°āđāļŦāļāļļāđāļ Digitization āđāļĄāđāļāļāļāđāļāļāļĒāđ Digital Transformation
Â
IT Trends 2019: Putting Digital Transformation to Work
IT Trends 2019: Putting Digital Transformation to Work
Â
āļĄāļđāļĨāļāđāļēāļāļĨāļēāļāļāļīāļāļīāļāļąāļĨāđāļāļĒ 3 āļāļļāļāļŠāļēāļŦāļāļĢāļĢāļĄ
āļĄāļđāļĨāļāđāļēāļāļĨāļēāļāļāļīāļāļīāļāļąāļĨāđāļāļĒ 3 āļāļļāļāļŠāļēāļŦāļāļĢāļĢāļĄ
Â
IT Trends eMagazine Vol 4. No.11
IT Trends eMagazine Vol 4. No.11
Â
āđāļāļ§āļāļēāļāļāļēāļĢāļāļģ Digital transformation
āđāļāļ§āļāļēāļāļāļēāļĢāļāļģ Digital transformation
Â
āļāļāļāļ§āļēāļĄ The New Silicon Valley
āļāļāļāļ§āļēāļĄ The New Silicon Valley
Â
āļāļīāļāļĒāļŠāļēāļĢ IT Trends āļāļāļ IMC Institute āļāļāļąāļāļāļĩāđ 10
āļāļīāļāļĒāļŠāļēāļĢ IT Trends āļāļāļ IMC Institute āļāļāļąāļāļāļĩāđ 10
Â
āđāļāļ§āļāļēāļāļāļēāļĢāļāļģ Digital transformation
āđāļāļ§āļāļēāļāļāļēāļĢāļāļģ Digital transformation
Â
The Power of Big Data for a new economy (Sample)
The Power of Big Data for a new economy (Sample)
Â
āļāļāļāļ§āļēāļĄ Robotics āđāļāļ§āđāļāđāļĄāđāļŦāļĄāđāļŠāļđāđāļāļĢāļīāļāļēāļĢāđāļāļāļēāļ°āļāļēāļ
āļāļāļāļ§āļēāļĄ Robotics āđāļāļ§āđāļāđāļĄāđāļŦāļĄāđāļŠāļđāđāļāļĢāļīāļāļēāļĢāđāļāļāļēāļ°āļāļēāļ
Â
IT Trends eMagazine Vol 3. No.9
IT Trends eMagazine Vol 3. No.9
Â
Thailand software & software market survey 2016
Thailand software & software market survey 2016
Â
Developing Business Blockchain Applications on Hyperledger
Developing Business Blockchain Applications on Hyperledger
Â
Digital transformation @thanachart.org
Digital transformation @thanachart.org
Â
āļāļāļāļ§āļēāļĄ Big Data āļāļēāļāļāļĨāđāļāļ thanachart.org
āļāļāļāļ§āļēāļĄ Big Data āļāļēāļāļāļĨāđāļāļ thanachart.org
Â
āļāļĨāļĒāļļāļāļāđ 5 āļāđāļēāļāļāļąāļāļāļēāļĢāļāļģ Digital Transformation
āļāļĨāļĒāļļāļāļāđ 5 āļāđāļēāļāļāļąāļāļāļēāļĢāļāļģ Digital Transformation
Â
Java Web Programming [Servlet/JSP] Using GlassFish and NetBeans
1.
1
Hand-on Exercises āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļ§āļ Java Servlet / JSP āđāļāļĒāđāļ GlassFish and NetBeans 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
9.
9 āļŦāļĄāļēāļĒāđāļŦāļ1 āļŦāļĄāļēāļĒāđāļĨāļāļāļāļĢ5āļāđāļāļĒāļāļāļāļēāļāļāļ°āđāļāļ 8080
āļĒāļāđāļ§āļāļ§/āļēāļāļ°āļ.āļēāļŦāļāļāļŦāļĄāļēāļĒāđāļĨāļāļāļ āļĢāļāļ 1.6 āļāļĨāļĨāļāļ!āļāđāļāļāļēāļāļāļēāļĢāļĢāļāđāļāļĢāđāļāļĢāļĄ addCustomer.html āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄ 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
Baixar agora