JFinal关于静态资源的拦截

发布于 2021-11-29 05:55:33 字数 285 浏览 648 评论 7

@JFinal 你好,想跟你请教个问题:

1、我配置了全局登录校验拦截器,如若没有登录,跳转至登录页面。拦截器中如果使用redirect("/login.html"),freemark代码不会解析,而是直接输出了HTML内容。

2、如果在地址栏直接访问静态资源,如某个页面,拦截器也不会起作用。

该如何解决?谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

狠疯拽 2021-12-01 02:29:10

me.add(new UrlSkipHandler("*.html")); 参数是一个正则表达式,只要这个正则能匹配到的url全部会被 skip 掉

猫烠⑼条掵仅有一顆心 2021-12-01 02:24:12

回复
@JFinal : new UrlSkipHandler(".*html", false) 不要盲目相信楼上的

醉酒的小男人 2021-12-01 02:06:29

回复
@Jieven : 两年前的贴子了,正则手误写错,汉

无边思念无边月 2021-12-01 01:12:23

引用来自“车开源”的评论

貌似redirect("/login.html") 是不允许的吧。是不是手误render(...)?

一般情况下,除了js,css,图片等静态资源可以访问,其它html,jsp等是不能直接访问的,要经过render渲染。

青萝楚歌 2021-12-01 01:11:22

谢谢!已经解决了!看了官方文档,自定义Handler来处理静态资源请求URL。

琴流音 2021-11-30 23:39:16

貌似redirect("/login.html") 是不允许的吧。是不是手误render(...)?

一般情况下,除了js,css,图片等静态资源可以访问,其它html,jsp等是不能直接访问的,要经过render渲染。

谁的新欢旧爱 2021-11-30 18:07:00

    使用 redirect("/login.html") 后,浏览器会发起一个请求,而该请求是一个静态资源请求,而 jfinal 只会处理动态请求,静态请求都是由 jetty、tomcat 这类容器来处理的。

    所以解决方法极度简单,没有登录时重定向到一个动态请求即可: redirect("/login"); 当然前提是你要事先建好一个 action,路由为 "/login"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文