问题描述
- 有关Java中拦截器的问题???
- public boolean preHandle(HttpServletRequest request HttpServletResponse response Object handler) throws Exception {
if (!(handler instanceof HandlerMethod)) {
return true;
}
......
}中这个判断有什么意义吗
解决方案
判断的意义:如果传入的handler不是HandlerMethod的实例或者子类实例,就返回true,跳出该方法,下面的代码都不会再执行。
解决方案二:
preHandle:在执行action里面的处理逻辑之前执行,它返回的是boolean,这里如果我们返回true在接着执行postHandle和afterCompletion,如果我们返回false则中断执行。
postHandle:在执行action里面的逻辑后返回视图之前执行。
afterCompletion:在action返回视图后执行。
解决方案三:
handler这个参数的传入可能涉及多种类型,这里就是判断了一下,是不是 HandlerMethod,类型
解决方案四:
,我个人感觉你应该在return 前面价格标记,如果没有这个标记就等于拦截成功,不让它进入拦截的方法,或是直接加个跳转到别的页面去,比如登录页面,你这里的这种情况,明显是逻辑代码写在,如果不需要拦截,就往下走,这得把这个方法写的多大啊。
时间: 2025-01-30 04:07:25