鍍金池/ 問答/Java  Linux  HTML/ 實(shí)現(xiàn)登錄功能時(shí)servlet用hibernate沒有查到賬戶信息怎么返回登錄界面

實(shí)現(xiàn)登錄功能時(shí)servlet用hibernate沒有查到賬戶信息怎么返回登錄界面啊

   //登錄界面?zhèn)鬟^來的用戶輸入的賬號(hào)密碼 
    Integer UID = Integer.parseInt(request.getParameter("userId"));         
    String PWD = request.getParameter("Password");
            

// 連接數(shù)據(jù)庫查詢傳過來的用戶數(shù)據(jù)

    Configuration conf=new Configuration().configure();
    SessionFactory sf=conf.buildSessionFactory();
    Session session=sf.openSession();
    User user=(User)session.get(User.class,UID);
    Integer id=user.getUser_id();
    String name=user.getUser_name();
    String na=new String(name.getBytes("ISO-8859-1"),"utf-8");
    String pw=user.getUser_password();
    Integer competence=user.getUser_competence();
    
    -----------------就這個(gè)范圍的代碼有問題,因?yàn)閿?shù)據(jù)庫查出來的數(shù)據(jù)都存在user里面,如果賬號(hào)不存在那user就是空的,感覺沒毛病啊------
    
    if(user==null){
        response.sendRedirect(request.getContextPath()+"/Login.jsp?error=IdError");
        
        ---------------------------------------
    }else if (PWD.equals(pw)) {
        response.sendRedirect(request.getContextPath()+"/Main.jsp?user_id="+id+"&user_name="+na+"&user_c="+competence);
    }else{
        response.sendRedirect(request.getContextPath()+"/Login.jsp?error=IdError");
    }
    我這樣寫user==null,運(yùn)行的時(shí)候如果賬號(hào)不存在會(huì)報(bào)錯(cuò)空指針異常,如果賬號(hào)存在密碼錯(cuò)誤的話就運(yùn)行正常去登錄界面提示用戶。
回答
編輯回答
厭惡我

好幾天沒人回答,職能用最笨的辦法,既然一定要報(bào)錯(cuò),那就在catch里返回登錄界面好了
if (PWD.equals(pw)) {

        response.sendRedirect(request.getContextPath()+"/Main.jsp?user_id="+id+"&user_name="+na+"&user_c="+competence);
    }else{
        response.sendRedirect(request.getContextPath()+"/Login.jsp?error=PasswordError");
    }
    session.close();
    } catch (Exception e) {
        response.sendRedirect(request.getContextPath()+"/Login.jsp?error=IdError");            
    }
2017年1月22日 23:52