You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.5 KiB
Java

Updating session items
package com.ack.web.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class UpdatingSessionItems extends HttpServlet {
public void doGet( HttpServletRequest req, HttpServletResponse res )
throws ServletException, IOException {
res.setContentType( "text/html" );
PrintWriter pw = res.getWriter();
pw.println( "<HTML><BODY>" );
HttpSession theSession = req.getSession();
// updated a named item in the session
synchronized( theSession ) {
/**
* when updating items within a session object, you must
* ensure that you have exclusive access to session object
* by first synchronizing on the session
*/
Integer counter = (Integer) theSession.getAttribute( "counter" );
if( counter == null ) {
theSession.setAttribute( "counter", new Integer( 1 ) );
}
else {
theSession.setAttribute( "counter", new Integer( counter.intValue() + 1 ) );
}
pw.println( "<BR>" + counter );
/**
* also note that items inside your session object should really
* be serializable to ensure that your session can scale within
* a clustered environment
*/
}
pw.println( "</BODY></HTML>" );
}
}