Spring boot
jsp에서 jstl로 sessionScope 사용하기
연어먹고싶음ㅁ
2022. 3. 21. 18:37
로그인 처리를 한 후에 jsp에 jstl로 session값을 불러오려고하는데 계속 뷰에 나타나질 않아서 확인해본 결과
//localhost:9091/admin/login/sign-in
@PostMapping("/sign-in")
public String login(@RequestParam String email, @RequestParam String password
,@RequestParam(required = false) String chkSave, HttpServletRequest request, HttpServletResponse response,
Model model) throws NoSuchAlgorithmException {
log.info("로그인 처리, email={},password={}",email, password);
//1. 로그인 성공여부 확인
int result = loginService.chklogin(email, password);
String msg = "";
String url = "/login/view";
//1-1. 로그인 성공 시
if(result== loginService.LOGIN_OK) {
//세션에 로그인 한 회원 정보 저장
MemberVo memberVo = loginService.selectMember(email);
HttpSession session = request.getSession();
session.setAttribute("name", memberVo.getName());
session.setAttribute("email", memberVo.getEmail());
session.setAttribute("group", memberVo.getGroupNo());
session.setAttribute("no", memberVo.getNo());
session.setAttribute("position", memberVo.getPosition());
session.setAttribute("regdate", memberVo.getRegdate());
msg = memberVo.getName()+"님, 환영합니다";
url = "/main/index";
//쿠키 체크 여부 확인
Cookie ck = new Cookie("ck_email", memberVo.getEmail());
ck.setPath("/");
if (chkSave != null) {
ck.setMaxAge(1000 * 24 * 60 * 60);
response.addCookie(ck);
} else {
ck.setMaxAge(0); // 쿠키 제거
response.addCookie(ck);
}
//1-2. 로그인 실패 시
}else if(result ==loginService.EMAIL_NONE) {
msg = "존재하지 않는 아이디입니다. 다시 입력해주세요";
}else if(result == loginService.PWD_DISAGREE) {
msg = "비밀번호가 일치하지 않습니다. 다시 입력해주세요";
}
model.addAttribute("msg",msg);
model.addAttribute("url",url);
return"/common/message";
}
컨트롤러의 로그인 처리 핸들러에서 exception처리를 빼먹었더니 생긴 오류였다.
꼭 잊지 말자 !!!!
<a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="mr-2 d-none d-lg-inline text-gray-600 small">
<c:if test="${not empty sessionScope.name}"> ${sessionScope.name} </c:if>
</span>
<img class="img-profile rounded-circle"
src="<c:url value='/resources/img/undraw_profile.svg'/>">
</a>
jsp에서 활용할 때에는 ${sessionScope.[저장한키값]}으로 바로 사용하면 된다.