Java Spring Boot VS .NetCore (二)实现一个过滤器Filter
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的更多相关文章
- Java Spring Boot VS .NetCore (一)来一个简单的 Hello World
系列文章 Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filte ...
- Java Spring Boot VS .NetCore (三)Ioc容器处理
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- Java Spring Boot VS .NetCore (四)数据库操作 Spring Data JPA vs EFCore
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- Java Spring Boot VS .NetCore (五)MyBatis vs EFCore
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- Java Spring Boot VS .NetCore (六) UI thymeleaf vs cshtml
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- Java Spring Boot VS .NetCore (七) 配置文件
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- Java Spring Boot VS .NetCore (八) Java 注解 vs .NetCore Attribute
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- Java Spring Boot VS .NetCore (九) Spring Security vs .NetCore Security
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- Java Spring Boot VS .NetCore (十) Java Interceptor vs .NetCore Interceptor
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
随机推荐
- Python连接SQL Server数据库 - pymssql使用基础
连接数据库 pymssql连接数据库的方式和使用sqlite的方式基本相同: 使用connect创建连接对象 connect.cursor创建游标对象,SQL语句的执行基本都在游标上进行 cursor ...
- mpvue——另类支持v-html
前言 最近在用mpvue将之前写的vue项目转化为小程序,但是不支持v-html,也不能说不支持,只不过转化为了rich-text的富文本组件,但是图片显示不全啊 本来想让后端内嵌个样式的,还是算了, ...
- Django_ORM_字段属性
Django_ORM_字段属性 常用字段 AutoField int自增列,必填参 primary_key=True 默认会自动创建一个列名为id的列 IntegerField 一个整数类型,范围在 ...
- MT【313】特征方程逆用
已知实数$a,b,x,y$满足\begin{equation}\left\{ \begin{aligned} ax+by &= 3 \\ ax^2+by^2&=7\\ ax^3+by^ ...
- .Net Core实践1
实践目标 编写经典的hello world程序.使用.netcore框架,然后运行在linux上. .netcore目前已经是2.1版本了,可以简单的认为是一种跨平台的.net framework,除 ...
- mysql表加锁、全表加锁、查看加锁、解锁
单个表锁定: 格式: LOCK TABLES tbl_name {READ | WRITE},[ tbl_name {READ | WRITE},……] 例子: lock tables db_a.tb ...
- LOJ#2553 暴力写挂
题意:给定两棵树T1,T2,求d1[x] + d1[y] - d1[lca1(x, y)] - d2[lca2(x, y)]的最大值. 解:考虑把上面这个毒瘤东西化一下.发现它就是T1中x,y到根的路 ...
- 团体程序设计天梯赛(CCCC) L3015 球队“食物链” 状态压缩
团体程序设计天梯赛代码.体现代码技巧,比赛技巧. https://github.com/congmingyige/cccc_code #include <cstdio> #include ...
- tensorflow 语音识别报错
cuDnn由7.1版本改为7.4.2.24版本,成功
- 爬虫案例之Pubmed数据库下载
代码 # encoding=utf-8 import os, time, re import urllib.request import urllib.parse import ssl ssl._cr ...