개발자입니다
IT BANK) JSP 10일차 - JSP(쿠키) 본문
220920
■ 쿠키
: 웹 브라우저가 보관하고 있는 데이터
웹 서버와 웹 브라우저에서 모두 쿠키를 생성할 수 있다.
웹 서버가 쿠키를 생성해서 웹 브라우저에게 전달하고, 웹 브라우저는 서버에게 쿠키를 전달할 수 있다.
1. 클라이언트에서 서버로 페이지를 요청
2. 서버에서 쿠키를 생성한 후 클라이언트의 요청에 대한 응답으로 쿠키를 함께 담아서 전달한다.
3. 클라이언트는 서버가 준 쿠키를 저장한다. vs 세션은 저장하지 않는다. 세션의 정보는 서버에만 저장한다.
4. 클라이언트는 서버에 요청을 보낼 때 마다 쿠키를 함께 전송한다.
5. 서버는 클라이언트가 보내준 쿠키를 확인하여 페이지 관리를 할 수 있다.
-쿠키 생성
Cookie cookie = new Cookie("CookieName", "CookieValue");
<title>ex2_make</title>
</head>
<body>
<%
Cookie cookie = new Cookie("CookieName", "CookieValue");
cookie.setMaxAge(60*60*24); // 쿠키의 유지 기간은 하루
cookie.setMaxAge(60); // 60초, 60초 동안 유지한다. 60초가 지나면 삭제됨.
response.addCookie(cookie);
%>
<a href="ex2_index.jsp">쿠키 확인하러 가기</a>
</body>
<title>ex2_index</title>
</head>
<body>
<%
// 클라이언트의 요청에 쿠키가 있다면 쿠키 추출하기.
Cookie[] cookies = request.getCookies();
for(Cookie c : cookies){
out.print("쿠키 이름 : " + c.getName() + "<br>");
out.print("쿠키 값 : " + c.getValue() + "<br><br>");
}
%>
<a href="ex2_make.jsp">쿠키 생성하기</a>
</body>
현재 쿠키 상태 확인은 우측 새로고침 눌러야 한다. 좌측 새로고침 누르면 쿠키 다시 가져온다.
개발자 도구 → Application → Cookies → 해당 페이지
60초 후 내가 만든 쿠키는 사라짐
-팝업 페이지
<title>ex3_index</title>
</head>
<body>
<h2>인덱스 페이지</h2>
<%
boolean check = true;
Cookie[] cookies = request.getCookies();
for(Cookie c : cookies){
if(c.getName().equals("cookieName"));
check = false;
}
if(check){
out.print("<script>window.open('ex3_popup.jsp')</script>");
}
%>
</body>
<title>ex3_popup</title>
</head>
<body>
<h2>팝업 페이지</h2>
<br><br>
<input type="checkbox" onclick="location.href='ex3_make.jsp'">
</body>
<title>ex3_make</title>
</head>
<body>
<h2>팝업 페이지</h2>
<%
Cookie cookie = new Cookie("cookieName", "cookieValue");
cookie.setMaxAge(30);
response.addCookie(cookie);
%>
<script>window.close()</script>
</body>
-아이디 기억하기 만들기
/*
0. ex4_login -> ex4_loginChk
1. 체크박스를 클릭하고 로그인 시 ID/PW가 일치하면 ex4_login.jsp 에서 아이디의 값을 출력해주세요.
2. 체크박스를 클릭하고 로그인 시 ID/PW가 틀리면 ex4_login.jsp 에서 아이디의 값을 출력하지 않아요.
3. 체크박스를 클릭하지 않고 로그인 성공/실패 두 경우 모두 ex4_login.jsp 에서 아이디의 값을 출력하지 않아요.
*/
<title>ex4_login</title>
</head>
<body>
<%
Cookie[] cookies = request.getCookies();
String id = "";
for(Cookie c : cookies){
if(c.getName().equals("rememberId"))
id = c.getValue();
}
%>
<form action="ex4_loginChk.jsp" method="post">
<input type="text" placeholder="아이디" name="id" value="<%=id %>"> <br>
<input type="password" placeholder="비밀번호" name="pw"> <br>
<input type="checkbox" value="true" name="remember"> 아이디 기억하기 <br>
<input type="submit" value="로그인">
<input type="reset" value="취소">
</form>
</body>
// ex4_loginChk.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String id = request.getParameter("id");
String pw = request.getParameter("pw");
String remember = request.getParameter("remember");
if("admin".equals(id) && "1234".equals(pw)){
if(remember != null && remember.equals("true")){
Cookie cookie = new Cookie("rememberId", "admin");
cookie.setMaxAge(30);
response.addCookie(cookie);
}
}
response.sendRedirect("ex4_login.jsp");
%>
아이디와 비밀번호 일치후 체크박스 체크시에만 아이디 기억한다.
'JSP > IT BANK - JSP' 카테고리의 다른 글
IT BANK) JSP 12일차 - JSP(회원관리 페이지) (0) | 2022.09.22 |
---|---|
IT BANK) JSP 11일차 - JSP(세션) (0) | 2022.09.21 |
IT BANK) JSP 9일차 - JSP(form, result, 응답) (0) | 2022.09.20 |
IT BANK) JSP 8일차 - JSP(내장 객체) (0) | 2022.09.16 |
IT BANK) JSP 7일차 - JSP(태그 종류, 기초) (0) | 2022.09.15 |