登录Ajax成员时如何修复会话错误? – Spring MVC2

MemberService.java:

public HashMap login(String id,String pw) { HashMap result = memberDao.selectOne(id); if(result != null) // 존재하는 값이 있으면 { String opwd = (String) result.get("pw"); // opwd = 존재하는값의 pw값을 가져온 값 if(opwd.equals(pw)) { return result; // true면 존재하는값을 반환 } else { return null; //return null; // 아니면 값을 반환하지 않음. } } else // 존재하는 값이 없다면 { return null; } } 

MemberController.java:

 @RequestMapping("loginOK.do") @ResponseBody public String login(@RequestParam(required=false) String id, @RequestParam(required=false) String pw,HttpSession session, HttpServletRequest request, HttpServletResponse response) throws IOException { HashMap loginIdentify = mService.login(id,pw); System.out.println("loginIdentify is that : " + loginIdentify); session.setAttribute("id", loginIdentify.get("id")); if(loginIdentify == null) { return "0"; // member isn't exist } else { return "1"; // member is exist } } 

loginPage.jsp:

           Insert title here      function checkValue() { var form = document.frm; var id = form.id.value; var pw = form.pw.value; if(!form.id.value || !form.pw.value) { alert('아이디 혹은 비밀번호를 입력하세요.'); return false; } $.ajax ({ type: 'POST', url: 'loginOK.do', dataType:"text", data:{"id":id,"pw":pw}, success: function(data) { if(data == 1) { window.location.href='main.do'; } else { alert('아이디 혹은 비밀번호를 확인하세요.'); } }, error: function() { alert('error'); } }) }    

如果有成员,则没有问题,但如果没有成员,则会发生错误。

实际上,在我的代码中,if语句是作为死代码生成的。 所以我用这种方式修改了代码。

 if(loginIdentify == null) { return "0"; // member isn't exist } else { session.setAttribute("id", loginIdentify.get("id")); return "1"; // member is exist } 

因此,该项目表现良好。 但代码似乎效率低下。

修改之前的错误原因是,如果它不在HashMap中,我认为它返回一个空值。

我现在有三个问题。

  1. 我想知道我认为的问题是否正确。

  2. 如何更有效地编写代码?

  3. 你应该如何处理MemberService中的exception处理?