登录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中,我认为它返回一个空值。
我现在有三个问题。
-
我想知道我认为的问题是否正确。
-
如何更有效地编写代码?
-
你应该如何处理MemberService中的exception处理?