Friday, March 11, 2011

Handling invalid sessions




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 HandlingInvalidSessions extends HttpServlet {
  public void goGet( HttpServletRequest req, HttpServletResponse res )
      throws ServletException, IOException {
    res.setContentType( "text/html" );
    PrintWriter pw = res.getWriter();
    pw.println( "" );

    HttpSession theSession = req.getSession();

    try {
      Object obj = theSession.getAttribute( "counter" );

      /**
       * the above call will throw an IllegalStateException
       * if theSession has been invalidated (e.g. by the
       * container or by another servlet)
       *
       * a defensive servlet programmer should wrap all accesses
       * to a servlet session (not just getAttribute()) in a
       * try/catch block so that they can take the appropriate
       * action to handle the case where a session is destroyed
       * at anytime
       */
    }
    catch( IllegalStateException ise ) {
      // handle invalid session here
    }

    pw.println( "" );
  }
}

No comments:

Post a Comment