@ControllerpublicclassLoginController{@Autowiredprivate LoginService loginService;//登录@RequestMapping("/login")public String login(User user,HttpServletRequest request,Model model){int flag = loginService.login(user,request);
model.addAttribute("flag",flag);if(flag==1){return"index";}else{return"redirect:queryUser.do";}}//注册@RequestMapping("/regUser")public String regUser(User user,Model model){int flag = loginService.regUser(user);
model.addAttribute("flag",flag);if(flag==3){return"index";}else{return"regUser";}}//注销@RequestMapping("/exitUser")public String exitUser(HttpServletRequest request){//从session工厂中取到登录的对象(用户)
User user =(User) request.getSession().getAttribute("user");//如果有用户 则从session工厂中移除该数据 使用removeAttribute方法if(user!=null){
request.getSession().removeAttribute("reuser");}//返回登录页面return"index";}}
Service层 LoginServiceImpl
@ServicepublicclassLoginServiceImplimplementsLoginService{@Autowiredprivate LoginDao loginDao;//登录@Overridepublicintlogin(User user,HttpServletRequest request){//首先将登录信息作为条件进行查询
String hql =" from User where userName='"+user.getUserName()+"' and userPwd='"+user.getUserPwd()+"'";// 空指针异常: null.method()
User reUser = loginDao.queryUserByHql(hql);//通过判断查询返回的对象是否为空,则得出账号密码是否正确if(reUser==null){//此时证明账号或者密码有误return1;}else{//如果登录成功,则将登录用户信息存入session
request.getSession().setAttribute("reuser", reUser);return2;//此时证明登录信息正确,登录成功}}//注册@OverridepublicintregUser(User user){//验重:验证有没有重复的用户账号
String hql =" from User where userName='"+user.getUserName()+"'";
User reUser = loginDao.queryUserByHql(hql);//判断reUser是否为空if(reUser==null){//此时证明账号可用,执行新增用户
loginDao.addUser(user);return3;}else{return4;}}}
Dao层
@RepositorypublicclassLoginDaoImplimplementsLoginDao{@Autowiredprivate SessionFactory sessionFactory;//登录@Overridepublic User queryUserByHql(String hql){return(User) sessionFactory.getCurrentSession().createQuery(hql).uniqueResult();}//注册@OverridepublicvoidaddUser(User user){
sessionFactory.getCurrentSession().save(user);}}