SlideShare a Scribd company logo
1 of 17
Download to read offline
All You Ever Wanted To Know
About Servlets
But Were Afraid to Ask
2
Three Embedded Scripting
Languages
• ASP is proprietary to Microsoft and only
works on certain servers
• JSP is an open standard for use with many
servers
• Built on Java
• PHP is open source freeware
• All allow you to insert code, objects, and do
text substitutions in webpages
3
Java Servlets
• Not as simple to use as JSP, but easier to
install
• We don't have JSP at Dal FCS
• Run on the server (like SSI or CGI)
• Threaded (unlike SSI or CGI)
• Run inside the single JVM owned by http
4
But what about mod_perl?
• mod_perl is server-side and light weight
(like a thread)
• Java has some network support that is more
sometimes more convenient than using perl
• Particularly for session tracking
5
Session Tracking With Servlets
Programs written in java produce output
which is sent to the client like any CGI
program
6
Session Tracking With Servlets
• All servlets implement the Servlet
interface or extend a class the implements it
• Important methods:
Init Service Destroy
getServletConfig getServletInfo
7
Common Methods
• We will use HttpServlet and these methods:
• doGet
• doPost
• doPut
• doDelete
• init
• destroy
• getServletInfo
• One of those methods must be overridden for each
servlet
8
Example: Hello Servlet
• Source Code
• Run it
• See Compilation Record
• Must be compiled and run from torch
• Note how it overrides the doGet method
• Which process runs the servlet?
9
Maintaining State
There are 3 ways to maintain state?
1. Cookies
2. Hidden fields in forms
3. Session level authentication
10
Maintaining State
Ways to maintain state:
1. Cookies
2. Hidden fields in forms
(or using URL rewriting to fake it)
3. Session level authentication
4. Servlets
• Uses cookies when user-agent supports it
• Uses URL rewriting if can't use cookies
11
Session Tracking
Ways to maintain state:
1. Cookies
2. Hidden fields in forms
3. URL rewriting
4. Session-level authentication
5. Servlets
• Will use cookies if possible
• Will use URL rewriting if no cookies
12
How Do Servlets
Track The Session?
• Each session has a unique ID
• The first time a session is begun an ID is
assigned
• Every subsequent connection must send the
ID (through a cookie or the URL)
13
Servlet Sessions
• HttpSession session =
request.getSession();
• If null then this is a new session
• Force a new session like this…
request.getSession(true);
14
Storing Information in Sessions
• setAttribute(String name, Object value)
• getAttribute(String name)
• removeAttribute(String name)
• getAttributeNames()
15
Information About Sessions
• getId()
• isNew()
• getCreationTime()
• getLastAccessedTime()
• getMaxInactiveInterval()
16
Example: Session Tracking
• Source Code
• Run it
Note the encoding of the URL
All examples are available at
http://www.cs.dal.ca/~jamie/CS3172/Materials/examples/servlets/
17
Questions?
• Which process executes the servlets?
• How are they like CGI programs?
• How are they different from CGI programs?
• What advantages do they have over other
technologies we've seen so far?

More Related Content

Similar to 005428055.pdf

Performance of Microservice Frameworks on different JVMs
Performance of Microservice Frameworks on different JVMsPerformance of Microservice Frameworks on different JVMs
Performance of Microservice Frameworks on different JVMs
Maarten Smeets
 
SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld
SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorldSQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld
SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld
Polish SQL Server User Group
 

Similar to 005428055.pdf (20)

Wt unit 3
Wt unit 3 Wt unit 3
Wt unit 3
 
Servlet.ppt
Servlet.pptServlet.ppt
Servlet.ppt
 
Servlet.ppt
Servlet.pptServlet.ppt
Servlet.ppt
 
Servlet1.ppt
Servlet1.pptServlet1.ppt
Servlet1.ppt
 
Performance of Microservice Frameworks on different JVMs
Performance of Microservice Frameworks on different JVMsPerformance of Microservice Frameworks on different JVMs
Performance of Microservice Frameworks on different JVMs
 
Presentation on Web Attacks
Presentation on Web AttacksPresentation on Web Attacks
Presentation on Web Attacks
 
Advance Java
Advance JavaAdvance Java
Advance Java
 
Advanced java+JDBC+Servlet
Advanced java+JDBC+ServletAdvanced java+JDBC+Servlet
Advanced java+JDBC+Servlet
 
Enterprise java unit-2_chapter-3
Enterprise  java unit-2_chapter-3Enterprise  java unit-2_chapter-3
Enterprise java unit-2_chapter-3
 
Automating your php infrastructure with the zend server api
Automating your php infrastructure with the zend server apiAutomating your php infrastructure with the zend server api
Automating your php infrastructure with the zend server api
 
Java Servlet
Java Servlet Java Servlet
Java Servlet
 
Integrating Servlets and JSP (The MVC Architecture)
Integrating Servlets and JSP  (The MVC Architecture)Integrating Servlets and JSP  (The MVC Architecture)
Integrating Servlets and JSP (The MVC Architecture)
 
005428052.pdf
005428052.pdf005428052.pdf
005428052.pdf
 
java Servlet technology
java Servlet technologyjava Servlet technology
java Servlet technology
 
Liit tyit sem 5 enterprise java unit 1 notes 2018
Liit tyit sem 5 enterprise java  unit 1 notes 2018 Liit tyit sem 5 enterprise java  unit 1 notes 2018
Liit tyit sem 5 enterprise java unit 1 notes 2018
 
Tdd using Jasmine and karma
Tdd using  Jasmine and karmaTdd using  Jasmine and karma
Tdd using Jasmine and karma
 
Windows 8 Apps and the Outside World
Windows 8 Apps and the Outside WorldWindows 8 Apps and the Outside World
Windows 8 Apps and the Outside World
 
SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld
SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorldSQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld
SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld
 
Using MCollective with Chef - cfgmgmtcamp.eu 2014
Using MCollective with Chef - cfgmgmtcamp.eu 2014Using MCollective with Chef - cfgmgmtcamp.eu 2014
Using MCollective with Chef - cfgmgmtcamp.eu 2014
 
Node.js to the rescue
Node.js to the rescueNode.js to the rescue
Node.js to the rescue
 

More from EidTahir

More from EidTahir (20)

Servlets+JSP.ppt
Servlets+JSP.pptServlets+JSP.ppt
Servlets+JSP.ppt
 
servlets.ppt
servlets.pptservlets.ppt
servlets.ppt
 
005428058.pdf
005428058.pdf005428058.pdf
005428058.pdf
 
DNS.pptx
DNS.pptxDNS.pptx
DNS.pptx
 
2.J2EE_Overview.ppt
2.J2EE_Overview.ppt2.J2EE_Overview.ppt
2.J2EE_Overview.ppt
 
009458666.pdf
009458666.pdf009458666.pdf
009458666.pdf
 
009921362.pdf
009921362.pdf009921362.pdf
009921362.pdf
 
009577496.pdf
009577496.pdf009577496.pdf
009577496.pdf
 
009478419.pdf
009478419.pdf009478419.pdf
009478419.pdf
 
009445185.pdf
009445185.pdf009445185.pdf
009445185.pdf
 
009705432.pdf
009705432.pdf009705432.pdf
009705432.pdf
 
009694598.pdf
009694598.pdf009694598.pdf
009694598.pdf
 
enterprisejavaunit-1chapter-2-210914075956.pdf
enterprisejavaunit-1chapter-2-210914075956.pdfenterprisejavaunit-1chapter-2-210914075956.pdf
enterprisejavaunit-1chapter-2-210914075956.pdf
 
010118565.pdf
010118565.pdf010118565.pdf
010118565.pdf
 
005528214.pdf
005528214.pdf005528214.pdf
005528214.pdf
 
005432796.pdf
005432796.pdf005432796.pdf
005432796.pdf
 
009586150.pdf
009586150.pdf009586150.pdf
009586150.pdf
 
009551323.pdf
009551323.pdf009551323.pdf
009551323.pdf
 
009723779.pdf
009723779.pdf009723779.pdf
009723779.pdf
 
005443266.pdf
005443266.pdf005443266.pdf
005443266.pdf
 

Recently uploaded

1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 

Recently uploaded (20)

ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 

005428055.pdf

  • 1. All You Ever Wanted To Know About Servlets But Were Afraid to Ask
  • 2. 2 Three Embedded Scripting Languages • ASP is proprietary to Microsoft and only works on certain servers • JSP is an open standard for use with many servers • Built on Java • PHP is open source freeware • All allow you to insert code, objects, and do text substitutions in webpages
  • 3. 3 Java Servlets • Not as simple to use as JSP, but easier to install • We don't have JSP at Dal FCS • Run on the server (like SSI or CGI) • Threaded (unlike SSI or CGI) • Run inside the single JVM owned by http
  • 4. 4 But what about mod_perl? • mod_perl is server-side and light weight (like a thread) • Java has some network support that is more sometimes more convenient than using perl • Particularly for session tracking
  • 5. 5 Session Tracking With Servlets Programs written in java produce output which is sent to the client like any CGI program
  • 6. 6 Session Tracking With Servlets • All servlets implement the Servlet interface or extend a class the implements it • Important methods: Init Service Destroy getServletConfig getServletInfo
  • 7. 7 Common Methods • We will use HttpServlet and these methods: • doGet • doPost • doPut • doDelete • init • destroy • getServletInfo • One of those methods must be overridden for each servlet
  • 8. 8 Example: Hello Servlet • Source Code • Run it • See Compilation Record • Must be compiled and run from torch • Note how it overrides the doGet method • Which process runs the servlet?
  • 9. 9 Maintaining State There are 3 ways to maintain state? 1. Cookies 2. Hidden fields in forms 3. Session level authentication
  • 10. 10 Maintaining State Ways to maintain state: 1. Cookies 2. Hidden fields in forms (or using URL rewriting to fake it) 3. Session level authentication 4. Servlets • Uses cookies when user-agent supports it • Uses URL rewriting if can't use cookies
  • 11. 11 Session Tracking Ways to maintain state: 1. Cookies 2. Hidden fields in forms 3. URL rewriting 4. Session-level authentication 5. Servlets • Will use cookies if possible • Will use URL rewriting if no cookies
  • 12. 12 How Do Servlets Track The Session? • Each session has a unique ID • The first time a session is begun an ID is assigned • Every subsequent connection must send the ID (through a cookie or the URL)
  • 13. 13 Servlet Sessions • HttpSession session = request.getSession(); • If null then this is a new session • Force a new session like this… request.getSession(true);
  • 14. 14 Storing Information in Sessions • setAttribute(String name, Object value) • getAttribute(String name) • removeAttribute(String name) • getAttributeNames()
  • 15. 15 Information About Sessions • getId() • isNew() • getCreationTime() • getLastAccessedTime() • getMaxInactiveInterval()
  • 16. 16 Example: Session Tracking • Source Code • Run it Note the encoding of the URL All examples are available at http://www.cs.dal.ca/~jamie/CS3172/Materials/examples/servlets/
  • 17. 17 Questions? • Which process executes the servlets? • How are they like CGI programs? • How are they different from CGI programs? • What advantages do they have over other technologies we've seen so far?