인생 디벨로퍼

Cookie 아이디 저장하기 본문

JAVA Spring

Cookie 아이디 저장하기

뫄뫙뫄 2023. 6. 18. 21:32
728x90

checkbox 뷰 만들기

<div class="form-group mb-2">
                    <input type="text" name="username" class="form-control" value="${remember}" placeholder="Enter username" id="username">
                    유저네임을 기억할까요? <input type="checkbox" name="remember"><br />
                </div>


Controller

"/loginForm"

 @GetMapping("loginForm")
    public String loginForm(HttpServletRequest request) {

        String username = "";

        Cookie[] cookies = request.getCookies();
        for (Cookie cookie : cookies) {
            if (cookie.getName().equals("remember")) {
                username = cookie.getValue();
            }
        }
        request.setAttribute("remember", username);
        return "user/loginForm";
    }
  • HttpServletRequest : Java Servlet API 에서 제공하는 인터페이스. HTTP 요청에 대한 정보를 담고 있다 (요청 URL, 메소드, 헤더, 파라미터, 쿠키, 세션 등)
  • Cookie :  웹 서버가 클라이언트에게 저장하는 작은 데이터 조각. (이름 = 값) 이 쌍으로 구성됨. 속성으로 (이름, 값, 만료일, 도메인, 경로, 보안, HTTP전용) 등을 가짐

 

"/login"

@PostMapping("/login")
    public String login(LoginReqDto loginReqDto, String remember, HttpServletResponse response) {
        if (loginReqDto.getUsername() == null || loginReqDto.getUsername().isEmpty()) {
            throw new CustomException("username을 작성해주세요");
        }

        if (loginReqDto.getPassword() == null || loginReqDto.getPassword().isEmpty()) {
            throw new CustomException("password을 작성해주세요");
        }
        User principal = userService.로그인(loginReqDto);

        if (remember == null) {
            remember = "";
        }
        System.out.println("확인 : " + remember);

        if (remember.equals("on")) {
            Cookie cookie = new Cookie("remember", loginReqDto.getUsername());
            response.addCookie(cookie);
        } else {
            Cookie cookie = new Cookie("remember", "");
            response.addCookie(cookie);
        }
        session.setAttribute("principal", principal);
        return "redirect:/";
    }

체크박스 선택후 로그인 -> Set-Cookie 에 remember=ssar 확인 가능


jsp 수정

div class="form-group mb-1">
    <input type="text" name="username" class="form-control" value="${remember}" placeholder="Enter username" id="username">
    유저네임을 기억할까요? <input type="checkbox" name="remember" ${remember != "" ? 'checked' : ''}><br />
</div>

로그아웃 후, 다시 로그인 할때 ckeck on 상태를 유지하기 위해 코드 추가

728x90

'JAVA Spring' 카테고리의 다른 글

myBatis 검색 연습, 검색 쿼리 (.feat 페이징)  (0) 2023.06.23
myBatis 페이징 연습  (0) 2023.06.20
[Ajax] 비밀번호 확인  (0) 2023.06.18
[Ajax] 좋아요 만들기!  (0) 2023.06.18
[Ajax] 썸네일 수정 contentType 설정  (0) 2023.06.17