Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
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 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
J907 - JSP - JavaServer Pages
  [79] Last day of Java - (2004-10-08)
  [1050] The HTML++ Metalanguage - (2007-01-22)
  [1550] Java (JSP and Servlet examples) live on our server - (2008-02-23)
  [2147] A very easy JSP (Java Server Page) - (2009-05-01)
  [2151] What is a JSP tag library? - (2009-05-01)
  [2525] Using JSPs, Tag Libraries, Java Beans, Tomcat in one short example - (2009-12-04)
  [3046] Java Beans, tag libraries and JSPs - what and why. - (2010-11-13)
  [3997] Servlet v JSP (Java Server Page). What is the difference? - (2013-02-06)

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

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., 2022: 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/2183_Ser ... scope.html • PAGE BUILT: Sun Oct 11 16:07:41 2020 • BUILD SYSTEM: JelliaJamb