很多人都想,在一个普通类里如何才能获取系统的request或session,我也找了,但没有,就自己实现了一下,期待需要的有缘人,希望能帮到一点点。
具体如下:
实现步骤:
1.定义一个线程类,普通的:
类里最主要的就是定义了一个参数:
private static ThreadLocal<HttpServletRequest> httpRequest = new ThreadLocal<HttpServletRequest>();
另外给了set get remove和线程相关的三个方法;
具体如下:
- public class SystemRequestContext {
- private static ThreadLocal<HttpServletRequest> httpRequest = new ThreadLocal<HttpServletRequest>();
- private static ThreadLocal<HttpSession> session = new ThreadLocal<HttpSession>();
- public static void removeHttpSession()
- {
- session.remove();
- }
- public static HttpSession getSession() {
- return session.get();
- }
- public static void setSession(HttpSession _session) {
- session.set(_session);
- }
2.定义一个filter,拦截所有的请求,把request装入
SystemRequestContext
- public void doFilter(ServletRequest req, ServletResponse response,
- FilterChain chain) throws IOException, ServletException {
- HttpServletRequest request = (HttpServletRequest)req;
- SystemRequestContext.setHttpRequest(request);
- SystemRequestContext.setSession(request.getSession());
- try{
- chain.doFilter(request, response);
- }finally{
- SystemRequestContext.removeHttpRequest();
- SystemRequestContext.removeHttpSession();
- }
- }
3.如何使用:
- public class UserModuleValidateTag {
- public static boolean validateModule(String module){
- HttpServletRequest request = SystemRequestContext.getHttpRequest();
- if(null!=request)
- System.out.println("^_^"+request);
- }
- }
相关推荐
### 普通Java类获取Request的方法 在Java Web开发中,经常需要在非Servlet类(如普通Java类)中获取`HttpServletRequest`对象,以便访问请求中的参数、头信息等。通常情况下,`HttpServletRequest`对象是在Servlet...
在Struts2框架中,对request和session的管理和获取是实现Web应用中用户交互和状态维护的重要手段。本文将深入探讨Struts2中如何获取request和session,以及这两种对象的作用和应用场景。 ### Struts2框架简介 ...
本篇文章将详细探讨如何在Struts自定义标签的Java类中获取`HttpSession`对象,并对其应用场景进行深入分析。 ### 一、Struts自定义标签简介 #### 1.1 Struts自定义标签的作用 在Web应用开发中,经常需要在JSP页面...
本文将详细探讨如何在普通类中传入并使用`HttpServletRequest`(简称request)对象,以及通过示例展示如何通过过滤器(Filter)模式实现在业务逻辑类中访问session中的数据。 #### 重要概念解析 - **`...
在探讨STRUTS2框架中如何获取session和request这一核心知识点时,我们首先需要理解STRUTS2框架的运行机制以及session与request在Web开发中的基础概念。 ### STRUTS2框架简介 STRUTS2是Apache软件基金会下的一个...
Cookie是一种简单的机制,用于在客户端存储信息以便后续的请求中使用。它最初是由Netscape社区开发并在W3C的标准中得到采纳,几乎所有现代浏览器都支持Cookie。 ##### 2. Cookie的工作原理 当用户首次访问一个网站...
总结来说,Spring Boot允许开发者轻松地在普通类中使用bean,通过Spring容器的强大功能来管理对象和依赖。通过理解并熟练运用上述知识点,可以更高效地开发Spring Boot应用。博客"17. Spring Boot普通类调用bean【从...
- **源代码配置节点**:在 `web.xml` 文件中使用 `<servlet>` 和 `<servlet-mapping>` 元素进行配置。 - **部署后目录结构**:部署后的目录结构通常包含 `WEB-INF` 目录,其中存放了 `.class` 文件、配置文件和...
以上内容涵盖了Java Web开发中的基础概念和常见操作,包括JSP指令、Servlet生命周期、JavaBean使用、请求和会话管理以及JSP动作标签的应用。这些知识点是Java Web开发者必备的基础技能。在面试或培训中,掌握这些...
11.2、在Tomcat中使用数据库连接池 11.3、查找数据源 11.4、本章摘要 第12章 JSP标签编程 12.1、标签编程简介 12.2、定义一个简单的标签 —— 空标签 12.3、定义有属性的标签 12.4、TagSupport类 12.5、定义...
1. `equals()` 和 `hashCode()` 方法:在Java中,`equals()` 方法用于比较对象的内容是否相等,而 `hashCode()` 方法用于计算对象的哈希值,通常在集合类如List、Set和Map中使用。在判断对象是否存在于集合中时,这...
学习Session接口,普通属性和关联关系的映射,以及Native SQL、inverse、lazy和cascade。探索HQL(Hibernate Query Language)和性能优化,包括一级缓存、二级缓存和查询缓存。 9. **Spring**:Spring是核心的IoC...
通过HttpServletRequest的getSession()方法,开发者可以获取或创建一个session,并通过setAttribute()和getAttribute()方法在session中存取数据。 #### 7. 文件系统与目录结构 文件系统是操作系统用于组织和管理...
Java中的IO流分为字节流和字符流,又分为输入流和输出流,共四种:InputStream/OutputStream(字节流)和Reader/Writer(字符流)。 16. **BIO/NIO/AIO的区别**: BIO是同步阻塞I/O,NIO是同步非阻塞I/O,AIO...
2.8.3 在JSP页面中使用Include指令后,JSP不能编译 2.9 精彩回顾 第3章前人栽树后人乘凉 ——、JSP内置对象 3.1 本章学习任务 3.1.1 本章知识体系 3.1.2 实例开发任务 3.2 简化开发JSP内置对象概述 3.2.1 为什么...
在这个开源项目中,我们可以学习到如何使用JSP来构建交互式的用户界面,以及如何处理用户的请求和响应。 首先,让我们深入了解JSP的核心概念。JSP主要有以下几个组成部分: 1. **JSP元素**:包括指令(directives)...
学习基本接口,特别是Session,以及普通属性和关联关系映射,处理继承关系,使用HQL进行查询优化。理解一级缓存、二级缓存和查询缓存的作用,以及事务和并发控制。 9. **Spring**: Spring的核心是IOC和DI,学习...
在这个系统中,Java类作为模型处理数据,jsp作为视图展示结果,Servlet作为控制器协调两者。 三、系统功能模块 1. 用户认证:包括学生和管理员的登录、注册功能,通常涉及到密码加密和验证。 2. 学生信息管理:...
- **同步性**:ArrayList是非线程安全的,如果在多线程环境中使用,需要手动进行同步控制。而Vector是线程安全的,内部实现了同步,但这也导致其在多线程环境下性能较低。 - **扩容策略**:当容量不足时,...