Extjs 到后台程序中转servlet类


import java.io.*;
import java.lang.reflect.Method;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;
// Referenced classes of package com.jarp.core:
//            Env, Repository
public class AjaxListener extends HttpServlet
{
    public static Logger logger;
    String className;
    String methodName;
    ArrayList paramList;
    int intParamCount;
    static Class class$0; /* synthetic field */
//    public void init() throws ServletException
//    {
//        String repository_DBName = "";
//        String repository_DBPoolType = "";
//        String repository_DBJNDIName = "";
//        String repository_JdbcDriver = "";
//        String repository_JdbcURL = "";
//        String repository_UserName = "";
//        String repository_Password = "";
//        int repository_maxConnection = 3;
//        BasicConfigurator.configure();
//        try
//        {
//            logger.info("======== AjaxListener initial started (TESTING...) ========");
//            repository_DBName = getInitParameter("repository_DBName");
//            repository_DBPoolType = getInitParameter("repository_DBPoolType");
//            repository_DBJNDIName = getInitParameter("repository_DBJNDIName");
//            if(repository_DBName == null)
//                repository_DBName = "AjaxListener";
//            if(repository_DBName.equals(""))
//                repository_DBName = "AjaxListener";
//            logger.info("======== repository_DBName == " + repository_DBName + " ========");
//            logger.info("======== repository_DBPoolType == " + repository_DBPoolType + " ========");
//            if(repository_DBPoolType.equals("Pool"))
//            {
//                repository_JdbcDriver = getInitParameter("repository_JdbcDriver");
//                repository_JdbcURL = getInitParameter("repository_JdbcURL");
//                repository_UserName = getInitParameter("repository_UserName");
//                repository_Password = getInitParameter("repository_Password");
//                repository_maxConnection = (new Integer(getInitParameter("repository_maxConnection"))).intValue();
//                ConnectionPools pools = ConnectionPools.getInstance();
//                int idx = pools.setPoolParams(repository_DBName, repository_JdbcDriver, repository_JdbcURL, repository_UserName, repository_Password, repository_maxConnection, -1);
//                if(pools.createPool(idx))
//                {
//                    logger.info("-------- Repository connection pool created --------");
//                }
//                logger.info("======== AjaxListener initial finished ========");
//            }
//            if(repository_DBPoolType.equals("systemPool") && repository_DBJNDIName != null)
//            {
//                ConnectionPools pools = ConnectionPools.getInstance();
//                repository_maxConnection = (new Integer(getInitParameter("repository_maxConnection"))).intValue();
//                int idx = pools.setPoolParams(repository_DBName, repository_DBJNDIName, repository_maxConnection, -1);
//                if(pools.createPool(idx))
//                {
//                    logger.info("-------- Repository connection pool created --------");
//                }
//                logger.info("======== AjaxListener initial finished ========");
//            }
//        }
//        catch(Exception ex)
//        {
//            ex.printStackTrace();
//            logger.error("======== AjaxListener initial failed ========");
//        }
//    }
    public AjaxListener()
    {
        className = "";
        methodName = "";
        paramList = null;
        intParamCount = 0;
    }
    public void destroy()
    {
        super.destroy();
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException
    {
        doPost(request, response);
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException
    {
        response.setContentType("text/xml;charset=GBK");
        request.setCharacterEncoding("GBK");
        PrintWriter out = response.getWriter();
        String className = "";
        String methodName = "";
        ArrayList paramList = new ArrayList();
        int intParamCount = 0;
        className = request.getParameter("className");
        methodName = request.getParameter("methodName");
        String paramCount = request.getParameter("paramCount");
        if(paramCount == null)
            paramCount = "0";
        intParamCount = Integer.parseInt(paramCount);
        paramList = new ArrayList();
        for(int i = 0; i < intParamCount; i++)
        {
            String p = request.getParameter("param_" + i);
            paramList.add(p);
        }
        BufferedReader bufReader = request.getReader();
        String strLine = "";
        StringBuffer xml = new StringBuffer();
        while((strLine = bufReader.readLine()) != null) 
            xml.append(strLine);
        String xmlReturn = doAction(className, methodName, intParamCount, paramList, xml);
        out.print(xmlReturn);
        out.flush();
        out.close();
        paramList = null;
        xml = null;
    }
    private String doAction(String className, String methodName, int intParamCount, ArrayList paramList, StringBuffer bufXML)
    {
        String xmlRet = "";
        try
        {
            Class actionClass = Class.forName(className);
            Object actionInstance = actionClass.newInstance();
            Object ret = new Object();
            int paramCount = intParamCount;
            if(bufXML.length() > 0)
                paramCount++;
            Class params[] = new Class[paramCount];
            Object paramValues[] = new Object[paramCount];
            for(int i = 0; i < paramCount; i++)
            {
                params[i] = Class.forName("java.lang.String");
                if(bufXML.length() > 0 && i == paramCount - 1)
                    paramValues[i] = bufXML.toString();
                else
                    paramValues[i] = (String)paramList.get(i);
            }
            Method m = actionClass.getMethod(methodName, params);
            ret = m.invoke(actionInstance, paramValues);
            xmlRet = ret.toString();
        }
        catch(Exception ex)
        {
            logger.error("className = " + className + "||" + "methodName = " + methodName);
            for(int i = 0; i < intParamCount; i++)
                logger.error("param_" + i + " = " + (String)paramList.get(i) + "||");
            logger.error("doAction's error: " + ex.toString());
            ex.printStackTrace();
        }
        return xmlRet;
    }
    static 
    {
        logger = Logger.getLogger(com.dvision.digitalplatform.ajaxUtil.AjaxListener.class.getName());
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值