当前位置: 首页 > 面试题库 >

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

燕扬
2023-03-14
问题内容

当我有一个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)。



 类似资料:
  • 拦截消息框 bp MessageBox(A) 创建消息框 bp MessageBoxExA 创建消息框 bp MessageBoxIndirect(A) 创建定制消息框

  • 我目前正在使用带有的Kafka绑定器的Spring Cloud Stream为我的Spring Boot微服务执行消息记录。 我有: 生产者将消息发布到订阅频道 在消息从生产者发布到流并被消费者收听的整个过程中,可以观察到preSend方法被触发了两次: 一次在生产者端-消息发布到流时 然而,出于日志记录的目的,我只需要在消费者端截获并记录消息。 是否有任何方法可以仅在一侧(例如消费者侧)截获SC

  • 本文向大家介绍.Net WebApi消息拦截器之MessageHandler的示例,包括了.Net WebApi消息拦截器之MessageHandler的示例的使用技巧和注意事项,需要的朋友参考一下 消息拦截器是一个类,接收 HTTP request并返回 HTTP response,Message handler 继承自抽象类 HttpMessageHandler 可以自定义 MessageHa

  • 本文向大家介绍实例讲述易语言拦截窗口消息,包括了实例讲述易语言拦截窗口消息的使用技巧和注意事项,需要的朋友参考一下 易语言等可视化编程已经将视窗消息封装为对象的属性、方法和事件。当我们在窗口中按下鼠标左键,欲出现信息“你点击了窗体”,在易语言中是这样编写的: 子程序:__启动窗口_鼠标左键被按下 返回值类型:逻辑型 参数:横向位置 数据类型:整数型 参数:纵向位置 数据类型:整数型 参数:功能键状

  • 拦截文件 bp CreateFileA 创建或打开文件 (32位) bp OpenFile 打开文件 (32位) bp ReadFile 读文件 (32位) bp WriteFile 写文件 (32位) bp GetPrivateProfileStringA (ini文件)

  • 拦截时间 bp GetLocalTime 获取本地时间 bp GetSystemTime 获取系统时间 bp GetFileTime 获取文件时间 bp GetTickCount 获得自系统成功启动以来所经历的毫秒数 bp GetCurrentTime 获取当前时间(16位) bp SetTimer 创建定时器 bp TimerProc 定时器超时回调函数