A session size monitoring servlet

No Gravatar

This is a quick example of a servlet that will tell you the size of your session. This is helpful if you don’t have the tools built into your development suite to give you this information. I found this laying around that I had written a while back. It essentially is a simple servlet that grabs all the session attributes and writes out each to a ObjectOutputStream object. It then takes the size of the ByteArrayOutputStream object contained in the ObjectOutputStream object and displays that.


public class HttpSessionSizeServlet extends HttpServlet {
    private static Logger log = LogFactory.
	getLogger(HttpSessionSizeServlet.class);
    public void doGet(HttpServletRequest req,
		HttpServletResponse resp)
		throws ServletException, IOException {
        HttpSession session = req.getSession();
        if (session != null) {
            Enumeration e = session.getAttributeNames();
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            ObjectOutputStream s = new ObjectOutputStream(bos);

            while (e.hasMoreElements()) {
                Object o = session.getAttribute((String) e.nextElement());
                s.writeObject(o);
                s.flush();
            }
            log.info("size = " + bos.size());
        }
    }

    public void doPost(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException {
        //do nothing
    }
}

Hope this helps.

Be Sociable, Share!

Leave a Reply

Your email address will not be published. Required fields are marked *