在Servlet2.5中,因为还没有支持异步处理,所以可能会导致请求阻塞的情况,在Servelet3.0之后,Servlet已经支持了异步处理,所以可以避免请求被阻塞迟迟没有办法得到解决的情况,至于2.5和3.0的处理流程图,如下:


我在使用异步处理进行测试的时候,触发了以下错误:
java.lang.IllegalStateException: 当前链的筛选器或servlet不支持异步操作
这里我检查了代码,代码如下:

如上红色框框所示,已经添加了asyncSupported=true,但是下面的红色框框的那行代码还是报错。
网上查找一些资料,发现所描述的问题并不类似,也没有解决我的问题。
最后再次阅读错误提示,当前链的“筛选器”或servlet不支持异步操作 。
发现问题出现在筛选器上,因为我这个测试中也有涉及到筛选器,但是筛选器的注解里边没有添加asyncSupported =true
添加以上内容到筛选器注解中,再次运行,测试成功!

网友评论