关于 jfinal里的 Interceptor 拦截器 和 Filter过滤器

从前 发布于 2013/04/02 23:17
阅读 9K+
收藏 3

 @jfinal

大家做 权限的时候是不是都是用 的Interceptor拦截器?

jfinal里能不能自定义 filter, 然后在web.xml 配置指定路径呢?

好像jfinal只有一个入口filter,然后都是通过Interceptor拦截器来拦截的,感觉比较麻烦,要么只能做一个全局的拦截器(在Config里定义),要么对Controller 做拦截(在Controller里做注解),能不能像普通filter那样 在web.xml 拦截指定目录呢?比如 拦截/uc/*

加载中
0
JFinal
JFinal

    权限问题比较理想的办法是使用 AOP,所以可以选择 Interceptor、Handler或Filter。JFinal提供了 Interceptor与Handler可供选择。

    通常情况下使用 Interceptor 比较合适。因为在 Interceptor 中可以方便地获得 actionKey、controllerKey来做权限控制的依据,还可以使用render控制页面跳转以及使用redirect来重定向。

   Handler可以在更高层次来做权限,但失去了 interceptor中在上面提到的好处

从前
从前
jfinal的这个JFinalFilter 是不是整个 基于 jfinal的基础filter。所有其他的filter必须在他之后?
JFinal
JFinal
回复 @从前 : 当然可以,注意一下自定义Filter与JFinalFilter的次序,在前面的会先被执行,根据需要决定次序
从前
从前
嗯。在Interceptor 里控制权限是比较灵活,控制粒度也比较好控制。我想请教下另外一个问题,jfinal 里可不可里自定义 Filter 像通用的web项目那样在 web.xml利配置过滤的目录? servlet呢?
0
从前
从前
因为有些 功能用 filter 比较合适一些,控制粒度为目录,介于全局配置config配置拦截器和 controller上配置拦截器 之间的,这个时候怎么处理呢? 实现一个拦截器然后在 多个controller上在注解?这样就比较复杂了,所以filter还是很好的
0
JFinal
JFinal

引用来自“从前”的答案

因为有些 功能用 filter 比较合适一些,控制粒度为目录,介于全局配置config配置拦截器和 controller上配置拦截器 之间的,这个时候怎么处理呢? 实现一个拦截器然后在 多个controller上在注解?这样就比较复杂了,所以filter还是很好的
用一个全局拦截器很方便,对目录进行控制或许只要根据 controllerKey就达到目的了: actionInvocation.getControllerKey()。
返回顶部
顶部