티스토리 뷰

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초로 하여 바로 쿠키를 삭제 가능하다

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함