Java 从线程获取http请求信息

Java 从线程获取http请求信息,java,multithreading,servlets,jmx,mbeans,Java,Multithreading,Servlets,Jmx,Mbeans,是否可以从一个线程而不是当前线程获取http请求信息 我希望能够枚举所有活动线程,并获取每个线程的请求uri 有什么想法吗 谢谢试试这个: 创建一个。 让它实现。在过滤器的方法中注册bean,然后在方法中注销它 定义一个字段。 在筛选器的方法中,在调用的方法之前捕获请求的URI。将线程和请求URI插入WeakHashMap。 给链条打电话。 在finally块中,将当前线程和一些任意常量(如NO REQUEST)插入WeakHashMap。 实现DynamicBean,以便在WeakHashMa

是否可以从一个线程而不是当前线程获取http请求信息

我希望能够枚举所有活动线程,并获取每个线程的请求uri

有什么想法吗

谢谢

试试这个:

创建一个。 让它实现。在过滤器的方法中注册bean,然后在方法中注销它 定义一个字段。 在筛选器的方法中,在调用的方法之前捕获请求的URI。将线程和请求URI插入WeakHashMap。 给链条打电话。 在finally块中,将当前线程和一些任意常量(如NO REQUEST)插入WeakHashMap。 实现DynamicBean,以便在WeakHashMap中为每个线程显示一个。将属性名设为线程的名称,并将类型设为URI或字符串。 实现DynamicBean,以便该方法返回与请求的属性名对应的线程的URI。 配置筛选器,以便为要跟踪的所有URI范围调用它。 当您查看MBean的属性时,您将看到至少处理了一个请求的JVM中仍处于活动状态的每个线程的URI或NO请求。当线程终止时,可能在几个GC周期之后,WeakHashMap条目将被删除

现在读起来有点难,但应该很简单


//Nicholas

如何从容器中获取所有线程?您的线程可能会在迭代时完成,我宁愿将URI记录在线程servlet中,也可能记录到MBean中…获取线程的方法有很多种,但是我最感兴趣的是堆栈跟踪,所以我找到的最简单的方法是使用静态方法:Thread.getAllStackTraceshi Nicholas,感谢您的详细解释。我设法实现了一半的过滤器和同步的弱哈希映射,但是当我到达MBeans部分时,我被卡住了。我将尝试阅读更多关于MBean的内容,并将这一部分也做好。再次感谢:如果您要这样做,我认为您最好将请求对象添加到过滤器中的ThreadLocal