<< Chapter < Page Chapter >> Page >

Both programs are designed to illustrate the concept of URL rewriting and are not intended to have any practical value in their own right.

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

The servlet program

The servlet named Java4560a.java illustrates session tracking using URL rewriting. In this servlet, parameters containing the historical data are added to the servlet's URLeach time the servlet generates a new HTML page. The updated URL is included as a hyperlink in the new web page.

The servlet output

Each time the servlet is called, it creates and displays an HTML page on the client screen similar to that shown in Figure 2 .

Figure 2 - Servlet output screen.

Missing Figure

The page displays:

  • A hyperlink to the servlet URL labeled Click Here
  • A list of the dates and times on which the user previously called the servlet by clicking on the hyperlink.

A get request

Each time the user clicks the hyperlink, the client sends a GET request to the server. The GET request calls the servlet, which determines the current dateand time in milliseconds relative to January 1, 1970. An HTML page is created and sent back to the client.

Update the parameter string

The current date and time in milliseconds is added as a parameter named item to the servlet URL referenced by the hyperlink in the newly-created HTML page. In addition to the current date and time, the values ofthe previous dates and times on which the user called the servlet are retrieved from the incoming URL parameter string and appended to the new URL parameter string.

In other words, the parameter string values for each successive URL that is generated match those of the previous URL. In addition, a new parameter value isadded that represents the current date and time.

Embed historical data in the web page

In a manner similar to session tracking using hidden fields, the historical data is saved by embedding it in the new HTML page that is returned to the client. There is no requirement to save the historical data in adatabase or in the server's file system.

Figure 3 shows the HTML source code that corresponds to the web page shown in Figure 2 .

Figure 3 - HTML code created by servlet.

Missing Figure

The URL parameter string

The most interesting thing in Figure 3 is the content of Line 4. (Note that Line 4 is wrapped and appears as three physical lines in Figure 3 .) Each large numeric value that you see in Line 4 is the number of milliseconds sinceJanuary 1, 1970 for a particular date and time. These values in milliseconds are translated into actual dates and times and shown in Lines 6 through 9.

No special software requirements

This approach places no special requirements on the server software other than the ability to support Java servlets. The approach should be compatible with all browsers that support hyperlinks.

Interesting code fragments

Beginning of the doGet method

As mentioned earlier, I will explain this program in fragments. Listing 1 shows the beginning of the controlling class and the beginning of the doGet method. You have seen code like this before, so I won't discuss it further.

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