TA的每日心情 衰 2021-2-2 11:21
签到天数: 36 天
[LV.5]常住居民I
/**
# e" |0 l5 g6 @2 I9 V *
5 n G/ V- i& _/ I, ~1 O( c2 Q * 7 t3 O! o8 c* n! {4 y
* ) b% \- c5 }8 x2 g& h
* 拦截器的作用:
$ x& D6 f. ]: c- g- k * 每个请求到达Controller之前,或者每个响应到达view之前,都可以进行拦截。 % f* x% i2 } S) W
* 1.全局日志(谁提交了请求,要做什么事) " P: i7 j" Z$ \ a* W* P: G d& n
* 2.权限管理(每个请求都能判断权限) 6 H5 Q, K3 F* ~2 u+ M8 S4 O' ~) I& t
* 代码:
?3 _! V( ]# Z! O* k. Y * 写一个类,实现spring framework.web.servlet.HandlerInterceptor接口
# x+ K1 v) L/ _9 T) x: T# t * preHandle请求前拦截(尚未执行Controller) 5 y" {$ F1 ~" F
* postHandle控制器执行完,生成视图之前可以加入的动作(加入模型中的公共部分,如版权信息)
# h: S# G1 r, Y+ T$ u* { * afterCompletion 释放资源,比如在pre中打开了数据库链接,在这里可以进行关闭
6 y, V: i0 J0 c8 _: \& I: _ *
$ D# ?) P" V/ F9 H$ R. d * 这三个方法根据业务选,不实不编写代码就可以了。
* n2 `2 R0 F7 i; n$ \4 U; V * * S" S- @5 c4 U3 F
*
1 G& R; ]. _8 z * 设置拦截器链 - p' T& ~- j" @# f6 H2 p5 A9 B
* <mvc:interceptors> 8 G( T# |! V3 v6 K" T
* <mvc:interceptor> ' p2 J5 j0 {4 L# A
* <mvc:mapping path=""/> 可选项。若不指定,则默认拦截所有请求; 若指定了,则只拦截符合一定模式的请求。
: I# V% ?( s1 _2 e0 _2 _9 S * 例子:<mvc:mapping path="/user/*"/> eg:拦截user/下的所有请求
9 H% ?: l% w: C6 A6 @# }6 H; f * <bean class="com.my.common.MyInterceptor"></bean>
I$ @# O! ]2 H$ Q$ L1 G1 f * </mvc:interceptor> 1 M5 ?* L& l& c9 F7 f0 E0 J
* & G( W( `/ ?0 |
* <mvc:interceptor> 拦截器链中的第二个
5 N% [/ x' f/ i2 x3 f * </mvc:interceptor> - D& {" h; u# a$ E: T9 Q9 y: ] s
* 7 S5 ^( y2 O, ~- Q' Y+ {; P9 i
* </mvc:interceptors>
3 Y! u/ X0 _, X6 S *
9 G+ V3 j9 |+ _5 a& T
# `& G5 ~6 X9 M: H: M2 N 处理流程! ]( G0 ]4 Y, z5 Q' M
/ S* Y/ C0 q8 V1 \$ k7 V 1请求沿着拦截器①--拦截器②…拦截器N的preHandle方法执行,最终到达控制器
; C2 f' |/ {3 [& @6 q( q; X
/ D Y. F7 ^& E. f: Y" p. }0 f 2在控制器执行完毕,将要生成视图之前依次执行拦截器N--拦截器N-1….拦截器②---拦截器①中的postHandle方法。 - P& g0 M. l+ q3 `- c
* & L* z( M; x! ]' r. a
*/- R0 V( O+ k$ V7 d) P" Z% D
$ y: M( Y1 a2 n1 b
科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关2、本站所有主题由该帖子作者发表,该帖子作者与科帮网 享有帖子相关版权3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网 的同意4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意7、科帮网 管理员和版主有权不事先通知发贴者而删除本文
JAVA爱好者①群:
JAVA爱好者②群:
JAVA爱好者③ :