因为在spring的AOP里面需要用到HttpSeesion的一些资料,所以建了线程变量来保存HttpSeesion。
(1)建一个filter,主要是将HttpRequest的session拦截保存:
HttpSessionFile.java
public class HttpSessionFile implements Filter {
public static final ThreadLocal<HttpSession> session = new ThreadLocal<HttpSession>();
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
session.set(((HttpServletRequest)req).getSession());
chain.doFilter(req, resp);
}
public void destroy() {
// TODO Auto-generated method stub
}
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
}
}
配置web.xml:
<filter>
<filter-name>HttpSessionFile</filter-name>
<filter-class>com.common.HttpSessionFile</filter-class>
</filter>
<!-- 拦截所有请求 -->
<filter-mapping>
<filter-name>HttpSessionFile</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
如何在使用aop使用httpsession呢:
HttpSessionFile.session.get()
分享到:
相关推荐
Java中的`ThreadLocal`类是一个非常实用的工具,它提供了线程局部变量的功能。线程局部变量意味着每个线程都拥有自己独立的变量副本,互不干扰,这在多线程编程中尤其有用,可以避免数据共享带来的同步问题。下面...
【JAVA ThreadLocal类深入】 Java中的ThreadLocal类是一种线程绑定机制,用于在多线程环境中为每个线程提供独立的变量副本,避免了线程间的数据共享带来的并发访问问题。ThreadLocal并不是一个线程对象,而是线程...
**线程局部变量(ThreadLocal)是Java编程中一个非常重要的工具类,它在多线程环境下提供了线程安全的数据存储。ThreadLocal并不是一个变量,而是一个类,它为每个线程都创建了一个独立的变量副本,使得每个线程都...
在这个例子中,`ConnectionHolder`类提供了一组静态方法来设置、获取和移除线程局部的`Connection`对象。当多个线程并发执行时,每个线程都可以安全地使用自己的`Connection`实例,而不会相互干扰。 总的来说,结合...
ThreadLocal是Java编程语言中的一个类,用于在多线程环境中提供线程局部变量。它是一种特殊类型的变量,每个线程都有自己的副本,互不影响,从而实现线程间数据隔离。ThreadLocal通常被用来解决线程共享数据时可能...
Java中ThreadLocal工具类(解决多线程程序中并发问题的一种新思路,主要为参数的拷贝问题),感兴趣的话可以查看博文,博文地址:http://blog.csdn.net/otengyue/article/details/38459327
`ThreadLocal` 是 Java 中用于在单个线程内存储线程局部变量的类,每个线程都有自己的副本,不会互相干扰。`MyThreadLocal` 是 `ThreadLocal` 的子类,用于存储 `MyCounter` 对象。在 `LeakingServlet` 的 `doGet` ...
在Java编程中,ThreadLocal是线程局部变量的类,它提供了一种在多线程环境中为每个线程创建和维护独立副本的机制。ThreadLocal主要用于解决线程间的数据隔离问题,确保各线程拥有自己的变量副本,避免了数据共享带来...
ThreadLocal的工作原理基于Java的Thread类。在ThreadLocal中,每个实例都有一个内部Map,这个Map存储了键值对,键是ThreadLocal实例,值就是线程本地的变量副本。在JDK 8之前,这个内部Map是`ThreadLocal....
2. **内部类ThreadLocalMap**: `ThreadLocalMap`是`ThreadLocal`类中的一个内部静态类,它是一个定制的哈希映射,专门用于存储线程局部变量。每个`Thread`对象都包含一个`ThreadLocalMap`实例,用于保存该线程的`...
DbUTils中用ThreadLocal类
在Java多线程编程中,`ThreadLocal`是一个非常重要的工具类,它提供了一种在每个线程内部存储线程私有实例的方法。通常情况下,当多个线程共享某个变量时,可能会引发线程安全问题。而`ThreadLocal`则提供了另一种...
Java线程编程中的ThreadLocal类是一个非常重要的工具,它在多线程环境下提供了一种线程局部变量的机制。ThreadLocal并非是简单的变量,而是一种能够确保每个线程都拥有独立副本的变量容器。理解ThreadLocal的工作...
Java中的ThreadLocal类是一个强大的工具,它允许程序员创建线程局部变量。这意味着每个线程都有其自己独立的、不可见的变量副本,从而避免了线程间的数据共享问题,简化了多线程环境下的编程复杂性。ThreadLocal并不...
ThreadLocal 是 Android 开发中常用的一个工具类,它允许我们在多线程环境中为每个线程维护独立的变量副本。理解它的实现原理对于优化并发编程和减少线程间的干扰至关重要。 1. **ThreadLocal 接口介绍** ...
这个功能是通过 Thread 类中的 threadLocals 属性来实现的,这个属性实际上是一个 Entry 数组,其中的每个 Entry 都是一个弱引用,易于在 GC 时被回收。 ThreadLocal 的工作机制是通过计算Hash值来确定在数组中的...
本资料主要聚焦于两种设计模式以及Java中的ThreadLocal特性。 首先,我们来探讨单例模式。单例模式是一种确保一个类只有一个实例,并提供全局访问点的设计模式。在Java中,通常通过私有构造函数、静态工厂方法或...
- **内部类ThreadLocalMap**:ThreadLocal在每个线程内部维护了一个名为ThreadLocalMap的哈希映射表,这个表的键是ThreadLocal对象,值是线程局部变量的实际值。这样,每个线程都可以拥有自己的变量副本,互不干扰。...