java filter过滤器和shiro的区别是什么?

TheDisguiser 2020-08-11 16:54:34 java常见问答 5753

刚接触权限功能编写的小伙伴,有不少可能不理解一般的过滤器和拦截器有什么区别,这里小编就为大家讲解一下。

拦截器(Interceptor)

拦截器,用于在AOP中某个方法或字段被访问之前进行拦截,然后在它的前面或后面加入某些操作。是AOP的一种实现策略。

通常在面向切面编程中应用的一般就是拦截器,即在我们的service或一个方法之前调用一个方法,或在方法之后调用一个方法。这是基于JAVA反射机制。拦截器并不是一定在web.xml中的,如struts就是在struts.xml中配置。

过滤器(Filter)

在Servlet中,实现了javax.servlet.Filter接口的服务器端程序就是过滤器,它的主要用途是设置字符集、控制转向、控制权限、做一些业务逻辑判断等。

过滤器工作原理:只需要配置好在web.xml文件中要拦截的客户端请求,它都会帮你拦截到请求,这时我们就可以对请求或响应(Request、Response)统一设置编码,简化操作;同时,我们还可以进行逻辑判断,即用户是否登陆、有没有此页面访问权限等工作。这些是随我们的web应用启动而启动的,只会初始化一次,此后就可以拦截相关请求,只有当我们的web应用停止或重新开始部署的时候才销毁。

两者执行流程

过滤前-拦截前-Action处理-拦截后-过滤后

两者区别

java filter过滤器和shiro的区别

以上就是本篇文章的所有内容,这都是很简单的java基础知识,但俗话都说了,基础永远是最重要的,所以还是不能够轻视。

推荐阅读:

java filter过滤器,异步如何处理过滤器?

filter过滤器是什么?Filter功能有哪些?