科帮网

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 盖世程序员 > springmvc 如何配置拦截器
总共48087条微博

动态微博

查看: 990|回复: 1

springmvc 如何配置拦截器

[复制链接]
admin    

1244

主题

544

听众

1万

金钱

管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    跳转到指定楼层
    楼主
    发表于 2015-06-25 16:44:45 |只看该作者 |倒序浏览
    /**
    ! {* x- z+ V5 y2 X  i" F& `*
    ( l$ n& I- ?8 S: I& H4 {: I*
    % C* w# M( L) Y; _& @* 6 t/ T* |* b  g% [: w; h3 x
    * 拦截器的作用: 7 n1 }! U) V9 p4 [* R, i5 h* f5 D* f0 I
    * 每个请求到达Controller之前,或者每个响应到达view之前,都可以进行拦截。 9 u1 D; A& V8 b  t* r# R  ]0 R
    * 1.全局日志(谁提交了请求,要做什么事)
    3 P& r: r. M& A: \, i* 2.权限管理(每个请求都能判断权限)
    : }! Z5 l( K' Z% ~" E/ F* 代码:
      N+ ]. ?1 s% W8 i# V9 d8 `% x* 写一个类,实现springframework.web.servlet.HandlerInterceptor接口
    2 O2 K% g) |3 v0 q6 t) M, u2 ?* preHandle请求前拦截(尚未执行Controller) , J& p4 |1 E; T" p# \: _
    * postHandle控制器执行完,生成视图之前可以加入的动作(加入模型中的公共部分,如版权信息)
    9 Q# m# ~0 L! [+ h5 J* afterCompletion 释放资源,比如在pre中打开了数据库链接,在这里可以进行关闭
    6 ~) l% Z1 K! Q" g  ?% z* q% }; o*
    " Q. K' o6 G4 G) u6 ^* 这三个方法根据业务选,不实不编写代码就可以了。
    ' @2 \% P$ j/ _' E+ w+ [' v*
    0 D  \9 d2 S" ?7 l8 `2 w) E* # W, j: [3 x& I$ _' @+ I
    * 设置拦截器链
    - n$ w# d* c" z* ~3 o: G# C* <mvc:interceptors>
    1 f  g1 \8 T1 |' _5 i6 n% w*     <mvc:interceptor>   a& j) d- ]( c) P" A% _& d3 k) [
    *         <mvc:mapping path=""/>  可选项。若不指定,则默认拦截所有请求; 若指定了,则只拦截符合一定模式的请求。
    % y% l9 T! \1 W/ |+ ?7 Q" O*                                 例子:<mvc:mapping path="/user/*"/>  eg:拦截user/下的所有请求
    / F2 ]+ r6 n7 A0 \  Z$ o! R*         <bean class="com.my.common.MyInterceptor"></bean>
    # q. ~( _; U  _" v) U( O8 a5 x*     </mvc:interceptor>   }9 @2 X/ B  d; ~5 |" }8 e' {
    *
      w" [3 V% O" b5 |% O*     <mvc:interceptor>  拦截器链中的第二个 2 D  \! N4 Y# b  O$ d' m* W
    *  </mvc:interceptor> 6 u  \8 U2 V. Q7 |' t
    *  0 `1 v8 r8 |3 D# b7 `
    * </mvc:interceptors> 9 Q8 k' i5 Z' n# b
    *+ W$ o* R, v+ A& o- l7 `

    * g+ ?/ b$ S9 ]0 p' v处理流程
    / l" d% U. F& J
    0 A3 i; k( ?  Q' G0 A1请求沿着拦截器①--拦截器②…拦截器N的preHandle方法执行,最终到达控制器
    2 m7 Q) \+ {; n7 o; ]! M
    - ]) ?5 I: X! `( J2在控制器执行完毕,将要生成视图之前依次执行拦截器N--拦截器N-1….拦截器②---拦截器①中的postHandle方法。 6 {# `% f  a5 K) q
    * - v# E9 w) d8 r& a  O( _" z
    */
    / {8 n! {( D/ M% x$ x5 t7 l" y* y" y7 O3 B/ j3 K4 D$ R; @

    科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、科帮网管理员和版主有权不事先通知发贴者而删除本文


    JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

    13

    主题

    9

    听众

    4517

    金钱

    八袋长老

    该用户从未签到

    沙发
    发表于 2015-10-27 09:26:48 |只看该作者
    正在学习,实用
    回复

    使用道具 举报

    快速回复
    您需要登录后才可以回帖 登录 | 立即注册

       

    关闭

    站长推荐上一条 /1 下一条

    发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
    快速回复 返回顶部 返回列表