`
bensen
  • 浏览: 10245 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

基于ThreadLocal的HttpSession类

 
阅读更多

因为在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()

分享到:
评论

相关推荐

    ActionContext在struts2.0中的详细应用

    `来获取,这是因为ActionContext是基于ThreadLocal实现的。ThreadLocal是一种线程局部变量,每个线程都有自己的副本,避免了多线程环境下的数据冲突,确保了ActionContext在处理每个请求时都是线程安全的。 此外,...

    SpringMVC面试专题.pdf

    Struts2 基于类开发,每个 URL 对应一个类。 - **参数传递**:SpringMVC 通过方法参数传递请求参数;Struts2 通过类属性传递参数。 - **数据管理**:Struts2 使用值栈存储数据,SpringMVC 通过参数解析器处理数据。 ...

    Spring MVC面试宝典1.pdf

    - **使用ThreadLocal**:对于需要在不同请求间保持状态的场景,可以通过ThreadLocal来存储临时的状态信息。 #### 二、SpringMVC框架及注解 ##### 2.1 MVC是什么? MVC是一种软件架构模式,它将应用程序分为三个...

    Spring MVC面试题(2025最新版).docx

    这可能会导致线程安全问题,解决的方法通常是在控制器中不要使用字段,或者使用ThreadLocal等线程局部变量来存储数据。 Spring MVC的工作原理是基于请求-响应模型,具体流程如下: 1. 用户发起请求,请求被...

    spring security3 中文版本

    - **在请求之间保存 SecurityContext**:通过 ThreadLocal 变量或 HttpSession 来维护 SecurityContext 的状态。 #### 五、访问控制(验证) - **安全和 AOP 建议**:Spring Security 提供了 AOP 支持,可以用来...

    JSP面试题--基础

    JSP(JavaServer Pages)是一种基于Java技术的标准,用于生成动态网页内容。JSP页面主要由以下几个部分组成: - **HTML标签**:用于构建静态内容。 - **Scriptlets**:即Java代码片段,嵌入在HTML中执行。 - **...

    Java面试框架高频问题2019

    - 利用Spring提供的ThreadLocal实现线程安全。 **问题十三:为什么要有事物传播行为?** - 为了确保在嵌套事务中正确处理事务边界,避免出现脏读等问题。 **问题十四:介绍一下Spring的事物管理** - **编程式...

Global site tag (gtag.js) - Google Analytics