servlet规范(参见我之前的问题)保证相同的线程将执行所有过滤器和相关的Servlet.鉴于此,HttpServletRequest.setAttribute如果可以选择使用a ThreadLocal(假设您正确清理),我认为没有使用传递数据的任何用途.我觉得使用有两个好处ThreadLocal:类型安全和更好的性能,因为没有使用字符串键或映射(除非可能通过(非字符串)线程ID进入线程集合).
HttpServletRequest.setAttribute
ThreadLocal
有人可以确认我是否正确,所以我可以继续放弃setAttribute?
setAttribute
java servlets thread-local java-ee servlet-filters
java ×1
java-ee ×1
servlet-filters ×1
servlets ×1
thread-local ×1