<< 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 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.
The page displays:
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.
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.
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.
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?