创建session保存登录后的信息
我写在了dao层,不知道可不可以package hibernate_po;import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletRequest;
import model.Student;import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;public class LoginDao {
private int s=0;
private HttpServletRequest request;
public String check(String email,String password){
Session session=null;
Transaction tx=null;
try{
System.out.println("congig");
Configuration cfg = new Configuration().configure();
SessionFactory factory = cfg.buildSessionFactory();
System.out.println("session");
session = factory.openSession();
tx = session.beginTransaction();
System.out.println("transaction");
Query query = session.createQuery("from Student where email = :s_email " +
"and password = :s_password")
.setString("s_email", email)
.setString("s_password", password);
Student student=(Student)query.uniqueResult();
if(student!=null)
{
s=1;
HttpSession hs= request.getSession();
hs.setAttribute("id",student.getId());
System.out.println((String)hs.getAttribute("id"));
}
else s=2; tx.commit();
}catch(Exception e){
e.printStackTrace();
tx.rollback();
}finally{
HibernateUtils.closeSession(session);
}
if(s==1)
return "success";
else if(s==2)
return "input";
else return "error";
}
}
exception是java.lang.NullPointerException
at hibernate_po.LoginDao.check(LoginDao.java:40)
at hibernate_po.doManage.main(doManage.java:13)
是空的。请问我改写在哪怎么写啊?
我写在了dao层,不知道可不可以package hibernate_po;import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletRequest;
import model.Student;import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;public class LoginDao {
private int s=0;
private HttpServletRequest request;
public String check(String email,String password){
Session session=null;
Transaction tx=null;
try{
System.out.println("congig");
Configuration cfg = new Configuration().configure();
SessionFactory factory = cfg.buildSessionFactory();
System.out.println("session");
session = factory.openSession();
tx = session.beginTransaction();
System.out.println("transaction");
Query query = session.createQuery("from Student where email = :s_email " +
"and password = :s_password")
.setString("s_email", email)
.setString("s_password", password);
Student student=(Student)query.uniqueResult();
if(student!=null)
{
s=1;
HttpSession hs= request.getSession();
hs.setAttribute("id",student.getId());
System.out.println((String)hs.getAttribute("id"));
}
else s=2; tx.commit();
}catch(Exception e){
e.printStackTrace();
tx.rollback();
}finally{
HibernateUtils.closeSession(session);
}
if(s==1)
return "success";
else if(s==2)
return "input";
else return "error";
}
}
exception是java.lang.NullPointerException
at hibernate_po.LoginDao.check(LoginDao.java:40)
at hibernate_po.doManage.main(doManage.java:13)
是空的。请问我改写在哪怎么写啊?
解决方案 »
- java问题
- Spring事务问题
- struts action配置和form action问题
- Struts2表达式校验器
- dynamic-update 的问题
- 我用wsad5.1开发,我的数据库是oracle主键是自增类型,那在cmp2.0中,如何插入纪录了???
- 'D:\EJB\Java' 不是内部或外部命令,也不是可运行的程序,如何解决?
- 谁能推荐一本EJB入门的书!
- 请问AXIS的服务端的提供服务的那个类如何改变其中成员数据的值以供调用?
- 这个错误是怎么回事?请大家帮忙看看
- 登录之后怎么才能使操作的每个页面都能得到同户名
- webwork2.2在websphere5.1中遇到的一个问题!
private HttpServletRequest request;……HttpSession hs= request.getSession();呃你还是先整点基础的吧。走还不会,就想跑了。
at hibernate_po.LoginDao.check(LoginDao.java:40)
at hibernate_po.doManage.main(doManage.java:13)
已经告诉你行数了 自己好好找找错!
其实很多错误只要你花点意思去理解 去寻找 其实根本就难不倒你