redis session共享中的序列化问题
生活随笔
收集整理的這篇文章主要介紹了
redis session共享中的序列化问题
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
今天在做session對(duì)象存入redis(set方法)時(shí),碰到一個(gè)空指針異常,代碼如下:
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>出錯(cuò)原因:AccountBean 作為session的屬性,因session繼承Serializable,被持久化保存到redis中,所以作完屬性的AccountBean也必須序列化才能被存入redis中。
轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/p/3231364.html
總結(jié)
以上是生活随笔為你收集整理的redis session共享中的序列化问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: redis java对象操作
- 下一篇: tomcat架构之-----基本概念