Jfinal使用UrlSkipHandler遇到的奇怪问题

丶Lion 发布于 2017/05/01 00:17
阅读 1K+
收藏 0

云栖大会9月17火热来袭,云栖训练营福利提前大放送!>>>

问题发生在使用Websocket的时候 , 估计跟websocket关系不大

需要配置拦截器 , 过滤掉 , 所有请求

handler.add(new UrlSkipHandler("/admin/friendchat*|/ca/.*|/se/.*|.*.htm|.*.html|.*.js|.*.css|.*.json|.*.png|.*.gif|.*.jpg|.*.jpeg|.*.bmp|.*.ico|.*.exe|.*.txt|.*.zip|.*.rar|.*.7z", false));

然后请求的时候

后台server地址配置

@ServerEndpoint(value="/admin/friendchat",configurator=GetHttpSessionConfigurator.class)

这个地址 , 没问题 , 可以访问

 var ws = new WebSocket("ws://localhost:8080/PointLion/admin/friendchat");

 

 

当我 , 往socket传递参数

的时候

handler没问题,不用改

handler.add(new UrlSkipHandler("/admin/friendchat/*|/ca/.*|/se/.*|.*.htm|.*.html|.*.js|.*.css|.*.json|.*.png|.*.gif|.*.jpg|.*.jpeg|.*.bmp|.*.ico|.*.exe|.*.txt|.*.zip|.*.rar|.*.7z", false));

后台server地址

@ServerEndpoint(value="/admin/friendchat/{friend}",configurator=GetHttpSessionConfigurator.class)

js请求地址

 var ws = new WebSocket("ws://localhost:8080/PointLion/admin/friendchat/admin");

这样就不行了.............

我跟踪了一下代码

发现 , handler , 的正则表达式, 并不能匹配

感觉好奇怪 , 是不是我这有什么别的问题

 

 

这个是可以的

Handler -------- /admin/friendchat*

请求地址--------/admin/friendchat

 

这是不可以的

Handler -------- /admin/friendchat*

Handler -------- /admin/friendchat/*

Handler -------- /admin/friend*

请求地址--------/admin/friendchat/admin

 

我是不是正则写的不大对???

加载中
0
丶Lion
丶Lion

正则表达式,用错了。。。。。。。。。。。。。。。很尴尬

"/admin/friendchat/(.*?)$|/ca/.*|/se/.*|.*.htm|.*.html|.*.js|.*.css|.*.json|.*.png|.*.gif|.*.jpg|.*.jpeg|.*.bmp|.*.ico|.*.exe|.*.txt|.*.zip|.*.rar|.*.7z"

0
CAFEDADA
CAFEDADA

*表示它之前的t可以重复0或多次,即/admin/friendchatt或者/admin/friendcha可以匹配

丶Lion
丶Lion
那我要匹配/admin/friend/admin1,/admin/friend/admin2,/admin/friend/admin3这种的。表达式应该则么写????/admin/friend/这样就可以了吗????
返回顶部
顶部