Now that you've mastered the basics, it's time to bring out thebig iron. This week, The JSP Files explores the various techniquesavailable to "maintain state" on a JSP-based Web site. Learn about theCookie and Session objects, find out how to build a cookie-based hitcounter, and read about a simple yet effective way of protecting sensitiveWeb pages with the Session object.
Once you've understood these two fundamental techniques, the rest of thecode should be simple to decipher. If a cookie is found, the countervariable is incremented, and the setValue() method is used to write a newvalue to the cookie; this counter variable is then displayed on the page.If a cookie is not found, it implies that this is the user's first visit tothe page (or a visit made after a previous cookie has expired); a newcookie is set and an appropriate message displayed.
Again, since this example deals with numbers rather than strings,innumerable contortions are required to convert the string value in thecookie to a number, increment it, and then convert it back to a string forstorage in the cookie.
Here's another example, this one a simple form. Enter your name and submitthe form - a cookie will be created containing the name you entered. Whenyou next visit the page, your name will be automatically filled in for you.
// declare some variables
Cookie thisCookie = null;
// the cookie you want
String cookieName = "username";
int cookieFound = 0;
String username = "";
// get an array of all cookies available on client
Cookie cookies = request.getCookies();
// iterate through array looking for your cookie
for(int i=0; i<cookies.length; i++)
thisCookie = cookies[i];
cookieFound = 1;
// if found
if(cookieFound == 1)
// get the counter value
username = thisCookie.getValue();
<form action="login.jsp" method="post">
<td><input type=text name=username value="<%= username %>"> <input
type="Submit" value="Click me"></td>
This is the initial login form, "form.jsp" - as you can see, it checks forthe presence of a cookie, and uses it to fill in the account username ifavailable.
When the form is submitted, "login.jsp" is called to process the dataentered into the form; it will also set cookie attributes appropriately.
// get values from form
String username = request.getParameter("username");
// create a new cookie to store the username
Cookie alpha = null;
alpha = new Cookie("username", username);
// send it to client
Get lost, <b><%= username %></b>!