Jfinal拦截器的使用

拦截器是Java中动态拦截Action调用的对象。开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行,同时也提供了一种可以提取action中可重用部分的方式。在AOP(Aspect-Oriented Programming)中拦截器用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。
在需要登陆的情况下,配置拦截器很有必要。可以保证在没有登录的情况下用户即使知道路径也不能看到内容。
Jfinal中使用拦截器有以下方法:
1.在configInterceptor(Interceptors me)方法中定义全局拦截器。

2.自定义XX 类继承接口Interceptor,在其中实现接口方法,实现逻辑判断。在所需要拦截的Controller之前添加@(XX.class),即可完成部分拦截功能。

示例: (1).配置拦截器,实现接口Interceptor。
public class GlobalInterceptor extends Controller implements Interceptor {
public void intercept(Invocation inv) {
// TODO Auto-generated method stub
HttpSession session = inv.getController().getSession();
String username = (String) session.getAttribute(“username”);
if(session == null){
inv.getController().render(“/index/login.html”);
}
else{
String nickname = (String)session.getAttribute(“nickname”);
if(nickname != null) {
System.out.println(username);
inv.invoke();
}
else{
inv.getController().render(“/index/login.html”);
}
}
}
}
(2).用户登录时,如果用户名密码匹配,就保存session。
getSession().setAttribute(“nickname”, username);

    setSessionAttr("sessionId", username);// 设置服务器端session
    //setCookie("cuser", sessionId, 60000);// 设置用户端cookie
    redirect("/admin");

(3).在需要拦截的控制器前添加拦截
@Before(GlobalInterceptor.class)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值