2 qq 32224861 qq_32224861 于 2016.02.24 14:38 提问

有关Java中拦截器的问题???

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
if (!(handler instanceof HandlerMethod)) {
return true;
}
......
}

中这个判断有什么意义吗

4个回答

luochoudan
luochoudan   Ds   Rxr 2016.02.24 16:36
已采纳

判断的意义:如果传入的handler不是HandlerMethod的实例或者子类实例,就返回true,跳出该方法,下面的代码都不会再执行。

rui888
rui888   Ds   Rxr 2016.02.24 15:30

preHandle:在执行action里面的处理逻辑之前执行,它返回的是boolean,这里如果我们返回true在接着执行postHandle和afterCompletion,如果我们返回false则中断执行。

postHandle:在执行action里面的逻辑后返回视图之前执行。

afterCompletion:在action返回视图后执行。

参考

bdmh
bdmh   Ds   Rxr 2016.02.24 14:41

handler这个参数的传入可能涉及多种类型,这里就是判断了一下,是不是 HandlerMethod,类型

qq_32224861
qq_32224861 那我这里写的不是HandlerMethod类型的,就返回true了啊,下面的内容就不走了啊,是这样吗
接近 2 年之前 回复
xionglangs
xionglangs   Rxr 2016.02.24 15:48

图片说明,我个人感觉你应该在return 前面价格标记,如果没有这个标记就等于拦截成功,不让它进入拦截的方法,或是直接加个跳转到别的页面去,比如登录页面,你这里的这种情况,明显是逻辑代码写在图片说明,如果不需要拦截,就往下走,这得把这个方法写的多大啊。

qq_32224861
qq_32224861 确实代码很多
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!