SessionServlet.java
package examples.servlets;
import examples.utils.common.ExampleUtils;
import java.io.IOException;
import java.io.PrintWriter;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import weblogic.management.MBeanHome;
public class SessionServlet extends HttpServlet
{
public void doGet HttpServletRequest(req, HttpServletResponse res)
throws ServletException, IOException
{
//Get the session object
HttpSession session = req.getSession(true);
// Local variables
String serverName;
String failoverMessage = "";
String str = (String) session.getAttribute("simplesession.servername");
PrintWriter out = res.getWriter();
Integer ival;
// set content type and other response header fields first
res.setContentType("text/html");
// Retrieve the count value from the session
ival = (Integer) session.getAttribute("sessiontest.counter");
if (ival==null) ival = new Integer(1);
else ival = new Integer(ival.intValue() + 1);
session.setAttribute("sessiontest.counter", ival);
out.println(ExampleUtils.returnHtmlHeader("Session Servlet"));
try
{
serverName = getServerName();
if (str != null && str.equals(serverName)) failoverMessage = "";
else failoverMessage = " (failing over from server" +str+ ")";
session.setAttribute("simplesession.servername", serverName);
// then write the data of the response
out.println("You have hit this page <b> + ival + "</b> times.<p>);
out.println("The server currently hosting this session is <B> + serverName + "</B> + failoverMessage + "<p>);
// when the user clicks on the link in the next line,
// the SessionServlet is called again,
// but now URL rewriting is turned on
out.println("Click <a href=" + res.encodeURL("SessionServlet") + ">here</a>);
out.println(" to ensure that session tracking is working even " + "if cookies aren't supported.<br>);
out.println("Note that by default URL rewriting is not enabled " + "because of its expensive overhead");
out.println("<p>);
out.println("<h4>Request and Session Data:</h4>);
out.println("Session ID in Request: " + req.getRequestedSessionId());
out.println("<br>Session ID in Request from Cookie: " + req.isRequestedSessionIdFromCookie());
out.println("<br>Session ID in Request from URL: " + req.isRequestedSessionIdFromURL());
out.println("<br>Valid Session ID: " + req.isRequestedSessionIdValid());
out.println("<h4>Session Data:</h4>);
out.println("New Session: " + session.isNew());
out.println("<br>Session ID: " + session.getId());
out.println("<br>Creation Time: " + session.getCreationTime());
out.println("<br>Last Accessed Time: " + session.getLastAccessedTime());
}
catch (Exception ex)
{
out.println("<p><b>!! Example Failed !!<br><br> The following exception occur:</b><br><br>);
ex.printStackTrace(new PrintWriter(out));
ex.printStackTrace();
}
finally
{
out.println(ExampleUtils.returnHtmlFooter());
}
}
private String getServerName() throws Exception
{
String toReturn = null;
Context myCtx = new InitialContext();
MBeanHome mbeanHome = (MBeanHome)myCtx.lookup("weblogic.management.home.localhome");
toReturn = mbeanHome.getMBeanServer().getServerName();
if (toReturn == null) return "";
else return toReturn;
}
}