Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
Retiring, March 2020 - sorry, you have missed our final public course.
The Coronavirus situation has lead us to suspend public training - which was on the cards anyway, with no plans to resume

Please ask about private 'maintenance' training for Python, Tcl, Perl, PHP, Lua, etc
Happily continuing private consultancy / programming work
Servlet life cycle, and Java Servlet variable scope

Java Servlet CycleIf you write a 'traditional' program and run it ... then it is cleared from memory when you finish running it. It does its job then exits. And so it is with a java program that you run from the command line under the java command.

But if you're running a web server, where lots of users all call up the same page, you've got a different requirement / scenario. You really don't want a piece of code to keep dropping out of memory to be reloaded yet again a few milliseconds later as your next user comes along, as that would be hugely inefficient. So on a web server, when running Java, you may use the servlet approach.

A Servlet is loaded into a container (we provide training on the Tomcat container) and remains loaded - i.e. running as a daemon on service. Each time a user submits a GET request to the web server / servlet (i.e. follows a link to the URL that points to the servlet, or sends a default setup form to it), the doGet method is run which processes a request object into a response object. And each time the user POSTs to the servlet's URL, the doPost method is used to convert a request to a response.

When you're writing the class ("code") for a Java Servlet, then, you need to be very careful that you don't have one user leave behind variables / settings which the next user could pick up. On rare occasions, this "global scope" IS useful - for example to hold the highest bid so far for an item in an auction - but more usually, you'll want to use a "session scope" where a separate set of variables / settings are used for each user as they mover from page to page, adding things to their shopping cart. They you'll also have "local scope" - variables that are only used within an individual request.

Global scope variables may be defined as statics within the servlet class as a whole, session scope variables within a session object, and local variables within the methods of the servlet.

Init and finalise on my diagram show methods used to initialise a servlet when it's first loaded into the container, and used to flush it out when it's no longer needed after a long period of inactivity
(written 2009-05-16)

Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
J906 - Java - Servlets in More Detail
  [4432] Java web application for teaching - now with sessions and clustering / load balancing demonstrations - (2015-02-20)
  [4431] A Java servlet that is also a stand alone program. And a server that is also a web client. - (2015-02-19)
  [3293] Distributing the server load - yet ensuring that each user return to the same system (Apache httpd and Tomcat) - (2011-05-18)
  [3044] Changing a Servlet - more that just editing and compiling - (2010-11-12)
  [2717] The Multiple Inheritance Conundrum, interfaces and mixins - (2010-04-11)
  [2652] Reading and writing cookies in Java Servlets and JSPs - (2010-02-26)
  [1909] javax.servlet cannot be resolved - how to solve - (2008-11-26)
  [1550] Java (JSP and Servlet examples) live on our server - (2008-02-23)
  [1495] Single login and single threaded models - Java and PHP - (2008-01-04)
  [479] New servlet from old - (2005-10-28)

J907 - JSP - JavaServer Pages
  [3997] Servlet v JSP (Java Server Page). What is the difference? - (2013-02-06)
  [3046] Java Beans, tag libraries and JSPs - what and why. - (2010-11-13)
  [2525] Using JSPs, Tag Libraries, Java Beans, Tomcat in one short example - (2009-12-04)
  [2151] What is a JSP tag library? - (2009-05-01)
  [2147] A very easy JSP (Java Server Page) - (2009-05-01)
  [1050] The HTML++ Metalanguage - (2007-01-22)
  [79] Last day of Java - (2004-10-08)

Back to
What Linux run level am I in?
Previous and next
Horse's mouth home
Forward to
Choosing the right version of Java and Tomcat
Some other Articles
Are we IITT (Institute of IT Training) members?
An FAQ on the Apache httpd and Apache Tomcat web servers, and on using them together
Abstract Classes - Java
Choosing the right version of Java and Tomcat
Servlet life cycle, and Java Servlet variable scope
What Linux run level am I in?
You cannot please all of the people all of the time
Patterns in numbers - room occupancy
Offers that I can refuse
Melksham Candidates for Wiltshire Unitary Election
4759 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 at 50 posts per page

This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price.

Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2020: 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/2183_Ser ... scope.html • PAGE BUILT: Sat May 27 16:49:10 2017 • BUILD SYSTEM: WomanWithCat