For 2021 - online Python 3 training - see ((here)).
Our plans were to retire in summer 2020 and see the world, but Coronavirus has lead us into a lot of lockdown programming in Python 3 and PHP 7.
We can now offer tailored online training - small groups, real tutors - works really well for groups of 4 to 14 delegates. Anywhere in the world; course language English.
Please ask about private 'maintenance' training for Python 2, Tcl, Perl, PHP, Lua, etc.
Servlet life cycle, and Java Servlet variable scope
If 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
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
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 articlesJ907 - JSP - JavaServer Pages 
Last day of Java - (2004-10-08) 
The HTML++ Metalanguage - (2007-01-22) 
Java (JSP and Servlet examples) live on our server - (2008-02-23) 
A very easy JSP (Java Server Page) - (2009-05-01) 
What is a JSP tag library? - (2009-05-01) 
Using JSPs, Tag Libraries, Java Beans, Tomcat in one short example - (2009-12-04) 
Java Beans, tag libraries and JSPs - what and why. - (2010-11-13) 
Servlet v JSP (Java Server Page). What is the difference? - (2013-02-06)J906 - Java - Servlets in More Detail 
New servlet from old - (2005-10-28) 
Single login and single threaded models - Java and PHP - (2008-01-04) 
javax.servlet cannot be resolved - how to solve - (2008-11-26) 
Reading and writing cookies in Java Servlets and JSPs - (2010-02-26) 
The Multiple Inheritance Conundrum, interfaces and mixins - (2010-04-11) 
Changing a Servlet - more that just editing and compiling - (2010-11-12) 
Distributing the server load - yet ensuring that each user return to the same system (Apache httpd and Tomcat) - (2011-05-18) 
A Java servlet that is also a stand alone program. And a server that is also a web client. - (2015-02-19) 
Java web application for teaching - now with sessions and clustering / load balancing demonstrations - (2015-02-20)
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 togetherAbstract Classes - JavaChoosing the right version of Java and TomcatServlet life cycle, and Java Servlet variable scopeWhat Linux run level am I in?You cannot please all of the people all of the timePatterns in numbers - room occupancyOffers that I can refuseMelksham 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
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).