쿠키(Cookie)
쿠키(Cookie)의 정의
이름과 값의 쌍으로 구성된 정보를 의미한다.
쿠키에는 기본적으로 아스키 문자만 저장할 수 있고 한글을 저장하려면 url 인코딩을 해야한다.
쿠키 작동 과정
서버에서 생성 -> 브라우저에 저장 -> 유효기간 지나면 자동삭제
쿠키 생성
요청을 받으면 서버에서 쿠키를 생성하는 과정
//쿠키를 생성한다
Cookie cookie = new Cookie("id", "member");
//쿠키의 유효기간을 설정해준다(초단위)
cookie.setMaxAage(60*60*24);
//응답으로 쿠키를 전달한다
response.addCookie(cookie);
쿠키 삭제
//삭제할 쿠키와 같은 이름으로 쿠키를 생성한다
Cookie cookie = new Cookie("id", "");
//쿠키의 유효기간을 0으로 설정한다(삭제)
cookie.setMaxAage(0);
//응답으로 쿠키를 전달한다
response.addCookie(cookie);
쿠키로 로그인 상태 표시하기
쿠키에 아이디 비밀번호 정보가 있으면 로그인 페이지에 표시한다
<input type="text" name="id" placeholder="이메일 입력" autofocus>
<input type="password" name="pwd" placeholder="비밀번호">
<button>로그인</button>
<div>
<label><input type="checkbox" name="rememberId" > 아이디 기억</label> |
<a href="">비밀번호 찾기</a> |
<a href="">회원가입</a>
</div>
쿠키를 사용해 아이디와 아이디기억하기
<input type="text" name="id" placeholder="이메일 입력" autofocus value="${cookie.id.value}">
<input type="password" name="pwd" placeholder="비밀번호">
<button>로그인</button>
<div>
<label><input type="checkbox" name="rememberId" ${empty cookie.id.value ? "":"checked"} > 아이디 기억</label> |
<a href="">비밀번호 찾기</a> |
<a href="">회원가입</a>
</div>
브라우저에서 쿠키 생성
id의 값을 member로 설정했다
쿠키에 설정한 id값과 아이디 기억란에 체크가 표시된다
컨트롤러에서 쿠키 생성
import javax.servlet.http.Cookie;
@Controller
@RequestMapping("/login")
public class LoginController {
@PostMapping("/login")
public String login(String id, String pwd, boolean rememberId) throws UnsupportedEncodingException {
System.out.println("id:" + id);
System.out.println("password:" + pwd);
System.out.println("rememberId:" + rememberId);
if(rememberId) {
//rememberId가 true면 쿠키 생성
//쿠키 생성하기
Cookie cookie = new Cookie("id", id);
//응답으로 저장
response.addCookie(cookie);
} else {
//rememberId가 false면 쿠키 삭제
Cookie cookie = new Cookie("id", id);
cookie.setMaxAge(0); //삭제
//응답으로 저장
response.addCookie(cookie);
}
return "redirect:/";
}
Author And Source
이 문제에 관하여(쿠키(Cookie)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jooog/쿠키Cookie저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)