如何在Dao中取得HttpSession中的数据,在用aspectJ做权限判断时需要读取HttpSession的相关信息,应该如何读取?当然不能直接传递session到dao中,查了资料比较好的办法是在filter中初始化session,用ThreadLocal来存储,可能是我对ThreadLocal的理解还不清晰,写了一个跑不起来,大家说应该如何写?
(getHttpSession()方法即使在filter中初始化后读出来的数据也还是空的)这里为了简单起见,ThreadLocal中假设只存用户id这个String类型信息
java 代码
- public class HttpSessionFactory {
-
- public static final ThreadLocal<String> httpSession = new ThreadLocal<String>();
- public static String getHttpSession() {
- return (String) httpSession.get();
- }
-
- public static void setHttpSession(String userId) {
- if(httpSession==null){
- httpSession.set(userId);
- }
- }
- }
分享到:
相关推荐
在Servlet中,可以使用`HttpSession`接口来创建、读取和销毁session,以跟踪用户的状态,如登录状态、购物车信息等。 8. **前端技术**: 虽然本项目没有特别指出,但在实际的电商系统中,可能还会使用HTML、CSS和...
5. DAO将数据封装到JavaBean对象中,返回给业务服务层。 6. 服务层处理完业务逻辑后,将JavaBean返回给控制器。 7. 控制器将JavaBean封装到HttpSession、HttpServletRequest或HttpServletResponse等域对象中,然后...
5. **服务调用**:Bizlet可以调用其他服务,如DAO服务(数据访问对象)来获取或更新数据,也可以调用远程服务进行跨系统交互。 6. **配置与部署**:完成Bizlet的编写后,需要将其配置到EOS的部署文件中,如`bizlet....
在Java Web开发中,分页是一种常见且实用的技术,它通过将大量的数据分隔成小块,帮助用户更有效地浏览和处理信息。本文将详细介绍如何在Java Web项目中实现简单的分页功能。 首先,登录页面的创建是分页功能的前置...
在J2EE中,登录通常涉及到用户接口(UI)、控制器(Controller)和数据访问对象(DAO)。用户在UI上输入用户名和密码,然后这些信息被发送到Controller进行验证。Controller通过调用DAO与数据库交互,查询用户是否...
在使用 `Session` 时,应当明确区分 Hibernate 中的 `Session` 与 JSP 中的 `HttpSession`,避免混淆。 #### 三、SessionFactory接口 `SessionFactory` 是用来创建 `Session` 对象的工厂,它是线程安全的,通常在...
5. 数据访问对象(DAO):虽然未直接提及,但通常在MVC架构中,DAO层负责与数据库交互,提供增删查改的操作。在本项目中,可能有一个DAO层,使用JDBC(Java Database Connectivity)或者ORM框架(如Hibernate或...
在mvc购物车系统中,数据访问对象(DAO)是通过Book类实现的。Book类封装了图书的信息,并提供了 getters 和 setters 方法来访问和修改图书信息。 七、JSP页面 JSP页面是mvc购物车系统的视图层。JSP页面负责显示...
接着,JavaBean调用DAO(Data Access Object)层的方法,将数据插入到数据库中。最后,Servlet可以将响应结果返回给JSP,展示添加成功的消息。 2. **删除(Delete)**: 删除操作通常基于用户的选择,例如点击一个...
1. **数据缓存**:将查询结果存储在`HttpSession`或有状态Bean中,每次翻页时从缓存中取出一页数据。这种方法可能导致数据不一致(用户看到旧数据),并且当数据量较大时,首次加载和缓存所有数据会消耗大量内存和...
费用报销项目描述费用报销系统(ERS)管理着补偿员工在公司工作期间发生的费用的过程。... 在RDS中使用PostgreSQL管理数据特征所有用户都可以执行以下操作: 登入。 报销。 查看过去的报销请求。 编辑个人
在Struts分页中,DAO会根据Action传递的参数来构造带有LIMIT和OFFSET的SQL语句,以获取指定页的数据。 6. **Servlet API**:Struts可以利用HttpSession、HttpServletRequest和HttpServletResponse等Servlet API来...
DAO层是数据访问对象,负责与数据库进行交互。 2. **Mapper层**: 在UserDataBaseMapper.xml文件中,添加了SQL查询语句,这是一个基于MyBatis的映射文件。`<select>`标签定义了一个名为`queryUser`的方法,...
在CartItemService中添加cartToOrder方法,而CartItemServiceImpl则注入OrderDao和OrderItemDao,实现从购物车数据到订单数据的转换,并调用DAO进行数据库操作。 7. **控制器层**:CartItemServiceController是处理...
DAO模式是Java中常用的设计模式,用于解耦业务逻辑和数据存储。 4. **执行查询**:通过`query`方法,DAO查询数据库中是否存在与提供的用户名和密码匹配的用户记录。如果出现异常,系统会捕获并打印错误信息,同时...
6. **数据访问对象(DAO)模式**:DAO模式是用于封装对数据库的操作,提供了一种抽象层,使得业务逻辑层与数据存储层解耦。在这个项目中,DAO类用于执行SQL语句,处理CRUD(Create, Read, Update, Delete)操作。 7...
6. **会话管理**:系统中可能会使用HttpSession对象来跟踪用户的购物车状态和其他用户特定的信息,确保用户在浏览过程中信息的一致性。 7. **安全性**:考虑到网上商城的安全需求,系统可能包含了防止SQL注入、XSS...
5. 数据访问对象 (DAO):`UserDBAccess` 和 `BookDBAccess` 可能是实现了数据访问层的对象,它们负责与数据库进行交互,执行CRUD(Create, Read, Update, Delete)操作。在这个案例中,`login()` 方法用于查找用户,...
在源代码中,我们看到`BookDAO.java` 和 `Dao.java`,它们可能代表数据访问对象(DAO)模式的实例。DAO模式是用来封装对数据库的访问,提供抽象层以降低耦合度。 通过这个课件系列,学习者可以掌握JavaWeb开发的...