AppController 수정


Login을 처리해줄 LoginAct 메소드 생성

	@RequestMapping("/LoginAct")
	public String LoginAct(HttpSession session, HttpServletRequest request) {
		String id = request.getParameter("id");
		String password = request.getParameter("password");
		System.out.println("로그인 시도\nID:"+id+"\npassword:"+password);
		
		return null;
	}

위와 같이 입력하고 Login페이지에서 값을 전송해 본다.

로그인 버튼을 누르면 서버 Log에 

로그인 시도
ID:test
password:test

위와 같이 찍힌다 이제 추출한 값을 가지고 DB조회를 하여 입력된 id와 password가 일치하는지 확인한다


UDao와 UserDao 수정


UDao에 아래 코드를 추가해준다

	public UserDto Login(Map map);

UserDao에도 아래 코드를 추가한다

	@Override
	public UserDto Login(Map map) {
		return null;
	}

로그인을 위한 SQL 작성


UDao.xml에 아래 코드를 추가해준다

	<select parameterType="Map" id="Login" resultType="com.app.app.Dto.UserDto">
	SELECT user_id FROM user WHERE user_id = #{id} AND password = #{password}
	</select> 

위 SQL문은 id와 password 를 이용하여 두 값이 모두 일치하는 user_id를 뽑아낸다.

만약 id나 password 둘중 하나라도 틀리면 결과 값이 반환되지 않는다.


AppController - LoginAct 수정


	@ResponseBody
	@RequestMapping("/LoginAct")
	public String LoginAct(HttpSession session, HttpServletRequest request, HttpServletResponse response) throws IOException {
		//PrintWriter out = response.getWriter();
		String id = request.getParameter("id");
		String password = request.getParameter("password");
		System.out.println("로그인 시도\nID:"+id+"\npassword:"+password);
		Map map = new HashMap();
		map.put("id", id);
		map.put("password", password);
		UDao dao = sqlSession.getMapper(UDao.class);
		UserDto dto = dao.Login(map);
		if(dto != null) {
			session.setAttribute("user_id", id);
			String str = "<script>";
			str+="alert('Login success');";
			str+="window.location.href = '/app';";
			str+="</script>";
			return str;
		}
		else {
			session.setAttribute("user_id", id);
			String str = "<script>";
			str+="alert('Login fail');";
			str+="history.back();";
			str+="</script>";
			return str;
		}	
	}

로그인을 시도해보자

성공한 경우

실패한 경우

+ Recent posts