java–HandlerInterceptor和WebRequestInterceptor之间的区别?

java–HandlerInterceptor和WebRequestInterceptor之间的区别?,第1张

概述在为我的应用程序编写拦截器时,我注意到HandlerInterceptor和WebRequestInterceptor here.我注意到HandlerInterceptor的方法采用HttpServletRequest,HttpServletResponse,Object(处理程序)和其他参数而WebRequestInterceptor采用WebReque

在为我的应用程序编写拦截器时,我注意到handlerinterceptor和WebRequestInterceptor here.

我注意到handlerinterceptor的方法采用httpServletRequest,httpServletResponse,Object(处理程序)和其他参数
而WebRequestInterceptor采用WebRequest(httpServletRequest的包装).

但我不知道这两个拦截器有什么区别.

虽然看到Spring API我可以猜到WebRequestInterceptor无法提交响应,而handlerinterceptor可以做到这一点.如果我错了,请在这里纠正我.

最佳答案使用handlerinterceptor,您可以:

>在preHandle方法中更改httpServletResponse
>根据处理程序对象应用过滤器.例如,您可以根据HandlerMethod上某些注释的存在应用一些过滤器
>通过在preHandle方法中返回false来禁止执行处理程序.

handlerinterceptor可用于大量预处理方面,例如,用于授权检查,或常见的处理程序行为,如区域设置,主题更改或添加Cache-Control标头.其主要目的是允许分解重复的处理程序代码.

WebRequestInterceptor的规范用例之一是准备上下文资源(例如Hibernate会话)并将它们公开为请求属性或线程本地对象.此外,您可以在成功执行处理程序后修改这些上下文资源(例如,刷新Hibernate会话).例如,OpenEntityManagerInVIEwInterceptor将JPA EntityManager绑定到线程以进行整个请求处理.

Although seeing Spring API I can guess that WebRequestInterceptor can
not commit response while handlerinterceptor can do that. Please
correct me here if I am wrong.

WebRequestInterceptor接口是故意简约的,以保持通用请求拦截器的依赖性尽可能小.如果需要更改响应,则应使用HandlerIntercepter或Filters. 总结

以上是内存溢出为你收集整理的java – HandlerInterceptor和WebRequestInterceptor之间的区别?全部内容,希望文章能够帮你解决java – HandlerInterceptor和WebRequestInterceptor之间的区别?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1265928.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存