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

Java中实现过滤器是集成实现接口Filter 然后去添加相关的注册 FilterRegistration,下面就来对比下.NetCore 中的 Filter 来一次用法上的比较

说到Java中的Filter 这里就需要说明下 @Configuration @Bean 这两个注解

@Bean  给@Bean标注的方法产生一个Bean方法并交给Spring Ioc 容器管理的方法,这些@Bean标注的方法会被AnnotationConfigApplicationContext、AnnotationConfigWebApplicationContext 处理后最后添加到Spring 容器中,  我把它理解为 .NetCore 中的 注入DI 吧 ,使用 IServiceCollection 添加服务,注入后也是交给  Ioc 容器中的 交给 Microsoft.Extensions.DependencyInjection

@Configuration 这个标注是用来干什么的呢?用于定义配置类,里面需要包含被 @Bean注解标注的方法

下面上一些代码:

Java Filter 处理

@Configuration
public class WebConfig {
@Bean
public RemoteIpFilter remoteIpFilter()
{
return new RemoteIpFilter();
}
@Bean
public FilterRegistrationBean LYMRegistrationBean()
{
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new LYMFilter());
registration.addUrlPatterns("/*");
registration.addInitParameter("myname", "这是我写的参数值");
registration.setName("LYMFilter");
registration.setOrder(1);
return registration;
}
public class LYMFilter implements Filter{ @Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("这是LYMFilter的初始化:"+filterConfig.getFilterName());
System.out.println("这是LYMFilter的初始化:"+filterConfig.getInitParameter("myname"));
} @Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
System.out.println("这是Ip拦截器,拦截地址 :"+request.getRequestURI());
filterChain.doFilter(servletRequest, servletResponse);
} @Override
public void destroy() {
System.out.println("LYMFilter被销毁");
}
}

Java中这里用的 RemoteFilter  ,还有其他的过滤器,实现Filter接口的时候其实就可以看到 Filter有很多 来之不懂包里面的接口 ,这里实现的是Servlet

注册好Filter指定相关参数  如:设置名称  设置参数  指定过滤的地址 以及当前过滤器的一个顺序,这里顺序个人觉得给 .NetCore中的中间件 Middleware 顺序一个个处理,只是.NetCore中中间件执行的顺序是根据ConfigServices中的上下代码顺序来执行的

.NetCore 中 过滤器有几种基本的,这里我用授权过滤器来描述 IAuthorizationFilter ,然后在 IServiceCollection 添加好注册服务

public class LYMFilter : IAuthorizationFilter
{
public void OnAuthorization(AuthorizationFilterContext context)
{
// do something
}
}
services.AddMvc(options=>options.Filters.Add(new LYMFilter()));

.NetCore中的执行效果就不演示了,下面我们看下Java中的处理结果

我们输入之前的helloworld地址 可以看到如下输出

Java Spring Boot VS .NetCore (二)实现一个过滤器Filter的更多相关文章

  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 (三)Ioc容器处理

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. 其它综合-使用Putty远程连接管理Linux实践

    使用Putty远程连接管理Linux实践 1.获取putty 获取 putty有很多方法,以下是我为大家提供的下载地址: 个人网盘地址,提取码:tz83 官方下载地址 解释: 官方下载的是 zip 压 ...

  2. 会议管家——常用的JQ知识点

    一.seTimeout时间延迟 $(".ticket_one table td a").eq(0).click(function(){ editOd('57503394363048 ...

  3. 关于【Webpack】的入门使用

    注:节选自http://www.jianshu.com/p/42e11515c10f 1.安装 Webpack可以使用npm安装,新建一个空的练习文件夹(此处命名为webpack sample pro ...

  4. shell脚本自动化部署服务

    shell脚本自动化部署 !/bin/bash #export PATH=$PATH:/export/maven/bin run_flag_dir="/data0/shell/deploy_ ...

  5. Magento2 常见错误 ----- 定期更新

    1.静态文件有版本号,静态文件不能读取,页面无法显示.如下图: 解决方案:其实URL里的版本号对于magento来说是合法的,这是因为我们缺少了一个文件\pub\static\.htaccess:导致 ...

  6. tmux 使用说明

    安装Mac:brew install tmux若未安装libevent,需要先brew install libeventCentos:yum -y install tmuxUbuntu:apt-get ...

  7. [APIO2007] 风铃

    题目链接 可能是个树上 DP?指针真好玩 23333. 首先对于所有玩具如果有深度差超过 1 的就是无解(在这里贡献 WA * 3),所以 dfs 一遍记录深度是有必要的…… 然后如果有一个点的两颗子 ...

  8. [JDK8]性能优化之使用LongAdder替换AtomicLong

    如果让你实现一个计数器,有点经验的同学可以很快的想到使用AtomicInteger或者AtomicLong进行简单的封装. 因为计数器操作涉及到内存的可见性和线程之间的竞争,而Atomic***的实现 ...

  9. Ubuntu 开机自动挂载硬盘

    1.查看Linux硬盘信息: $ sudo fdisk -l 2.格式化硬盘(根据需要确定文件系统): sudo mkfs.xfs /dev/sdb 3.创建/data目录 sudo mkdir /d ...

  10. vscode 正则表达式替换

    比如把1.aa2.bbb替换成 1.aa2.bbb则,查找\d+ 替换成 \n$0 $0为查找的正则匹配项editplus为\0