[간단한 게시판 만들기] - 2. 로그인 기능( 세션, 쿠키 설정)
웹/백엔드, Spring

[간단한 게시판 만들기] - 2. 로그인 기능( 세션, 쿠키 설정)

1. 로그인 화면 만들기

2. mvc 패턴 만들기

3. 세션, 쿠키 설정

4. 잘 전달 됐는지 확인

 

 

1. 간단한 로그인 화면

부트스트랩 찾아보면서 복붙하면 된다.

	<div class="container">
		<form action="${root }main" method="get">
		  <input type="hidden" name="act" value="login">
		  <div class="form-group">
		    <label for="exampleInputEmail1">user id</label>
		    <input type="text" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" name="userid">
		  </div>
		  <div class="form-group">
		    <label for="exampleInputPassword1">Password</label>
		    <input type="password" class="form-control" id="exampleInputPassword1" name="userpwd">
		  </div>
		  <div class="form-group form-check">
		    <input type="checkbox" class="form-check-input" id="exampleCheck1" name="idsave" value="checked">
		    <label class="form-check-label" for="exampleCheck1">Check me out</label>
		  </div>
		  <button type="submit" class="btn btn-primary">Submit</button>
		</form>
	</div>

 

2. mvc패턴 만들기

 

3. 세션 쿠키 설정

	private void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String userid = request.getParameter("userid");
		String userpwd = request.getParameter("userpwd");
		System.out.println(userid +" "+ userpwd);
		Member member=UserServiceImp.getUserServiceImp().login(userid, userpwd);
		if(member!=null) {
			//세션저장
			HttpSession session = request.getSession();
			session.setAttribute("userinfo", member);
			//아이디저장 확인
			String idsave = request.getParameter("idsave");
			System.out.println("idsave"+idsave);
			if("saveok".equals(idsave)) {
				Cookie cookie = new Cookie("saveid", member.getUserid());
				cookie.setPath("/");
				cookie.setMaxAge(60*60);
				response.addCookie(cookie);
			}else {
				Cookie[] cookies = request.getCookies();
				for (int i = 0; i < cookies.length; i++) {
					if(cookies[i].getName().equals("saveid")) {
						cookies[i].setMaxAge(0);
						response.addCookie(cookies[i]);
						break;
					}
				}
			}
			request.getRequestDispatcher("/board/list.jsp").forward(request, response);
			return;
			//화면이동
		}else {
			//에러메시지출력
		}
	}

DB에서 잘 받아오면 먼저 세션을 만든다

//세션저장
HttpSession session = request.getSession();
session.setAttribute("userinfo", member);

쿠키 저장을 클릭 시, 저장해준다. 쿠키 설정 후, 꼭 response객체에 넣어서 전달해야한다.

		String idsave = request.getParameter("idsave");
			System.out.println("idsave"+idsave);
			if("saveok".equals(idsave)) {
				Cookie cookie = new Cookie("saveid", member.getUserid());
				cookie.setPath("/");
				cookie.setMaxAge(60*60);
				response.addCookie(cookie);
			}else {
				Cookie[] cookies = request.getCookies();
				for (int i = 0; i < cookies.length; i++) {
					if(cookies[i].getName().equals("saveid")) {
						cookies[i].setMaxAge(0);
						response.addCookie(cookies[i]);
						break;
					}
				}
			}

 

4. 마지막으로 세션과 쿠키에 잘 저장 됐는지 확인

쿠키 확인

 

세션확인

세션에 저장 시, 객체의 필드값을 jsp에서 바로 사용가능하다

${userinfo.username } 님 안녕하세요.