package enumtest; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import static enumtest.TheEnum.*; public class TheServlet extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { TheEnum e = getBean().getStuff(); response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("Servlet TheServlet"); out.println("

Bean returned " + e + "

"); out.println(check(e,APPLE) + "
"); out.println(check(e,GRAPE) + "
"); out.println(check(e,LEMON) + "
"); out.println("

Bean checking " + GRAPE + "

"); out.println("It is " + (getBean().checkStuff(GRAPE) ? "" : "not ") + " a GRAPE."); out.println(""); out.close(); } private String check(TheEnum e1, TheEnum e2) { return info(e1) + (e1 == e2 ? " == " : " != ") + info(e2); } private String info(TheEnum e) { return (e + "@" + e.hashCode() + " (class " + e.getClass().getName() + "@" + e.getClass().hashCode() + ", classloader " + e.getClass().getClassLoader().hashCode() + ")"); } public Bean getBean() { try { javax.naming.Context c = new javax.naming.InitialContext(); return (Bean) c.lookup(Bean.class.getName()); } catch(javax.naming.NamingException ne) { java.util.logging.Logger.getLogger(getClass().getName()).log(java.util.logging.Level.SEVERE,"exception caught" ,ne); throw new RuntimeException(ne); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } public String getServletInfo() { return "Short description"; } }