我想为与Tomcat建立的每个连接获取唯一的标识符。我不是在谈论会话或用户(客户端)的唯一性,而是每个连接。假设客户A发送了一个GET,然后发送了另一个。在我的场景中,这是两个单独且唯一的连接。
在Tomcat中,是否有任何变量或某些东西可以扮演标识符的角色?
一种选择是使用ServletFilter:
public class UniqueRequestFilter implements Filter { public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { String requestID = UUID.randomUUID().toString() //save to ThreadLocal... try { chain.doFilter(req, res); } finally { //remove from ThreadLocal } } public void init(FilterConfig config) throws ServletException { } public void destroy() { } }
您可以随时在应用程序中从ThreadLocal获取请求值。