关于拦截器

刚接触jfinal,自己做了一个登陆页面,想要用拦截器拦截,目的是只有登陆成功了才能进入页面,在没有登陆之前,即使输入登录成功的网址也不能进入,我的拦截器就是,要不然都拦截,不管如何都进不去,要不然都不拦截,求赐教,最好有程序,谢谢!

评论区

JFinal

2017-08-30 17:49

把这个拦截器搞成全局拦截器,然后里面添加这样一个逻辑:
if (isLogin()) {
inv.invoke(); // 放行
} else {
inv.getControler().redirect("/login"); 重定向到登录页面
}

最后,在跳去登录页面那个 action 的方法上清除一下这个拦截器:
@Clear(LoginInterceptor.class)
因为登录 action 不能被拦截器,否则连登录页面都进不去了

jfinal.com 全套代码在加入俱乐部以后可立即下载,节省很多时间: jfinal.com/club

yzdoraemon

2017-08-31 10:44

才看到老大在这里解释了下,我试试先

开发goon

2017-08-31 13:44

@JFinal 我是通过登录的用户名跟密码与数据库比对,然后确定是否登录成功的,结果还是一样....

开发goon

2017-08-31 14:44

@yzdoraemon 哥们做出来没,我的还是一样,是不是我的逻辑判断不对

yzdoraemon

2017-09-14 09:48

@开发goon 做出来了,你登录的时候要验证用户名密码,但这里验证SESSION是为了防止他直接输入URL来进入系统,就是做了个全局拦截器,在调用每个action之前都会检查是否有session,这样就可以防止恶意使用,因为只有登录了以后session里才会有用户信息

热门反馈

扫码入社