redis session共享中的序列化问题
Redis 共享 session 序列化 问题
2023-09-11 14:21:42 时间
今天在做session对象存入redis(set方法)时,碰到一个空指针异常,代码如下:
public class CheckAccount extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ HttpSession session=request.getSession(); AccountBean account=new AccountBean(); String username=request.getParameter("username"); String password=request.getParameter("password"); account.setPassword(password); account.setUsername(username); if((username!=null)&&(username.trim().equals("jsp"))){ if((password!=null)&&(password.trim().equals("1"))){ session.setAttribute("account", account); SessionService.getInstance().SaveSession(session); //System.out.println(session.getId()); String logon_suc="session.jsp"; response.sendRedirect(logon_suc); return ; } } String logon_fail="fail.jsp"; response.sendRedirect(logon_fail); return; } public void doPost (HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ doGet(request,response); } }
属性如下所示:
public class AccountBean { private static final long serialVersionUID = 1390366007623566261L; private String username=""; private String password=""; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
输出jsp代码为:
<body> <%=request.getSession().getId()%><br/> <% AccountBean account=(AccountBean)request.getSession().getAttribute("account");%> user name:<%=account.getUsername() %><br/> password:<%=account.getPassword() %><br/> </body>
出错原因:AccountBean 作为session的属性,因session继承Serializable,被持久化保存到redis中,所以作完属性的AccountBean也必须序列化才能被存入redis中。
相关文章
- redis实战笔记(10)-第10章 扩展Redis
- redis实战笔记(3)-第3章 Redis命令
- 各种redis的介绍:ServiceStack.Redis,StackExchange.Redis,CSRedis
- Redis数据库的使用
- Redis 发布订阅
- nginx+tomcat+redis负载均衡,实现session共享
- SpringBoot整合Redis实现Shiro分布式Session共享
- Redis——Lettuce连接redis集群
- Spring Boot + Redis 处理 Session 共享
- Redis开发 - 1. 认识redis
- Redis 分布式锁的实现
- 【Redis】redis安装与客户端redis-cli的使用(批量操作)
- Redis超详细入门(图文结合)原来redis这么简单
- Spring集成Redis集群(含spring集成redis代码)
- Shiro Redis注入失败,shiro导致redis不能注入
- 01-Redis核心数据结构与高性能原理
- Redis配置文件详解
- Redis在windows下安装过程(转载)
- 【Redis入门笔记 01】redis 安装 & 配置
- Redis(1.18)redis阻塞分析
- 【转】Redis概念原理、redis面试
- 曹工说Redis源码(7)-- redis server 的周期执行任务,到底要做些啥
- 曹工说Redis源码(4)-- 通过redis server源码来理解 listen 函数中的 backlog 参数
- Redis的三个框架:Jedis,Redisson,Lettuce
- 真正实现一键自动化部署,Nginx+Tomcat+Redis 实现负载均衡集群服务搭建,所有文件自动生成,包括自动生成配置文件参数、解决依赖问题、Session共享同步、反向代理等等
- Tomcat通过Redis实现session共享的完整部署记录