因为在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是基于ThreadLocal实现的。ThreadLocal是一种线程局部变量,每个线程都有自己的副本,避免了多线程环境下的数据冲突,确保了ActionContext在处理每个请求时都是线程安全的。 此外,...
Struts2 基于类开发,每个 URL 对应一个类。 - **参数传递**:SpringMVC 通过方法参数传递请求参数;Struts2 通过类属性传递参数。 - **数据管理**:Struts2 使用值栈存储数据,SpringMVC 通过参数解析器处理数据。 ...
- **使用ThreadLocal**:对于需要在不同请求间保持状态的场景,可以通过ThreadLocal来存储临时的状态信息。 #### 二、SpringMVC框架及注解 ##### 2.1 MVC是什么? MVC是一种软件架构模式,它将应用程序分为三个...
这可能会导致线程安全问题,解决的方法通常是在控制器中不要使用字段,或者使用ThreadLocal等线程局部变量来存储数据。 Spring MVC的工作原理是基于请求-响应模型,具体流程如下: 1. 用户发起请求,请求被...
- **在请求之间保存 SecurityContext**:通过 ThreadLocal 变量或 HttpSession 来维护 SecurityContext 的状态。 #### 五、访问控制(验证) - **安全和 AOP 建议**:Spring Security 提供了 AOP 支持,可以用来...
JSP(JavaServer Pages)是一种基于Java技术的标准,用于生成动态网页内容。JSP页面主要由以下几个部分组成: - **HTML标签**:用于构建静态内容。 - **Scriptlets**:即Java代码片段,嵌入在HTML中执行。 - **...
- 利用Spring提供的ThreadLocal实现线程安全。 **问题十三:为什么要有事物传播行为?** - 为了确保在嵌套事务中正确处理事务边界,避免出现脏读等问题。 **问题十四:介绍一下Spring的事物管理** - **编程式...