1 package com.quadcap.app.qws; 2 3 40 41 import java.util.HashMap ; 42 43 import javax.servlet.ServletConfig ; 44 import javax.servlet.ServletContext ; 45 import javax.servlet.ServletException ; 46 47 import javax.servlet.http.HttpServlet ; 48 import javax.servlet.http.HttpServletRequest ; 49 import javax.servlet.http.HttpServletResponse ; 50 51 import com.quadcap.http.server22.WebApplication; 52 import com.quadcap.http.server22.WebServer; 53 54 import com.quadcap.util.Debug; 55 56 61 public class WebAdminServlet extends HttpServlet { 62 HashMap actions = new HashMap (); 63 64 static HashMap actionClasses = new HashMap (); 65 static { 66 actionClasses.put("/load.adm", "com.quadcap.app.qws.ActionLoad"); 67 actionClasses.put("/list.adm", "com.quadcap.app.qws.ActionList"); 68 actionClasses.put("/reload.adm", "com.quadcap.app.qws.ActionReload"); 69 actionClasses.put("/unload.adm", "com.quadcap.app.qws.ActionUnload"); 70 actionClasses.put("/stop.adm", "com.quadcap.app.qws.ActionStop"); 71 } 72 73 public void init(ServletConfig config) throws ServletException { 74 super.init(config); 75 ServletContext context = config.getServletContext(); 76 WebApplication app = (WebApplication)context; 77 WebServer server = app.getWebServer(); 78 context.setAttribute("server", server); 79 } 80 81 public void doPost(HttpServletRequest request, 82 HttpServletResponse response) 83 throws ServletException 84 { 85 doGet(request, response); 86 } 87 88 public void doGet(HttpServletRequest request, 89 HttpServletResponse response) 90 throws ServletException 91 { 92 try { 93 Action action = getAction(request); 94 Debug.println("action = " + action); 95 if (action == null) { 96 response.sendError(HttpServletResponse.SC_NOT_FOUND, 97 "Not Found"); 98 } else { 99 try { 100 action.service(request, response); 101 } catch (ServletException e) { 102 Debug.print(e); 103 throw e; 104 } 105 } 106 } catch (ServletException ee) { 107 Debug.print(ee); 108 throw ee; 109 } catch (Throwable t) { 110 Debug.print(t); 111 throw new ServletException (t); 112 } 113 } 114 115 Action getAction(HttpServletRequest request) throws Exception { 116 String s = request.getServletPath(); 117 log("pathInfo = " + s); 118 Action action = (Action)actions.get(s); 119 if (action == null) { 120 String actionClass = (String )actionClasses.get(s); 121 if (actionClass != null) { 122 Class c = Class.forName(actionClass); 123 action = (Action)c.newInstance(); 124 action.init(getServletConfig()); 125 actions.put(s, action); 126 } 127 } 128 return action; 129 } 130 } 131 | Popular Tags |