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";
}
}