<< Chapter < Page Chapter >> Page >

Insofar as the HTTP protocol is concerned, each time the customer views a different page in the catalog, all information regarding previously viewed pagesis forgotten. The HTTP protocol doesn't save state information regarding an ongoing session by that customer involving multiple pages. It is theresponsibility of the application to track the session involving that client (customer) .

In the case of the shopping cart application, it is also the responsibility of the application to keep track of the items in the cart associated with thatcustomer.

Session tracking using hidden fields

There are several different ways to accomplish session tracking with a servlet. This module will illustrate one of those ways, which is commonly knownas hidden fields . Other ways will be illustrated in future modules

Some session tracking schemes maintain historical information over many user sessions on a website. Others schemes are more limited. The scheme that I willexplain in this module is generally limited to one session consisting of multiple requests.

This scheme is probably not useful for large scale web commerce. However, it might be useful for an online game where the user makes a move and then clicks a submit button. The computer needs to remember the entire history of the game, but needn'tnecessarily remember the history if the user leaves the website by closing the browser page.

A servlet and a JSP

I will explain two different programs that accomplish the same purpose. One of the programs is a servlet. The other program is a JSP. You will see that the JSP version is physically easier to write than the servlet version.However, you probably need to understand the servlet version in order to understand the JSP version. The two also differ in that the servlet is capableof determining the name of the server on which it is running but the JSP does not have that capability.

Discussion and sample code

I will discuss both programs in fragments. A complete listing of the servlet program named Java4550a.java is provided in Listing 16 . A complete listing of the JSP program named Java4550a.jsp is provided in Listing 17 .

The servlet program

The program output

Each time the servlet is called by a browser, it creates and displays an HTML form on the browser screen similar to that shown in Figure 1 .

Figure 1 - The servlet user interface at startup.

Missing Figure

The HTML form displays:

  • An input text field through which the client can submit a name
  • A submit button
  • A list of previously submitted names

A new request

Each time the user clicks the submit button, the contents of the Name field are sent to the server and the server views that as a new request. Theserver does not remember historical information from one request to the next.

However, this servlet provides a mechanism by which a historical list of Name values from a sequence of requests is saved and displayed in the area identified as Empty in Figure 1 .

Tom, Dick, and Harry

For example, Figure 2 shows the browser display after the names Tom, Dick, and Harry have been sent to theserver in three separate requests. (Note the list of names near the left-center of Figure 2 .) The name Joe has been entered into the text field in Figure 2 but the user has not yet clicked the submit button to send it to the server. Therefore, that name does not appear on the list.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Object-oriented programming (oop) with java. OpenStax CNX. Jun 29, 2016 Download for free at https://legacy.cnx.org/content/col11441/1.201
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?

Ask