00001
package com.quadcap.app.qws;
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
import java.util.HashMap;
00042
00043
import javax.servlet.ServletConfig;
00044
import javax.servlet.ServletContext;
00045
import javax.servlet.ServletException;
00046
00047
import javax.servlet.http.HttpServlet;
00048
import javax.servlet.http.HttpServletRequest;
00049
import javax.servlet.http.HttpServletResponse;
00050
00051
import com.quadcap.http.server22.WebApplication;
00052
import com.quadcap.http.server22.WebServer;
00053
00054
import com.quadcap.util.Debug;
00055
00056
00057
00058
00059
00060
00061 public class WebAdminServlet extends HttpServlet {
00062 HashMap
actions =
new HashMap();
00063
00064 static HashMap
actionClasses =
new HashMap();
00065
static {
00066
actionClasses.put(
"/load.adm",
"com.quadcap.app.qws.ActionLoad");
00067
actionClasses.put(
"/list.adm",
"com.quadcap.app.qws.ActionList");
00068
actionClasses.put(
"/reload.adm",
"com.quadcap.app.qws.ActionReload");
00069
actionClasses.put(
"/unload.adm",
"com.quadcap.app.qws.ActionUnload");
00070
actionClasses.put(
"/stop.adm",
"com.quadcap.app.qws.ActionStop");
00071 }
00072
00073 public void init(ServletConfig config)
throws ServletException {
00074 super.init(config);
00075 ServletContext context = config.getServletContext();
00076 WebApplication app = (WebApplication)context;
00077 WebServer server = app.getWebServer();
00078 context.setAttribute(
"server", server);
00079 }
00080
00081 public void doPost(HttpServletRequest request,
00082 HttpServletResponse response)
00083
throws ServletException
00084 {
00085
doGet(request, response);
00086 }
00087
00088 public void doGet(HttpServletRequest request,
00089 HttpServletResponse response)
00090
throws ServletException
00091 {
00092
try {
00093
Action action =
getAction(request);
00094 Debug.println(
"action = " + action);
00095
if (action == null) {
00096 response.sendError(HttpServletResponse.SC_NOT_FOUND,
00097
"Not Found");
00098 }
else {
00099
try {
00100 action.
service(request, response);
00101 }
catch (ServletException e) {
00102 Debug.print(e);
00103
throw e;
00104 }
00105 }
00106 }
catch (ServletException ee) {
00107 Debug.print(ee);
00108
throw ee;
00109 }
catch (Throwable t) {
00110 Debug.print(t);
00111
throw new ServletException(t);
00112 }
00113 }
00114
00115 Action getAction(HttpServletRequest request)
throws Exception {
00116 String s = request.getServletPath();
00117 log(
"pathInfo = " + s);
00118
Action action = (
Action)
actions.get(s);
00119
if (action == null) {
00120 String actionClass = (String)
actionClasses.get(s);
00121
if (actionClass != null) {
00122 Class c = Class.forName(actionClass);
00123 action = (
Action)c.newInstance();
00124 action.
init(getServletConfig());
00125
actions.put(s, action);
00126 }
00127 }
00128
return action;
00129 }
00130 }