📄 servicesupport.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 + -