日期:2014-05-17  浏览次数:20632 次

EJB 3.0 跪求高手赐教
EJB 3.0 拦截器截获的方法 可以重载和重写么?
public Object log(InvocationContext ctx)throws Exception{
if(ctx.getMethod().getName().equals("GetRowSet")){
System.out.println("我拿到这个方法了");
 
}
name=ctx.getMethod().getName();
System.out.println(ctx.getParameters()[0]+"此处是获得GetRowSet方法的第一个参数");
System.out.println(ctx.setParameters(int sql,Object[] params)+"此处是设置参数");
Object o = ctx.proceed();
ctx.proceed();
System.out.println("ctx.getMethod()这个方法无法执行必须在ctx.proceed()中间"); 
if(ctx.getParameters()[0].equals("就不说")){
throw new Exception("哈哈出错了吧");
}
return o;

}

------解决方案--------------------
不可以的。你可以篡改传入参数的值,但方法还是原来的方法。
------解决方案--------------------
估计用这个人不多。
之前一个项目也就用拦截器来记录系统中一些关键的用户动作。
------解决方案--------------------
探讨

哎呀 真是牛人啊。 我发这帖子都没人回不知道为什么!

------解决方案--------------------
探讨
EJB 3.0 拦截器截获的方法 可以重载和重写么?
public Object log(InvocationContext ctx)throws Exception{
if(ctx.getMethod().getName().equals("GetRowSet")){
System.out.println("我拿到这个方法了");

}
name=ctx.getMethod().g……

------解决方案--------------------
都可以,但是重载后可能没有地方调用。除非你自己调用
------解决方案--------------------
不可以的。你可以篡改传入参数的值,但方法还是原来的方法。
------解决方案--------------------
探讨

请问(清风明月) 怎么重载和 重写啊 教教我