jfinal3.3的handler为啥不拦截静态文件

我有一个前后端分离的项目,*.html后缀的文件访问权限打算在handler里实现,
然后web.xml配置

<filter>
	<filter-name>mvc</filter-name>
	    <filter-class>com.jfinal.core.JFinalFilter</filter-class>
	    <init-param>
		<param-name>configClass</param-name>
		<param-value>com.corp.config.WebConfig</param-value>
	    </init-param>
	</filter>
        <filter-mapping>
		<filter-name>mvc</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</filter>

config里配置入下

/**
* 配置处理器
*/
public void configHandler(Handlers me) {
    // 重定向
    me.add(new PermissionHandler());
}

permissionHanlder代码入下

public class PermissionHandler extends Handler {
    List<String> permissions = new ArrayList<String>();
    public PermissionHandler(){
	permissions.add("/index.html");
    }
    @Override
    public void handle(String target, HttpServletRequest request,
	HttpServletResponse response, boolean[] isHandled) {
	System.out.println("url:"+target);
	if (target.indexOf(".html")>-1) {
		System.out.println(target);
		if(!permissions.contains(target)) {
			target = "/login.html";
		}
	}
	next.handle(target, request, response, isHandled);
   }

}

然后看日志打印出来的url都是接口,没有出现 index.html, jquery.js这样的静态文件,以前好像没这样。

评论区

JFinal

2018-06-19 16:52

调试一下 JFinalFilter , 看 String target 这个参数最原始的地方有没有拦截到这些静态资源

jfinal 的 handler 是肯定可以拦截到的,除非前方还有别的机制阻断了

stanley99

2018-06-19 17:03

@JFinal 不好意思,我的错,我是用node+vue在开发前端,静态页面走的是node,接口代理给后台了,所以静态页面木有走jetty.

stanley99

2018-06-19 17:06

感谢波总的及时反馈,请你喝杯咖啡.

JFinal

2018-06-19 17:21

@stanley99 咖啡已收到,谢谢 ^_^

热门反馈

扫码入社