栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

ThreadLocal将ServletRequest和Response存储在Servlet中:用于什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ThreadLocal将ServletRequest和Response存储在Servlet中:用于什么?

关键是将请求和响应对象放在本来没有类的类中(例如,它们不是servlet)。一个示例是JSF托管Bean-
它们的方法不带

HttpServletRequest
参数,因此您可以通过来获取请求
FacesContext
,该请求将它们包含在
ThreadLocal
变量中。

之所以起作用,是因为每个请求都由一个单独的线程(由servlet容器)处理。所以线程=请求。但是需要注意的是-
容器倾向于使用线程池。因此,必须始终在threadlocal中设置一个新的请求,最好在之后将其清除(例如在中

Filter
)。否则,您会得到一些意想不到的行为。

但是您应该在代码中真正避免这种情况。如果您需要请求或响应中的任何内容,请将其作为方法参数传递给周围。否则,您可能会违反层边界(例如,如果您倾向于在服务层中使用该请求)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/569443.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号