java – HandlerInterceptor和WebRequestInterceptor之间的区
在为我的应用程序编写拦截器时,我注意到HandlerInterceptor和WebRequestInterceptor here. 我注意到HandlerInterceptor的方法采用HttpServletRequest,HttpServletResponse,Object(处理程序)和其他参数 但我不知道这两个拦截器有什么区别. 虽然看到Spring API我可以猜到WebRequestInterceptor无法提交响应,而HandlerInterceptor可以做到这一点.如果我错了,请在这里纠正我. 最佳答案
使用HandlerInterceptor,您可以:
>在preHandle方法中更改HttpServletResponse HandlerInterceptor可用于大量预处理方面,例如,用于授权检查,或常见的处理程序行为,如区域设置,主题更改或添加Cache-Control标头.其主要目的是允许分解重复的处理程序代码. WebRequestInterceptor的规范用例之一是准备上下文资源(例如Hibernate会话)并将它们公开为请求属性或线程本地对象.此外,您可以在成功执行处理程序后修改这些上下文资源(例如,刷新Hibernate会话).例如,OpenEntityManagerInViewInterceptor将JPA EntityManager绑定到线程以进行整个请求处理.
WebRequestInterceptor接口是故意简约的,以保持通用请求拦截器的依赖性尽可能小.如果需要更改响应,则应使用HandlerIntercepter或Filters. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |