Presentation is loading. Please wait.

Presentation is loading. Please wait.

11장. 세션과 쿠키 제11장.

Similar presentations


Presentation on theme: "11장. 세션과 쿠키 제11장."— Presentation transcript:

1 11장. 세션과 쿠키 제11장

2 1. 세션의 활용 세션의 원리 세션(session)의 기본 개념
Tomcat 내부에서 사용자의 request 정보를 보관할 때 사용되는 기본 객체 같은 웹 사이트에 접속 중인 웹 브라우저(사용자) 마다 각각에 대응하여 하나씩의 세션 객체가 생성되고 활용 (8.5절 참조) 제11장

3 임의의 웹 브라우저부터의 첫 번째 요청을 처리할 때 session이 생성되고 관련 타이머가 동작한다.
1. 세션의 활용 세션의 원리 세션 객체의 생성 시점과 종료 시점 한 명의 브라우저 사용자에 대해 다른 웹 페이지로 넘어가도 지속적으로 공유해야 하는 데이터 저장 장소로서 세션을 활용 e.g., 로그인한 회원정보, 쇼핑카트 정보 사용자 데이터 보관 장소 Session: 사용자의 request 정보를 서버측의 session 객체에 보관 Cookie: response하여 사용자의 file에 보관 session 생성시기 session 소멸시기 임의의 웹 브라우저부터의 첫 번째 요청을 처리할 때 session이 생성되고 관련 타이머가 동작한다. 1) 세션 타이머가 만료 2) 코드상에서 명시적으로 세션 소멸 (invalidate() 메소드) 제11장

4 1. 세션의 활용 세션 객체의 속성 사용 [예제 11.1-1] jspbook\ch11\sessionAttr.jsp 제11장
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 page contentType="text/html;charset=utf-8" %> <html> <head><title>세션 속성 사용하기</title></head> <% session.setAttribute("BookName", "jspbook"); session.setAttribute("Chapter", "11장"); %> <body> 세션에 저장된 속성 정보 <hr/> <table border="1"> <tr> <th>BookName</th><td><%= session.getAttribute("BookName") %></td>// BookName 속성 가져오기 </tr> <th>Chapter</th><td><%= session.getAttribute("Chapter") %></td> // Chapter 속성 가져오기 </table> </body> </html> // 세션에 두개의 속성 설정 및 값 저장 제11장

5 1. 세션의 활용 세션의 타임아웃 ‘가장 최근에 session 객체에 접근한 시각’ 및 session이 생성된 시간을 돌려주는 메소드: 브라우저가 JSP/Servlet을 실행할 때마다 갱신됨 세션 만료와 재생성: 처음 생성 시간 이후 30분 동안 재실행 없는 경우 session.getLastAccessedTime() session.getCreationTime() 제11장

6 1. 세션의 활용 세션의 타임아웃 세션의 유효시간 설정 방법 1 – jspbook\WEB-INF\web.xml 활용
세션의 유효시간 설정 방법 2 – session 객체의 메소드 활용 <?xml version="1.0" encoding="utf-8"?> <web-app xmlns=" ... version="2.5"> ... <session-config> <session-timeout>100</session-timeout> <!– 분 단위 --> </session-config></web-app> <% session.setMaxInactiveInterval(100 * 60); // 초 단위 %> 제11장

7 1. 세션의 활용 Session의 유효 시간이 왜 필요한가?
A 사용자가 은행 사이트에 로그인을 한다음 웹 브라우저를 종료하지 않은 채로 자리를 비웠다. 10분쯤 후에 사용자 B가 그 PC에 앉게 되면 로그인한 상태그대로 은행 계좌에 접근할 수 있다. 로그인 유지 기능이 필요하여 session 객체가 필요하지만 유효시간을 설정함으로써 이러한 문제를 방지할 수 있다. 요즈음의 은행 사이트들은 30초 – 1분 동안 웹 접근이 없다면 세션을 종료(logout) 하려고 시도한다. 제1장

8 2. 세션을 활용한 로그인 처리 구현 구글의 로그인 정보 입력 화면
사용자가 명시적으로 로그아웃을 하기 전까지 웹 사용자 정보를 계속적으로 유지하면서 그 사용자와 연관된 정보를 계속적으로 관리한다. 제11장

9 2. 세션을 활용한 로그인 처리 구현 session을 사용한 일반적인 로그인 기법 처리과정
➀ HTML 폼으로부터 로그인 정보를 입력받는다. ➁ 로그인에 성공하면 (즉, 데이터베이스에 이미 저장되어 있는 로그인 정보와 HTML 폼으로부터 입력받은 정보가 일치하면) session 기본 객체의 특정 속성에 데이터를 기록한다. ➂ 이후 각 JSP 및 Servlet에서는 선행 작업으로서 session 기본 객체에 접근하여 지정한 특정 속성이 존재하는지 검사한다. 그 속성이 존재한다면 로그인이 되어 있는 것으로 간주한다. ④ 사용자가 로그아웃을 할 경우 세션에 저장된 특정 속성을 지우거나 session.invalidate() 메소드를 호출하여 세션을 종료한다. 세션이 종료되면 자연스럽게 저장된 속성도 모두 지워진다. 제11장

10 2. 세션을 활용한 로그인 처리 구현 웹 어플리케이션의 관리자 정보 저장하기 (DB를 대신하여 저장)
[예제 11.2] jspbook\WEB-INF\web.xml <?xml version="1.0" encoding="utf-8"?> <web-app xmlns=" xmlns:xsi=" xsi:schemaLocation=" version="2.5"> <context-param> <param-name>MasterID</param-name> <param-value>jspbook</param-value> </context-param> <param-name>MasterPassword</param-name> <param-value>112233</param-value> </web-app> 제11장

11 2. 세션을 활용한 로그인 처리 구현 로그인 처리 예제 [예제 11.3-1] jspbook\ch11\login.html 01
02 03 04 05 06 07 08 09 10 11 12 13 <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <title>로그인</title></head> </head> <body> 관리자 (Master)로 로그인하세요.<br/> <form action="loginProcess.jsp" method="post"> ID : <input type="text" name="id"><br/> Password : <input type="password" name="pw"><br/> <input type="submit" value="전송"> </body> </html> 제11장

12 2. 세션을 활용한 로그인 처리 구현 로그인 처리 예제
[예제 ] jspbook\ch11\loginProcess.jsp 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 page contentType="text/html;charset=utf-8" %> <% String storedID = application.getInitParameter("MasterID"); String storedPW = application.getInitParameter("MasterPassword"); String id = request.getParameter("id"); String pw = request.getParameter("pw"); // web.xml의 ID/Password와 form으로 입력받은 값을 각각 비교 if (id.equals(storedID) && pw.equals(storedPW)) { // 아이디와 패스워드 모두 일치 session.setAttribute("MasterLoginID", id); // 로그인 성공을 나타내는 특정속성 설정 %> <html> <head><title>로그인 처리</title></head> <body> 로그인에 성공했습니다. <br/><br/> <a href="loginCheck.jsp">로그인 체크</a> </body> </html> 제11장

13 2. 세션을 활용한 로그인 처리 구현 로그인 처리 예제
[예제 ] jspbook\ch11\loginProcess.jsp 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 <% } else if (id.equals(storedID)) { // 아이디 일치 & 패스워드 불일치 %> <script> alert("패스워드가 다릅니다."); history.go(-1); // 바로 직전 page인 login.html을 수행 </script> } else { // 아이디 불일치 alert("로그인 ID가 다릅니다."); history.go(-1); } 제11장

14 2. 세션을 활용한 로그인 처리 구현 로그인 지속 여부 판단
[예제 ] jspbook\ch11\loginCheck.jsp 01 02 03 04 05 06 07 08 09 10 page contentType="text/html;charset=utf-8" %> <% // 세션의 MasterLoginID 속성 읽어옴 boolean isLogin = false; String masterID = (String)session.getAttribute("MasterLoginID"); if (masterID != null) { isLogin = true; } %> <html> <head><title>로그인여부 검사</title></head> // MasterLoginID에 값이 저장되어 있으면 로그인되어진 상태 제11장

15 2. 세션을 활용한 로그인 처리 구현 로그인 지속 여부 판단
[예제 ] jspbook\ch11\loginCheck.jsp 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <body> <% if (isLogin) { %> 아이디 "<%= masterID %>"로 로그인 한 상태 <br/><br/> <a href="logout.jsp">로그아웃</a> } else { 로그인하지 않은 상태 } </body> </html> 제11장

16 2. 세션을 활용한 로그인 처리 구현 로그아웃 처리 세션 객체를 무효화하지 않고 다음과 같이 속성만 제거해도 된다.
가급적이면 invalidate()를 사용하는 것이 좋다. [예제 ] jspbook\ch11\logout.jsp 01 02 03 04 05 06 07 08 09 10 11 page contentType="text/html;charset=utf-8" %> <% session.invalidate(); // 세션의 무효화 %> <html> <head><title>로그아웃</title></head> <body> 로그아웃하였습니다. <br/><br/> <a href="login.html">처음부터</a> </body> </html> session.removeAttribute("MasterLoginID"); 제11장

17 2. 세션을 활용한 로그인 처리 구현 Servlet에서 세션의 활용
Servlet에서는 다음과 같이 명시적으로 개발자가 session 객체를 얻어 와서 활용 import javax.servlet.*; import javax.servlet.http.*; public class MyServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { ... HttpSession session = request.getSession(); } 제11장

18 2. 세션을 활용한 로그인 처리 구현 Servlet에서 세션의 활용 session 기본 객체를 얻어오는 3가지 메소드
메소드 호출 방법 설명 request.getSession(true) 현재 session 객체가 존재한다면 삭제하고 항상 session 객체를 새롭게 생성하여 리턴한다. request.getSession(false) 현재 session 객체가 존재한다면 그 session 객체를 그대로 리턴해준다. 만약 session 객체가 존재하지 않는다면 생성하지 않고 null을 리턴 한다. request.getSession() 우선 session 객체의 존재여부를 확인하여 기존에 session이 없다면 새롭게 session 객체를 생성하여 리턴해주고, 기존에 존재하는 session객체가 있다면 그대로 그것을 리턴해준다. 제11장

19 2. 세션을 활용한 로그인 처리 구현 로그인 처리를 위하여 쿠키 대신 세션을 사용하는 이유는?
서버로부터 클라이언트의 쿠키에 저장된 데이터는 정보의 유출 가능성이 크다 세션 데이터는 서버에 저장되기 때문에 보안측면에서 더 유리하다. 쿠키에 저장된 정보들은 사용자가 같은 웹 사이트를 방문할 때마다 읽혀서 서버로 전송된다. 사용자가 웹 브라우저에서 쿠키를 지원하지 않도록 설정할 경우 쿠키 자체를 사용할 수 없게 된다. 세션은 사용자가 설정할 권한이 없으며 Tomcat이 항상 지원하는 기능이다. 즉, 로그인 기능을 쿠키로 작성한 상태에서 브라우저에서 쿠키 지원을 하지 않으면 해당 웹 사이트는 로그인 기능 자체를 수행할 수 없다. 제1장

20 3. 쿠키의 활용 쿠키의 원리 쿠키 (Cookie) 쿠키의 활용 방식 응답전송 (response) 요청전송 (request)
어떤 웹 서버에서 인터넷 사용자의 컴퓨터에 설치하는 작은 기록 정보 파일 쿠키의 활용 방식 쿠키가 웹 브라우저 측에 저장이 되면 웹 브라우저는 해당 서버로 웹 페이지를 요청할 때 이 쿠키를 함께 전송한다. 서버는 전송받은 쿠키를 사용하여 필요한 데이터를 읽어 올 수 있다. 응답전송 (response) 서버에서 브라우저로 쿠키 전송 한번만 일어난다. 요청전송 (request) 일단 웹 브라우저에 쿠키가 저장되면 쿠키가 삭제되기 전까지 매번 웹 서버에 전송된다. 제11장 쿠키의 3단계 동작 방식

21 3. 쿠키의 활용 쿠키의 생성 및 활용 제한요소 쿠키의 구성 요소
이름 - 각각의 쿠키를 구별하기 위하여 사용되는 식별자 (하나의 웹 사이트가 여러 개의 쿠키를 저장할 수 있기 때문에 쿠키를 구별함) 값 – 쿠키와 연관된 내용(값) 유효시간 - 쿠키의 유지 시간 도메인 – 클라이언트가 쿠키를 전송할 서버의 도메인 경로 – 클라이언트가 쿠키를 전송할 경로 제한요소 쿠키는 하나의 웹 사이트당 20개의 쿠키가 저장될 수 있다. 한 쿠키당 데이터 값으로 4096 바이트를 넘을 수 없다. 디스크에 저장된 쿠키는 영원히 저장되지 않으며 지속 시간을 설정 e.g., 1시간 지속, 혹은 웹 브라우저를 닫으면 삭제 또한 지정한 도메인이나 경로로만 쿠키를 전송하도록 설정할 수 있다. <% Cookie cookie = new Cookie("cookieName", "cookieValue"); response.addCookie(cookie); // 클라이언트에 저장 %> 제11장

22 3. 쿠키의 활용 쿠키의 생성 및 활용 쿠키 객체에 호출할 수 있는 메소드 메소드 리턴 타입 설 명 getName()
String 쿠키의 이름을 돌려준다. getValue() 쿠키의 값을 돌려준다. setValue(String value) void 쿠키의 값을 지정한다. setDomain(String domain) 쿠키가 전송될 서버의 도메인을 지정한다. 브라우저에서 서버쪽으로 쿠키에 대한 요청전송을 할 때에는 그 쿠키를 응답전송한 서버에게만 보낸다. 하지만 setDomain() 메소드를 사용해서 도메인 정보를 적절하게 설정하면 그 도메인에 속해있는 다른 서버에게도 요청전송을 하게 된다. 그러므로 같은 도메인 내의 두 서버에서 쿠키를 공유할 수 있다. 주의할 점은 파라미터 값으로 특정 도메인 이름을 설정할 때에는 .google.com 과 같이 맨 앞에 점(.)을 넣어야 한다. getDomain() 쿠키가 적용되는 도메인을 돌려준다. 제11장

23 3. 쿠키의 활용 쿠키의 생성 및 활용 쿠키 객체에 호출할 수 있는 메소드 메소드 리턴 타입 설 명
setPath(String uri) void 쿠키를 전송할 경로를 지정한다. 만약 이 설정을 하지 않으면 쿠키의 응답전송시에 활용했던 경로 및 그 하위 경로에 대해서만 요청전송이 된다. 해당 웹 어플리케이션의 모든 경로에 대해 요청전송이 되게끔 하려면 setPath("/") 와 같이 설정해 주면 된다. getPath() String 쿠키가 적용되는 전송 경로를 돌려준다. setMaxAge(int time) 쿠키의 유효 시간을 초 단위로 지정한다. -1을 입력할 경우 웹 브라우저를 닫을 때 쿠키가 함께 삭제된다. 디폴트 값은 -1 이다. getMaxAge() int 쿠키의 유효 시간을 돌려준다. 쿠키가 삭제되기 전까지의 시간을 초 단위로 얻어올 수 있다. 제11장

24 3. 쿠키의 활용 쿠키의 생성 예제 [예제 11.4-1] jspbook\ch11\createCookies.jsp
01 02 03 04 05 06 07 08 09 10 11 12 page contentType="text/html;charset=utf-8" %> page import="java.net.URLEncoder" %> page import="java.util.Date" %> <% // name 및 date 쿠키 생성 // 한글을 URL 인코딩된 값으로 처리 Cookie cookie = new Cookie("name", URLEncoder.encode("jspbook 쿠키 테스트")); Cookie cookie2 = new Cookie("date", new Date().toString()); // date 쿠키 생성 response.addCookie(cookie); response.addCookie(cookie2); %> <html> <head><title>쿠키생성</title></head> <body> // reponse 객체에 두 쿠키 추가 제11장

25 3. 쿠키의 활용 쿠키의 생성 예제 [예제 11.4-1] jspbook\ch11\createCookies.jsp 13 14
15 16 17 18 19 20 21 22 23 쿠키 이름: <%= cookie.getName() %><br/> 쿠키 값: <%= cookie.getValue() %><br/> <br/> 쿠키 이름: <%= cookie2.getName() %><br/> 쿠키 값: <%= cookie2.getValue() %> <p><a href="getCookies.jsp">Next Page to view the cookie value</a></p> </body> </html> 제11장

26 3. 쿠키의 활용 쿠키의 활용 방법 쿠키를 생성하여 응답전송(response)을 했다면 브라우저는 그 다음 요청전송부터 request 객체에 자신이 저장해 놓은 모든 쿠키를 전송. 클라이언트로부터 요청전송(request)된 쿠키 얻어오기 request.getCookies()는 request 객체에 포함되어 있는 모든 쿠키를 배열 형태로 리턴한다. (만약 쿠키가 없을 경우 null을 리턴.) "name"인 쿠키의 값을 변경하기 위해서는 다음과 같이 같은 이름을 지닌 새로운 Cookie 객체를 생성해서 응답 데이터에 추가 Cookie[] cookies = request.getCookies(); Cookie[] cookies = new Cookie("name", URLEncoder.encode("새로운 쿠키 값“)); response.addCookie(cookie); 제11장

27 3. 쿠키의 활용 쿠키의 활용 방법 쿠키 값을 변경하기 전 해당 쿠키가 존재하는지 확인하는 절차 쿠키 삭제 방법
Cookie[] cookies = request.getCookies(); if(cookies != null && cookies.length > 0){ for(int i = 0; i < cookies.length; i++){ if(cookies[i].getName().equals("name")){ Cookie cookie = new Cookie("name", URLEncoder.encode("새로운 쿠키 값“)); response.addCookie(cookie); } cookie.setMaxAge(0); response.addCookie(cookie); 제11장

28 3. 쿠키의 활용 쿠키의 활용 예제 [예제 11.4-2] jspbook\ch11\getCookies.jsp 제11장 01 02
03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 page contentType="text/html;charset=utf-8" %> page import="java.net.URLDecoder" %> <html> <head><title>쿠키 목록</title></head> <body> 쿠키 목록<br/> <% Cookie[] cookies = request.getCookies(); // request 객체로부터 전송된 모든 쿠키를 얻어온다. if (cookies != null && cookies.length > 0) { for (int i = 0 ; i < cookies.length ; i++) { %> //쿠키의 이름과 값을 얻어온다. <%= cookies[i].getName() %>=<%= URLDecoder.decode(cookies[i].getValue()) %><br/> <% // JSESSIONID는 세션의 ID로서 } // 기본적으로 Tomcat이 생성하여 } else { // 쿠키로 저장시킴 %> 전송 받은 쿠키가 없습니다. } </body> </html> 제11장

29 3. 쿠키의 활용 쿠키의 활용 예제 [예제 11.4-3] jspbook\ch11\deleteCookies.jsp 제11장 01
02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 page contentType="text/html;charset=utf-8" %> page import = "java.net.URLEncoder" %> <% Cookie[] cookies = request.getCookies(); if (cookies != null && cookies.length > 0) { for (int i = 0 ; i < cookies.length ; i++) { if (cookies[i].getName().equals("name")) { cookies[i].setMaxAge(0); response.addCookie(cookies[i]); } %> <html> <head><title>쿠키 삭제</title></head> <body> name 쿠키만 삭제하고 date 쿠키는 남아 있습니다. <p><a href="getCookies.jsp">Next Page to view the cookie value</a></p> </body> </html> // name 이름을 지닌 쿠키에 대한 삭제 제11장

30 3. 쿠키의 활용 쿠키의 유효시간 설정 예제 [예제 ] jspbook\ch11\create1hourCookie.jsp 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 page contentType="text/html;charset=utf-8" %> <% Cookie cookie = new Cookie("cookieTime", "1 hour"); cookie.setMaxAge(60 * 60); // 3600(60*60)초 = 1시간 response.addCookie(cookie); %> <html> <head><title>쿠키유효시간설정</title></head> <body> 유효시간이 1시간인 cookieTime 쿠키 생성. <p><a href="getCookies.jsp">Next Page to view the cookie value</a></p> </body> </html> 브라우저를 닫으면 쿠키는 자동으로 삭제됨. 유효시간을 설정함으로써 브라우저를 닫더라도 남아있음. 제11장

31 3. 쿠키의 활용 쿠키의 경로 설정에 대한 일반적인 방법 [Note] setPath() 메소드의 일반적인 활용법
일반적으로 쿠키는 웹 어플리케이션에 포함된 대부분의 JSP, 서블릿에서 공통으로 사용되는 경우가 많기 때문에 대부분의 쿠키는 경로를 "/"로 지정한다. 즉, 생성된 쿠키가 cookie 라면 cookie.setPath("/")를 호출하면 된다. 제11장

32 4. 쿠키를 활용한 아이디 기억하기 구현 login2.jsp에 id 쿠키를 찾는 기능을 추가. 제11장

33 4. 쿠키를 활용한 아이디 기억하기 구현 쿠키를 활용한 ID 기억하기 예제
[예제 ] jspbook\ch11\login2.jsp 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 page contentType="text/html;charset=utf-8" %> <html> <head><title>로그인</title></head> <% boolean isIDShow = false; String id = null; Cookie[] cookies = request.getCookies(); // 요청전송된 모든 쿠키 얻어오기 if (cookies != null && cookies.length > 0) { for (int i = 0 ; i < cookies.length ; i++) { if (cookies[i].getName().equals("id")) { isIDShow = true; id = cookies[i].getValue(); } // 브라우저를 닫고 다시 브라우저를 열고 login2.jsp를 재접속하면 브라우저가 있는 } // 클라이언트로부터 id 쿠키가 자동으로 요청전송되고 Tomcat은 login2.jsp를 처리할 때 } // id 쿠키를 발견하여 ID값을 입력폼에 나타나게 함. %> <body> 관리자 (Master)로 로그인하세요.<br/> 제11장

34 4. 쿠키를 활용한 아이디 기억하기 구현 쿠키를 활용한 ID 기억하기 예제
[예제 ] jspbook\ch11\login2.jsp 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 <form action="loginProcess2.jsp" method="post"> <% if (isIDShow) { %> ID : <input type="text" name="id" value="<%= id %>"> <input type="checkbox" name="idstore" value="store" checked>아이디 기억하기 </input><br/> } else { ID : <input type="text" name="id"> <input type="checkbox" name="idstore" value="store">아이디 기억하기</input><br/> } Password : <input type="password" name="pw"><br/> <input type="submit" value="전송"> </body> </html> 제11장

35 4. 쿠키를 활용한 아이디 기억하기 구현 쿠키를 활용한 ID 기억하기 예제
[예제 ] jspbook\ch11\loginProcess2.jsp 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 page contentType="text/html;charset=utf-8" %> <% String storedID = application.getInitParameter("MasterID"); String storedPW = application.getInitParameter("MasterPassword"); String id = request.getParameter("id"); String pw = request.getParameter("pw"); if (id.equals(storedID) && pw.equals(storedPW)) { // 아이디와 패스워드 모두 일치 session.setAttribute("MasterLoginID", id); // 로그인 성공 하면 session 속성 설정 %> <html> <head><title>로그인 처리</title></head> <body> 로그인에 성공했습니다. <br/><br/> <a href="loginCheck.jsp">로그인 체크</a> </body> </html> 제11장

36 4. 쿠키를 활용한 아이디 기억하기 구현 쿠키를 활용한 ID 기억하기 예제
[예제 ] jspbook\ch11\loginProcess2.jsp 18 19 20 21 22 23 24 25 26 27 28 29 30 31 <% // idstore 체크박스에 사용자가 체크했는지 판단하기 위해 request의 idstore 값을 얻어옴 String IDStore = request.getParameter("idstore"); // 만약 true라면 체크박스에 체크되었다고 판단 if (IDStore != null && IDStore.equals("store")) { // 사용자 id를 담고 있는 id 쿠키 객체를 응답전송하여 브라우저에 저장시킴 Cookie cookie = new Cookie("id", id); response.addCookie(cookie); // 브라우저를 닫고 다시 브라우저를 열고 login2.jsp를 재접속하면 브라우저가 있는 // 클라이언트로부터 id 쿠키가 자동으로 요청전송되고 Tomcat은 login2.jsp를 처리할 때 // id 쿠키를 발견하여 ID값을 입력폼에 나타나게 함. out.println("<a href='login2.jsp'>로그인 화면 다시 보기</a>"); } } else if (id.equals(storedID)) { // 아이디 일치 & 패스워드 불일치 %> <script> alert("패스워드가 다릅니다."); history.go(-1); </script> 제11장

37 4. 쿠키를 활용한 아이디 기억하기 구현 쿠키를 활용한 ID 기억하기 예제
login2.jsp를 다시 수행한 모습 [예제 ] jspbook\ch11\loginProcess2.jsp 32 33 34 35 36 37 38 39 40 } else { // 아이디 불일치 %> <script> alert("로그인 ID가 다릅니다."); history.go(-1); </script> <% } 제11장


Download ppt "11장. 세션과 쿠키 제11장."

Similar presentations


Ads by Google