整理文档,找到spring boot实现过滤器和阻止程序demo,稍微整理后简化共享。
拦截器定义:
@网页servlet
publicclassactioninterceptorimplementshandlerinterceptor {
@override
publicbooleanprehandle (httpservletrequestrequest,http servlet响应响应,对象处理程序)。
throws exception {
//system.out.println (' my interceptor 1在处理请求之前被调用(在控制器方法调用之前) );
//获取系统时间
calendar ca=calendar.getinstance (;
int hour=ca.get (calendar.hour _ of _ day );
//设置限制运行时间0-4点
if(hour4) {
返回真;
}
返回假;
}
@override
publicvoidposthandle (httpservletrequestrequest,http servlet响应响应,对象处理程序,
modelandview modelandview (throws exception
//system.out.println (在处理' my interceptor 1请求后调用,但在渲染视图之前(在调用控制器方法之后) );
}
@override
publicvoidaftercompletion (httpservletrequestrequest,http servlet响应响应,对象处理程序,执行ex ) )。
throws exception {
//system.out.println (my interceptor 1在整个请求结束后被调用,成为dispatcher servlet
//在运行之前渲染相应的视图(主要用于资源清理任务) ) ) ) ) );
}
}
拦截器使用的是: 注释使用@component,但实际上也可能被声明为设置
@component
publicclassapplicationconfig { extendswebmvcconfigureradapter }
@override
publicvoidaddinterceptors (interceptorregistryregistry ) {
//多个拦截器构成一个拦截器链
//addpathpatterns用于添加监听规则
//excludepathpatterns用户排除拦截
registry.add interceptor (newaction interceptor () ).addpathpatterns ) )/service/extract/JSON/** ';
super.addinterceptors(registry );
}
}
滤波器:
定义:
publicclassactionfilterimplementsfilter {
@override
公共void init (过滤器配置文件配置) throws servletexception {
}
@override
publicvoiddofilter (servletrequestrequest,servlet响应响应,过滤器通道) )。
throws ioexception,servletexception {
//获取系统时间
calendar ca=calendar.getinstance (;
int hour=ca.get (calendar.hour _ of _ day );
//设置限制运行时间0-4点
if(hour4) {
httpservletresponsehttpresponse=(http servlet响应)响应;
httpresponse.setcharacterencoding (utf-8 );
httpresponse.set content type (应用程序/JSON; charset=utf-8 ';
//新闻
map messagemap=new hashmap (;
messagemap.put('status ','1' );
消息映射. put ('消息','此接口为:0-4点');
objectmapperobjectmapper=new对象映射器(;
stringwritevalueasstring=object mapper.writevalueasstring (消息映射);
response.getwriter ().write(writevalueasstring );
} else {
chain.dofilter(request,response );
}
}
@override
公共语音目录
}
}
使用:
@component
公共类应用程序配置{
@bean
publicfilterregistrationbeanfilterregistrationbean {
filterregistrationbeanregistrationbean=newfilterregistrationbean (;
actionfilteractionfilter=newactionfilter (;
注册bean.set filter (actionfilter;
list urlpatterns=new arraylist (;
URL patterns.add (/service/extract/JSON/* );
注册bean.set URL patterns (URL patterns;
返回注册bean;
}
}
希望以上是正文的全部内容,对大家的学习有帮助。 另外,希望能多多支持万仟网。
你想和很多网友交流吗?
点击这个留言吧!