spring mvc的拦截器的posthandle怎么用

spring mvc的拦截器的posthandle怎么用,第1张

1、日志记录:记录请求信息的日志,以便进行信息监控、信息统计、计算PV(Page View)等。

2、权限检查:如登录检测,进入处理器检测检测是否登录,如果没有直接返回到登录页面;

3、性能监控:有时候系统在某段时间莫名其妙的慢,可以通过拦截器在进入处理器之前记录开始时间,在处理完后记录结束时间,从而得到该请求的处理时间(如果有反向代理,如apache可以自动记录);

4、通用行为:读取cookie得到用户信息并将用户对象放入请求,从而方便后续流程使用,还有如提取Locale、Theme信息等,只要是多个处理器都需要的即可使用拦截器实现。

5、OpenSessionInView:如Hibernate,在进入处理器打开Session,在完成后关闭Session。

SpringMVC中的WebRequestInterceptor,postHandle方法

if (Controller带参数ModelMap) {

if (Controller带参数HttpServletResponse) {

if (ModelMap在Controller结束前没有添加Attribute) {//即ModelMap还是为{}的话,

进入WebRequestInterceptor的postHandle方法中,获取到的ModelMap为null。

} else if (ModelMapController结束前添加了Attribute){

在postHandle中获取到的ModelMap不为null。

}

} else {

在postHandle中获取到的ModelMap不为null。

}

}

但是在postHandle方法中添加ModelMap的Attribute属于常规做法吗?而确实可以这么实现。

虽然WebRequestInterceptor能够处理ModelMap,但是无法控制跳转页面。

也就是说,如果Interceptor中发生异常,将无法跳转至错误页面。

使用HandlerInterceptorAdapter可以解决这个问题。

但是它的postHandle不支持ModelMap,而是支持ModelAndView。


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

原文地址:https://54852.com/bake/7873422.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存