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.[저장한키값]}으로 바로 사용하면 된다.