当前位置: 首页 > news >正文

贵州润铁祥建设工程有限公司网站网络商城设计

贵州润铁祥建设工程有限公司网站,网络商城设计,管理咨询公司税收优惠,revolution slider wordpress拦截器#xff0c;通俗来来将#xff0c;就是我们将访问某个路径的请求给拦截下来#xff0c;然后可以对这个请求做一些操作 基本使用 创建拦截器类 让类实现HandlerInterceptor接口#xff0c;重写接口中的三个方法。 Component //定义拦截器类#xff0c;实现Handle…拦截器通俗来来将就是我们将访问某个路径的请求给拦截下来然后可以对这个请求做一些操作 基本使用 创建拦截器类 让类实现HandlerInterceptor接口重写接口中的三个方法。 Component //定义拦截器类实现HandlerInterceptor接口 //注意当前类必须受Spring容器控制 public class ProjectInterceptor implements HandlerInterceptor {Override//原始方法调用前执行的内容public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println(preHandle...);// true 放行false 拦截return true;}Override//原始方法调用后执行的内容public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println(postHandle...);}Override//原始方法调用完成后执行的内容public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println(afterCompletion...);} }配置拦截器类 Configuration public class SpringMvcSupport extends WebMvcConfigurationSupport {Autowiredprivate ProjectInterceptor projectInterceptor;// 这个方法是用来配置静态资源的比如htmljscss等等Overrideprotected void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler(/pages/**).addResourceLocations(/pages/);}// 这个方法用来注册拦截器我们自己写好的拦截器需要通过这里添加注册才能生效Overrideprotected void addInterceptors(InterceptorRegistry registry) {//配置拦截器registry.addInterceptor(projectInterceptor).addPathPatterns(/books );//配置不拦截路径 .excludePathPatterns(/login);} }这里ProjectInterceptor拦截器也可以不注入直接new一个该类 我们可以看到拦截器HandlerInterceptor的使用方法 首先编写拦截器HandlerInterceptor来写出拦截后要执行的逻辑然后编写拦截器配置类来 **注册拦截器 **使之生效并且可以配置需要 拦截的路径 三种拦截方式 前置处理方法 - preHandle - 进入controller方法之前后置处理方法 - postHandle - 方法内部处理完成页面渲染之前完成处理方法 - afterCompletion - 方法内部处理完成页面渲染之前 这三个方法中最常用的是 **preHandle **, 在这个方法中可以通过返回值来决定是否要进行放行我们可以把业务逻辑放在该方法中如果满足业务则返回true放行不满足则返回false拦截。 接下来我们来具体看一下这三种拦截方式对应的函数 拦截器参数 前置处理方法 原始方法之前运行preHandle public boolean preHandle(HttpServletRequest request,HttpServletResponse response,Object handler) throws Exception {System.out.println(preHandle);return true; }request: 请求对象。使用request对象可以获取请求数据中的内容如获取请求头的Content-Typeresponse: 响应对象handler: 被调用的处理器对象本质上是一个方法对象对反射中的Method对象进行了再包装。使用handler参数可以获取方法的相关信息和反射中的class类一样 后置处理方法 原始方法运行后运行如果原始方法被拦截则不执行 public void postHandle(HttpServletRequest request,HttpServletResponse response,Object handler,ModelAndView modelAndView) throws Exception {System.out.println(postHandle); }前三个参数和上面的是一致的。modelAndView:如果处理器执行完成具有返回结果可以读取到对应数据与页面信息并进行调整因为咱们现在都是返回json数据所以该参数的使用率不高。 完成处理方法 拦截器最后执行的方法无论原始方法是否执行 public void afterCompletion(HttpServletRequest request,HttpServletResponse response,Object handler,Exception ex) throws Exception {System.out.println(afterCompletion); }前三个参数与上面的是一致的。 ex:如果处理器执行过程中出现异常对象可以针对异常情况进行单独处理因为我们现在已经有全局异常处理器类所以该参数的使用率也不高。 多个拦截器 写法 配置类和之前一样只不过多注册了拦截器 Configuration ComponentScan({com.itheima.controller}) EnableWebMvc //实现WebMvcConfigurer接口可以简化开发但具有一定的侵入性 public class SpringMvcConfig implements WebMvcConfigurer {Autowiredprivate ProjectInterceptor projectInterceptor;Autowiredprivate ProjectInterceptor2 projectInterceptor2;Overridepublic void addInterceptors(InterceptorRegistry registry) {//配置多拦截器registry.addInterceptor(projectInterceptor).addPathPatterns(/books,/books/*);registry.addInterceptor(projectInterceptor2).addPathPatterns(/books,/books/*);} }执行顺序 拦截器执行的顺序是和配置顺序有关。就和前面所提到的运维人员进入机房的案例先进后出。 当配置多个拦截器时形成拦截器链拦截器链的运行顺序参照拦截器添加顺序为准当拦截器中出现对原始处理器的拦截后面的拦截器均终止运行当拦截器运行中断仅运行配置在前面的拦截器的afterCompletion操作 preHandle与配置顺序相同必定运行postHandle:与配置顺序相反可能不运行afterCompletion:与配置顺序相反可能不运行。这个顺序不太好记最终只需要把握住一个原则即可:以最终的运行结果为准 拦截器与过滤器 两者的区别 过滤器基于函数回调、拦截器基于反射过滤器几乎对所有请求起作用拦截器只对目标执行方法起作用过滤器对请求进行预处理、再交给Servlet处理并且生成响应最后Filter再对服务器响应进行后处理拦截器可以在方法执行前调用preHandle方法执行后调用postHandle视图页面渲染后调用afterCompletion 如果大家有什么思考和问题可以在评论区讨论也可以私信我很乐意为大家效劳。好啦今天的每日一题到这里就结束了如果大家觉得有用可以可以给我一个小小的赞呢我们下期再见
http://www.pierceye.com/news/698414/

相关文章:

  • 网站建设广告宣传素材论坛网站制作教程
  • 苏州怎么做网站如何做公司自己的网站
  • 网站内容通过服务器会不会被更改旅游网站建设流程是什么意思
  • 建立中文网站的英文免费网站空间
  • 外国人做家具的网站免费自己做网站软件
  • 品牌网站建设毛尖2新加坡二手手机网站大全
  • 服装集团网站建设wordpress rss格式
  • 如何进行网站分析设计说明的英文
  • 仕德伟做的网站图片怎么修做网站深圳
  • 六安电商网站建设哪家好中国电力工程造价信息网
  • 如何做优化网站排alexa优化装修网线
  • 现在视频做网站晚了吗做网站的论文摘要
  • 环保公司网站模板那个公司可以做网站
  • 英雄联盟网站源码开发设计公司
  • 企业形象网站开发名师工作室网站建设
  • o2o网站建设最好公司排名做竹鼠网站
  • 免费做网站软件2003商丘网络营销服务
  • 杭州网站建设加q479185700如何网上外贸接单
  • 针对茅台酒企业网站建设方案鸿基建设工程有限公司网站
  • 有创意营销型网站建设wordpress 慢集市
  • 注册网站多少钱永康电子商务网站建设
  • 江西省网站建设庆阳在线网
  • wordpress建站微信联系智慧政务网站怎么做
  • 邯郸购物网站建设电子商务是干什么的工作
  • 网站开发竞聘报告wordpress彩色标签云设置方法
  • 深圳高端网站建设收费宿州百度seo排名软件
  • 彩妆网站建设报告公司网页是什么
  • 站长之家综合查询工具广州网站网站建设
  • 网站开发如何实现数据库的链接同性性做视频网站
  • 网站建设uuiop网站建设盐城最便宜