java 过滤器(Filter)与springMVC 拦截器(interceptor)的实现案例
java 过滤器Filter:
package com.sun.test.aircraft.filter;
import javax.servlet.*;
import java.io.IOException;
public class SunnyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("init success");
System.out.println("FilterName:" + filterConfig.getFilterName() + " " + "InitParameterNames:" + filterConfig.getInitParameterNames() + " " + "ServletContext:" + filterConfig.getServletContext());
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
System.out.println("start filter");
chain.doFilter(request, response);
}
@Override
public void destroy() {
System.out.println("destroy enheng!");
}
} web.xml配置:
<filter>
<filter-name>sunnyFilter</filter-name>
<filter-class>com.sun.test.aircraft.filter.SunnyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sunnyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
结果:


=====================================================================================================================
springMVC 拦截器interceptor:
package com.sun.test.aircraft.intercept; import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class SunnyIntercept implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
System.out.println("interceptor before working");
return true;
} @Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
System.out.println("interceptor working");
String str="interceptor working";
modelAndView.addObject("incept",str);
} @Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
System.out.println("interceptor worked done");
}
}
spring-mvc.xml配置
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/hello/**"/>
<bean class="com.sun.test.aircraft.intercept.SunnyIntercept"/>
</mvc:interceptor>
</mvc:interceptors>
package com.sun.test.aircraft.controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; controller实现(可以理解为实现的do)
@Controller
@RequestMapping("/hello")
public class HelloController { @RequestMapping("/u")
public void hello() {
System.out.println("hello you");
}
}
结果:

一句话:过滤器:“取你所想取,过滤的是链接,关注的是web请求;拦截器:“拒你所想拒”关注的是业务逻辑{业务逻辑之前,业务逻辑正在,业务逻辑之后}所处理的事情
java 过滤器(Filter)与springMVC 拦截器(interceptor)的实现案例的更多相关文章
- Java过滤器(Filter)与SpringMVC拦截器(Interceptor)之间的关系与区别
过滤器和拦截器的区别: ①拦截器是基于java的反射机制的,而过滤器是基于函数回调. ②拦截器不依赖与servlet容器,过滤器依赖与servlet容器. ③拦截器只能对action请求起作用,而过滤 ...
- web 过滤器 Filter、 Spring 拦截器 interceptor
1.过滤器(Filter)(在web.xml中注册过滤器) 首先说一下Filter的使用地方,我们在配置web.xml时,总会配置下面一段设置字符编码,不然会导致乱码问题: <filter> ...
- SpringMVC拦截器Interceptor
SpringMVC拦截器(Interceptor)实现对每一个请求处理前后进行相关的业务处理,类似与servlet中的Filter. SpringMVC 中的Interceptor 拦截请求是通过Ha ...
- Java 过滤器、监听器、拦截器的区别
原文:http://www.360doc.com/content/10/0601/09/495229_30616324.shtml 1.过滤器 Servlet中的过滤器Filter是实现了ja ...
- java过滤器、监听器、拦截器机制
一.过滤器 Filter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 ...
- servlet filter和springMVC拦截器的区别
参考 http://blog.csdn.net/ggibenben1314/article/details/45341855
- java中过滤器(Filter)与拦截器(Interceptor )区别
过滤器(Filter) Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是设置字符集.控制权限.控制转向.做一些业务逻辑判断等.其工作 ...
- Java 中的过滤器Filter 和拦截器 Interceptor
1.先说拦截器 Interceptor 本项目以springboot为例: 新建 InterceptorConfig package com.opendev.mystudy.MyInterceptor ...
- 过滤器(Filter)和拦截器(Interceptor)
过滤器(Filter) Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序.它依赖于servlet容器,在实现上,基于函数回调,它可以对几乎所有请求 ...
随机推荐
- Codeforces Round #352 (Div. 2) A
A. Summer Camp time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- DP———6.两个状态之间的 处理
Tickets Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- vue刨坑(二)
vue实例 vue实例 每一个应用都是通过vue这个构造函数创建根实例(root instance),启动 new vue(选项对象) 需要传入选项对象,对象包含挂载元素,数据,模板,方法等. el: ...
- wp检测是否是手机网络还是wifi网络
原文发布时间为:2013-06-22 -- 来源于本人的百度文章 [由搬家工具导入] ),newNameResolutionCallback(handle =>{NetworkInterface ...
- oracle 的数组(转)
declare type t_indexby is table of number index by binary_integer; type t_nested is table of number; ...
- [C++对象模型][8]多重继承与虚函数表
转载: [C++对象模型][8]多重继承与虚函数表 一 多重继承 1) 代码: Code #include <iostream> using namespace std; class B1 ...
- VC++中有关句柄和指针及其转换(转)
原文转自 https://blog.csdn.net/jearmy/article/details/47030011 1.MFC窗口的句柄和指针的转换 (1) 一般窗口对象都会有一个其对应的句柄变量, ...
- Sqlite 约束条件 Constraints
一.约束 Constraints 我们在数据库中存储数据的时候,有一些数据有明显的约束条件. 比如一所学校关于教师的数据表,其中的字段列可能有如下约束: 年龄 - 至少大于20岁.如果你想录入一个小于 ...
- bash shell 文本文件操作
一.打开文本文档,查看文本的内容,我们最直观的方式就是用编辑器,并且可以使用vi内部的查找命令查找[参见Vim文字编辑] vi test.txt#使用vi打开当前目录下的test.txt文本 二.总结 ...
- 51nod 1182 完美字符串【字符串排序+哈希】
1182 完美字符串 题目来源: Facebook Hacker Cup选拔 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 收藏 关注 约翰认为字符串的完美度等 ...