javax.servlet.Filter会拦截Websocket消息吗?(Java Servlet API)



当我有一个websocket连接时,说在"/ws"

"/ws"路径上的常规javax.servlet.Filter会拦截每个消息作为常规http请求吗?它是否只拦截第一个请求(作为握手的一部分?)

如果没有,那么,我如何为websocket消息做这样一个过滤器?

我在说明书中没有找到任何关于这个的细节。

不,Servlet过滤器不会捕获WebSocket消息。

Servlet根本不支持WebSocket协议。你唯一能做的就是注册HttpUpgradeHandler(参见HttpServletRequest#upgrade),然后在上面实现WebSocket协议。

或. .如果您想节省一些时间,请查看一下JSR 356及其实现,它们是在这个API之上工作的。我个人负责Tyrus,它是JSR 356的参考实现。(它是Java EE 7的一部分,但您只需要Servlet 3.1 API)。

它是否只拦截第一个请求(作为握手的一部分?)

是的,只有第一个请求,即发起WebSocket握手的请求,被Servlet过滤器截获。

相关内容

  • 没有找到相关文章

最新更新