Java Spring Boot VS .NetCore (一)来一个简单的 Hello World

Java Spring Boot VS .NetCore (二)实现一个过滤器Filter

Java Spring Boot VS .NetCore (三)Ioc容器处理

Java Spring Boot VS .NetCore (四)数据库操作 Spring Data JPA vs EFCore

Java Spring Boot VS .NetCore (五)MyBatis vs EFCore

Java Spring Boot VS .NetCore (六) UI thymeleaf vs cshtml

Java Spring Boot VS .NetCore (七) 配置文件

Java Spring Boot VS .NetCore (八) Java 注解 vs .NetCore Attribute

Java Spring Boot VS .NetCore (九) Spring Security vs .NetCore Security

Java Spring Boot VS .NetCore (十) Java Interceptor vs .NetCore Interceptor

Java Spring Boot VS .NetCore (十一)自定义标签 Java Tag Freemarker VS .NetCore Tag TagHelper

这篇主要说下拦截器的处理,这里就说下org.springframework.web.servlet 下的HandlerInterceptor

Java Interceptor

通过HandlerInterceptor类来看下代码

public interface HandlerInterceptor {
boolean preHandle(HttpServletRequest var1, HttpServletResponse var2, Object var3) throws Exception; void postHandle(HttpServletRequest var1, HttpServletResponse var2, Object var3, ModelAndView var4) throws Exception; void afterCompletion(HttpServletRequest var1, HttpServletResponse var2, Object var3, Exception var4) throws Exception;
}

拦截器的处理就在,三个方法的意思一看就明白,也不做过多介绍

那么在代码中我们怎么来处理这些呢?

这里又要结合前面的章节 Filter 接口在处理了,对什么进行拦截,过滤出需要拦截的进行拦截HandlerInterceptor 接口方法,MyHandlerInterceptor extends HandlerInterceptor  实现过程略。。。

根据前面Filter章节获取将拦截器 如下:

public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Autowired
private MyHandlerIntercepter myHandlerIntercepter;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(myHandlerIntercepter).addPathPatterns("/**");
super.addInterceptors(registry);
} @Bean
public FilterRegistrationBean registFilter() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new OpenEntityManagerInViewFilter());
registration.addUrlPatterns("/*");
registration.setOrder(1);
return registration;
}

监控下所有的路由地址就行了,那么在.NetCore中怎么来处理的呢?这里就用.NetCore中的 Action 来说明

.NetCore Interceptor

当执行某一个Action的时候 需要在执行前后处理相关业务,下面看下这段代码

public virtual void OnActionExecuted(ActionExecutedContext context);

public virtual void OnActionExecuting(ActionExecutingContext context);

在Action执行前后会执行如上方法,通过对这写方法的重写来处理业务,这里根据Java中其实也差不多,.NetCore通过 创建ActionContext对象 在对象实例 Invoke 之前后分别执行当前 OnActionExecuting 、OnActionExecuted 方法

当然.NetCore中的 Filter 还有其他的,只是这里的ActionFilter 针对的 Action操作而已

Java Spring Boot VS .NetCore (十) Java Interceptor vs .NetCore Interceptor的更多相关文章

  1. Java Spring Boot VS .NetCore (一)来一个简单的 Hello World

    系列文章 Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filte ...

  2. Java Spring Boot VS .NetCore (二)实现一个过滤器Filter

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  3. Java Spring Boot VS .NetCore (三)Ioc容器处理

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  4. Java Spring Boot VS .NetCore (四)数据库操作 Spring Data JPA vs EFCore

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  5. Java Spring Boot VS .NetCore (五)MyBatis vs EFCore

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  6. Java Spring Boot VS .NetCore (六) UI thymeleaf vs cshtml

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  7. Java Spring Boot VS .NetCore (七) 配置文件

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  8. Java Spring Boot VS .NetCore (八) Java 注解 vs .NetCore Attribute

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  9. Java Spring Boot VS .NetCore (九) Spring Security vs .NetCore Security

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

随机推荐

  1. Magento2 API 服务合同设计模式 依赖注入 介绍

    公共接口和API 什么是公共界面? 一个公共接口是一组代码,第三方开发者可以调用,实现或构建一个 插件 .Magento保证在没有重大版本更改的情况下,此代码在后续版本中不会更改. 模块的公共接口 标 ...

  2. 用python 发 帝国cms 文章

    在e\extent下面放一个jiekou.php     #!/usr/bin/env python3 # -*- coding: utf-8 -*- import time import urlli ...

  3. 绕过阿里云waf进行SQL注入

    做个笔记吧,某SQL注入点的绕过,有阿里云waf的. 首先遇到是个搜索框的注入点: 演示下: 针对搜索框,我们的sql语句一般是怎么写的? 本地演示:select * from product whe ...

  4. 题解-洛谷P1981 表达式求值(模拟+处理优先级的递归)

    https://www.luogu.org/problemnew/show/P1981 (原题链接) 显然乘法的优先级高与加法,因此碰到乘号就要优先把一连串与乘号相连的数算出,很容易想到递归.可用普通 ...

  5. 浏览器开发者工具----F12 功能介绍

    笔者技巧: 看了些其它回答,有些是用来扒图片的,有些是写爬虫的(这个不要看Elements,因为浏览器会对一些不符合规范的标签做补全或者其它处理,最好是Ctrl+U). 图片的话就不要看Network ...

  6. 关于confluence上传文件附件预览查看时出现乱码的问题解决办法

    在confluence上传excel文件,预览时发现乱码问题主要是因为再上传文件的时候一般是Windows下的文件上传,而预览的时候,是linux下的环境,由于linux下没有微软字体,所以预览的时候 ...

  7. androidstudio上传代码到git上

    1.首先通过git --bare init 在服务端创建好了一个git仓库:假设git仓库在服务端的地址为:/user/lyh/project/test.git 2.androidstudio上点击V ...

  8. Numpy系列(五)- 复制和视图

    当计算和操作数组时,它们的数据有时被复制到新的数组中,有时不复制.这里我们做个区分. 完全不复制 简单赋值不会创建数组对象或其数据的拷贝. import numpy as np a = np.aran ...

  9. 关于ddl(新增字段)对数据库锁表|读写操作的影响_资料

    1.对一个表执行ddl(新增字段)会不会阻塞表,影响读写? 在一次项目升级之前需要执行一个新增字段的脚本(alter table...),表的数据量是260多万,执行时间是72秒,感觉略长,不知道会不 ...

  10. SOC(网络安全管理平台)

    SOC平台,网络安全管理平台. 提供集中.统一.可视化的安全信息管理,通过实时采集各种安全信息,动态进行安全信息关联分析与风险评估,实现安全事件的快速跟踪.定位和应急响应.从监控.审计.风险和运维四个 ...