스프링 (Spring/Spring boot) 세션 값 저장하기(이전 페이지 값 세션으로 보내기) - 비밀번호 찾기
Session 이란?
사용자와 서버의 연결 상태를 유지해주는 방법
서버에서 연결 정보를 관리해준다. (쿠키는 클라이언트 쪽에서 연결정보를 관리한다)
예제를 통해 알아보자 (비밀번호 변경)
<form action="/guest/find_pswd" method="post">
<input type="text" name="userId" placeholder="사용자 아이디"
class="form-control w300" required />
<input type="text" name="phone" placeholder="전화번호 (-)포함"
class="form-control w300" required />
<button type="submit" class="btn btn-primary">비밀번호 찾기</button>
</form>
이런식으로 비밀번호 찾기 form이 있다.
Controller로 가보자
public String find_pswd(HttpServletRequest request, Model model) throws Exception {
String uid = request.getParameter("userId");
String phone = request.getParameter("phone");
if (userService.user_exist(userid, phone)) { // 정보가 일치한다면
HttpSession session = request.getSession(); // 세션을 생성해서
session.setAttribute("userid", uid); // userid로 uid값을 넘기자
return "redirect:/guest/change_pswd";
}
return "redirect:/guest/pswd?error";
}
uid값과 phone의 정보가 유저의 정보와 일치한다면 세션을 생성해서
setAttribute
메서드를 이용하여 세션의 속성값을 설정한다.
이제 비밀번호 찾기버튼을 누르고 난 후 페이지를 보자
<form action="/guest/change_pswd_correct">
<div class="a">
<input type="hidden" name="userid" value="${userid}" /> <!-- 이 부분의 userid가 세션으로 받아온 uid다 -->
<input type="password" name="newpswd" placeholder="새로운 비밀번호를 입력해주세요"
class="form-control w300" required />
<button type="submit" class="btn btn-primary">비밀번호 변경</button>
</div>
</form>
설정후 사용자의 세션을 끊고 싶으면 아래와 같은 방법으로 세션삭제하면 된다.
@RequestMapping("guest/change_pswd_correct")
public String change_pswd_correct(HttpServletRequest request) throws Exception {
String userid = request.getParameter("userid");
String pswd = request.getParameter("newpswd");
userService.pswd_update(pswd, userid); // 비밀번호 변경
///////// 세션삭제 /////////
HttpSession session = request.getSession();
session.invalidate(); // 비활성화 시킴으로 세션 끊김
return "redirect:/guest/login";
}
비밀번호 변경 완료 and 세션삭제도 완료!
Comments