求解!!在线急等~~~一个java问题~~!!!
发布网友
发布时间:2022-04-29 08:32
我来回答
共4个回答
热心网友
时间:2022-04-09 21:20
你可以试着用jdbc来做。在session过期之后可能注入会有问题。我当时也是这样做的,也是空指针,最后我用jdbc来做就没事了。
public void sessionDestroyed(HttpSessionEvent arg0) {
User user = (User)arg0.getSession().getAttribute("User");
// System.out.println(user.getUserName()+"session过期,退出系统!");
if(user!=null){
for(int i=0;i<LoginAction.listU.size();i++){
if(user.getUserId()==LoginAction.listU.get(i)){
LoginAction.listU.remove(LoginAction.listU.get(i));
}
}
int logId=(Integer) arg0.getSession().getAttribute("logId");
System.out.println("session过期后的当前用户的日志ID--------"+logId);
DriverManagerDataSource ds = (DriverManagerDataSource)arg0.getSession().getServletContext().getAttribute("dmds");
String url = ds.getUrl();
String username = ds.getUsername();
String password = ds.getPassword();
System.out.println("url "+url+" username "+username+" password "+password);
ClientLogExit logss=new ClientLogExit();
Date date=new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dd=format.format(date);
logss.insertLogs(url, username, password, user.getLoginName(), logId,dd);
logss.updateExitTime(url, username, password, user.getLoginName(), logId,dd);
logss.autoWebSiteExit(url, username, password, user.getUserId());
arg0.getSession().removeAttribute("User");
arg0.getSession().removeAttribute("logId");
}
热心网友
时间:2022-04-09 22:38
是不是 users 的构造函数 里没有 给变量 赋值
把出错的信息发出来看看
热心网友
时间:2022-04-10 00:13
既然错误在第15行,那么有两种可能:
1、getHibernateTemplate()返回了null
2、update(usobj);中出现空指针
自己再看看吧~
热心网友
时间:2022-04-10 02:04
个人感觉有可能是getHibernateTemplate()这个方法有问题,因为你这个是内部类,如果变量不是final的话,有可能已经过了他的生命周期,所以就会有空指针了,你看下那个方法在内部类里取出的是什么值