package com.zky.pub; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; import java.util.ResourceBundle; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; /** * @author dy * */ public abstract class DispatchServlet extends HttpServlet { protected static final Logger log = Logger.getLogger(DispatchServlet.class); public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String operate = request.getParameter("operate"); if (Common.isNull(operate)) { operate = "defaultMethod"; } try { Class[] types = new Class[]{HttpServletRequest.class,HttpServletResponse.class}; Method method = getClass().getMethod(operate, types); try { method.invoke(this, new Object[]{request,response}); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { //e.getTargetException().printStackTrace(); response.sendRedirect(Common.GbConvertIso("/error.jsp?errorinfo="+ e.getTargetException().toString())); } } catch (SecurityException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } } public abstract void defaultMethod(HttpServletRequest request, HttpServletResponse response) throws Exception; }