|
今天在做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代码为:
user name:
password:
出错原因:AccountBean 作为session的属性,因session继承Serializable,被持久化保存到redis中,所以作完属性的AccountBean也必须序列化才能被存入redis中。 |
|
|