Thread/Stacktrace中的会话ID

And*_*ndy 0 java servlets

我没有遇到什么问题,只是想着事情.

如果我有一个Web应用程序,让我们调用一个servlet.如果servlet调用调用数据库层的数据管理器.让我们假设其中一个级别会引发异常.有没有一种方法可以识别堆栈顶部存在的会话ID,而不会将表达式一直冒到顶层并进入servlet层?

希望这是有道理的....:o)

Boz*_*zho 5

一般来说,最好让异常泡到可以处理它的层 - 即你的servlet.这就是我推荐的.

您始终可以Filter截取每个请求并将当前会话ID放在public static ThreadLocal<String> sessionId;某个位置.然后可以从同一个线程的任何地方访问它.

sessionId是否有用是另一个故事.也许您可以使用您的用户ID,用户IP或其他类似信息.