JSP
JSP_Cookie_로그인 아이디 저장
김판다
2021. 4. 21. 19:14
쿠키:웹 브라우저가 보관하고 있는 데이터
예시- 장바구니, 팝업창, 아이디기억하기....
◇주로 웹서버에서 쿠키를 생성해서 웹 브라우저에게 전달하고, 웹브라우저는 서버에게 쿠키를 전달할수 있음
(웹 서버와 웹 브라우저에서 모두 쿠키를 생성할 수 있다.)
◇다음에 다시 페이지에 접속하게 되면 클라이언트가 해당 쿠키를 저장하고 있다가 서버가 요청할때 쿠키를 다시 전달한다.
[쿠키의 구동 순서]
1.클라이언트(웹브라우저)에서 서버로 페이지를 요청
2.서버에서 쿠키를 생성한 후 클라이언트의 요청에 대한 응답으로 쿠키를 함께 담아서 전달한다.
3.클라이언트는 서버가 준 쿠키를 저장한다.
4.클라이언트는 서버에 요청을 보낼 때마다 쿠키를 함께 전송한다.
5.서버는 클라이언트가 보내준 쿠키를 확인하여 페이지 관리를 할 수 있다.
쿠키와 비슷한 개념에는 session이 있는데 둘의 차이점은 쿠키는 데이터를 저장한다는 점이다.
※로그인 화면에서 아이디 저장을 해보기※
exam3_login.jsp
<%-- exam3_login.jsp --%>
<%
Cookie[] cookies = request.getCookies();//cookies안에 remember-printId,test가 들어감
String id = "";
for(Cookie c : cookies){
if(c.getName().equals("printId")){
id=c.getValue();
}
}
%>
<fieldset>
<form action="exam3_loginChk.jsp">
<%if(id==""){ %>
<input type="text" name="id" placeholder="아이디"><br>
<input type="password" name="pw" placeholder="비밀번호"><br>
<input type="checkbox" name="check" value="remember">아이디저장<br>
<%}else{ %>
<input type="text" name="id" value=<%=id %>><br>
<input type="password" name="pw" placeholder="비밀번호"><br>
<input type="checkbox" name="check" value="remember">아이디저장<br>
<%} %>
<br><input type="submit" value="로그인">
</form>
</fieldset>
exam3_loginChk.jsp
<%-- exam3_loginChk.jsp --%>
<%
String check = request.getParameter("check");
String id = request.getParameter("id");
String pw = request.getParameter("pw");
if(id.equals("test")&&pw.equals("1234")){
if(check !=null && check.equals("remember")){
Cookie remember = new Cookie("printId","test");
response.addCookie(remember);
}
}
response.sendRedirect("exam3_login.jsp");
%>
id가 test pw가 1234가 맞다면 로그인 창에 test가 그대로 남는 것을 쿠키를 이용하여 만들어보기.
exam3_loginChk.jsp
아이디 저장을 해제하고 test가 띄워지는 것도 지우고 싶다면
<%
String check = request.getParameter("check");
String id = request.getParameter("id");
String pw = request.getParameter("pw");
if(id.equals("test")&&pw.equals("1234")){
if(check !=null && check.equals("remember")){
Cookie remember = new Cookie("printId","test");
response.addCookie(remember);
}else{
Cookie remember = new Cookie("printId","test");
remember.setMaxAge(0);
response.addCookie(remember);
}
}
response.sendRedirect("exam3_login.jsp");
%>
exam3_loginChk.jsp페이지에 else구문을 입력해주면 된다.
쿠키의 수명이 0초로 하여 바로 쿠키를 삭제 가능하다