⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 servicesupport.java

📁 java编写的简易留言本
💻 JAVA
字号:
package anni.tools;

import java.lang.reflect.Method;

import javax.servlet.http.HttpServletRequest;


/**
 * 功能跟struts的DispathAction差不多吧?
 * 使用反射自动转发请求
 *
 * @author Lingo
 * @version 1.0
 * @since 2006-01-01 19:41
 */
public class ServiceSupport implements Service {
    /**
     * 类.
     */
    private Class clazz;

    /**
     * 参数类型.
     */
    private Class[] paramTypes;

    /**
     * 参数数组.
     */
    private Object[] params;

    /**
     * 构造方法.
     * 初始化反射需要的参数
     *
     * @author Lingo
     * @since 2006-01-01 19:41
     */
    public ServiceSupport() {
        clazz = this.getClass();
        paramTypes = new Class[] {HttpServletRequest.class};
    }

    /**
     * 修改了请求转发的主方法.
     * 这里采用了反射,以后就不用再进行手工添加了。
     *
     * @author Lingo
     * @since 2005-12-25 17:07
     * @param request 请求
     * @return String 跳转的URL
     */
    public final String service(final HttpServletRequest request) {
        String action = request.getParameter("action");

        try {
            /*
             * Log.info(clazz);
             * Method[] m=clazz.getDeclaredMethods();
             * Log.info(Arrays.asList(m));
             */
            Method method = clazz.getDeclaredMethod(action, paramTypes);
            /*
             * Log.info(method);
             */
            params = new Object[] {request};

            Object result = method.invoke(this, params);

            return result.toString();
        } catch (Throwable ex) {
            /*
             * Log.info("error : "+ex.getMessage());
             */
            System.out.println("找不到请求的对应方法 : " + action);

            return "/";
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -