完成HttpServletRequest的挂钩/回调

时间:2014-08-12 12:17:38

标签: java servlets httprequest

我在ThreadLocal中设置ServletFilter变量,用于在我的网络应用程序中设置租户。现在,我需要在请求处理结束时执行ThreadLocal清理。

我认为这是在多租户应用程序中获取/设置tenantId的常用方法。 但我无法确定可用于执行此清理的常用位置。

是否有可用于此目的的钩子/回调?

1 个答案:

答案 0 :(得分:1)

正如您所说,您正在ServletFilter中设置ThreadLocal变量,您应该在同一个过滤器中进行清理。类似的东西:

public void doFilter(ServletRequest request, ServletResponse response, FilterChain fc) throws ServletException, IOException {
    //set thread local variable
    // stuff ...
    try {
        // other stuff ...
        fc.filter(request, response)
        // still other stuff ...
    }
    finally {
        // cleanup ThreadLocal variable
    }
}