吉林市网站建设招标,青岛论坛,seo研究协会,网站模板能自己做吗拦截器的的调用顺序 a#xff1a;首先#xff0c;要找到它自己有没有声明拦截器的引用#xff0c;即action元素有没有interceptor-ref子元素#xff0c;如果有#xff0c;则不用继续寻找#xff08;即不会再使用b,c即默认的拦截器栈等#xff09;#… 拦截器的的调用顺序 a首先要找到它自己有没有声明拦截器的引用即action元素有没有interceptor-ref子元素如果有则不用继续寻找即不会再使用b,c即默认的拦截器栈等直接使用这些拦截器如果没有进行下一步的查找。 b其次找到这个action所在包有没有声明默认的拦截器引用即package元素的default-interceptor-ref子元素如果有则不用继续再找直接使用这些拦截器如果没有则进行下一步的查找。 c递归的查找这个包的父包看看有没有声明默认的拦截器引用直到找到默认的拦截器引用为止。 d同一层下拦截器的执行顺序为配置的顺序 补充 abstract把包声明为抽象包抽象包就是用来被继承的等待被继承。只要是没有action元素的包就可以声明为抽象包。抽象包如果不被子包继承它里面写的任何东西都不起作用 注意ParentPackage(default) 值可以是一个抽象包此时抽象包中的内容也会起作用比如定义的拦截器等相当于该抽象包被继承了。 拦截器的使用方式 拦截器引用一般是两种方式 1 如何使用struts2拦截器或者自定义拦截器。特别注意在使用拦截器的时候在Action里面必须最后一定要引用struts2自带的拦截器缺省堆栈defaultStack, 如下(这里我是引用了struts2自带的checkbox拦截器)因为action下配置了拦截器所以默认就不会使用b和c package namedefault extendsstruts-default namespace/ce interceptors interceptor nameloginInterceptor classcom.action.LoginInterceptor/ /interceptors action namehello classcom.action.HelloWorld methodhello interceptor-ref nameloginInterceptor/ interceptor-ref namedefaultStack/interceptor-ref(必须加否则不会使用默认拦截器栈中的拦截器) result namesuccess/WEB-INF/index.jsp/result /action /package 也可以改为对全局Action设置自己需要的拦截器如下 2 struts-action.xml里面配置Action如下 !-- 一个公共包 -- package namemyDefault extendsstruts-default abstracttrue !-- 声明拦截器 -- interceptors interceptor namecheckLogin classcom.itheima.web.interceptors.CheckLoginInterceptor/ !-- 定义一个拦截器栈 -- interceptor-stack namemyDefaultStack interceptor-ref namecheckLogin !-- 由于我们使用了继承MethodFilterInterceptor 此时我们可以告知拦截器排除掉登录方法 -- param nameexcludeMethodslogin/param /interceptor-ref interceptor-ref namedefaultStack/interceptor-ref同一层下拦截器的执行顺序为配置的顺序即先执行checkLogin后执行defaultStack下的19个拦截器 /interceptor-stack /interceptors !-- 修改默认拦截器栈设置我们自定义的拦截器栈 这样的话我们写的所有动作都有了检查登录功能。并且排除了登录方法-- default-interceptor-ref namemyDefaultStack/ !-- 全局结果视图 -- global-results result namelogin/login.jsp/result /global-results /package !-- 配置动作让此包继承我们自己写的公共包myDefault -- package namecustomer extendsmyDefault namespace/customer !-- 查询所有客户 -- action namefindAllCustomer classcom.itheima.web.action.CustomerAction methodfindAllCustomer result namefindAllCustomer/jsp/customer/list.jsp/result /action /package 相关链接 https://www.cnblogs.com/wwicked/articles/4455477.html https://www.cnblogs.com/yw-ah/p/5761235.html https://www.cnblogs.com/Ant-soldier/p/5490035.html 转载于:https://www.cnblogs.com/zxwBj/p/8552471.html