Data Provisioning Services for mobile clients

Similar documents
뇌를 자극하는 JSP & Servlet 슬라이드

<4D F736F F F696E74202D203130C0E52EBFA1B7AF20C3B3B8AE205BC8A3C8AF20B8F0B5E55D>

14-Servlet

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

chapter6.doc

Microsoft PowerPoint - aj-lecture6.ppt [호환 모드]

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

JAVA Bean & Session - Cookie

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

Data Provisioning Services for mobile clients

뇌를 자극하는 JSP & Servlet 슬라이드

서블릿의라이프사이클 뇌를자극하는 JSP & Servlet

JSP 의내장객체 response 객체 - response 객체는 JSP 페이지의실행결과를웹프라우저로돌려줄때사용되는객체이다. - 이객체는주로켄텐츠타입이나문자셋등의데이터의부가정보 ( 헤더정보 ) 나쿠키 ( 다음에설명 ) 등을지정할수있다. - 이객체를사용해서출력의방향을다른

2장 변수와 프로시저 작성하기

뇌를 자극하는 JSP & Servlet 슬라이드

04장

JavaGeneralProgramming.PDF

Data Provisioning Services for mobile clients

뇌를 자극하는 JSP & Servlet 슬라이드

<param-value> 파라미터의값 </param-value> </init-param> </servlet> <servlet-mapping> <url-pattern>/ 매핑문자열 </url-pattern> </servlet-mapping> - 위의예에서 ServletC

PowerPoint Template

Data Provisioning Services for mobile clients

Data Provisioning Services for mobile clients

PowerPoint 프레젠테이션


PHP & ASP

Microsoft PowerPoint - 웹프로그래밍_ ppt [호환 모드]

Cookie Spoofing.hwp

2009년 상반기 사업계획

J2EE Concepts

Data Provisioning Services for mobile clients

웹 개발자를 위한 서블릿/JSP

중간고사

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F31C2F7BDC32E >

게시판 스팸 실시간 차단 시스템

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

작성자 : 김성박\(삼성 SDS 멀티캠퍼스 전임강사\)

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

KYO_SCCD.PDF

Microsoft PowerPoint Python-WebDB

제8장 자바 GUI 프로그래밍 II

Microsoft PowerPoint 세션.ppt

PowerPoint 프레젠테이션

어댑터뷰

Microsoft Word - php09.doc

Ext JS À¥¾ÖÇø®ÄÉÀ̼ǰ³¹ß-³¹Àå.PDF

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx

PowerPoint Presentation

Secure Programming Lecture1 : Introduction

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드]

PHP & ASP

Microsoft Word - src.doc


JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

JAVA PROGRAMMING 실습 08.다형성

Microsoft PowerPoint - 03-TCP Programming.ppt

Microsoft PowerPoint - aj-lecture7.ppt [호환 모드]

Microsoft PowerPoint - 4강.pptx

Design Issues

JUNIT 실습및발표

Spring Boot/JDBC JdbcTemplate/CRUD 예제

API 매뉴얼

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

본 강의에 들어가기 전

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

chap 5: Trees

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

Microsoft PowerPoint - 7강.pptx

제11장 프로세스와 쓰레드

기술문서 작성 XXE Attacks 작성자 : 인천대학교 OneScore 김영성 I. 소개 2 II. 본문 2 가. XML external entities 2 나. XXE Attack 3 다. 점검방법 3 라.

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

3장

SK Telecom Platform NATE

제 목

PowerPoint Template

09-interface.key

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

교육자료

쉽게 풀어쓴 C 프로그래밍

Web Service Computing

PowerPoint 프레젠테이션

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

JAVA PROGRAMMING 실습 05. 객체의 활용

PowerPoint Presentation

Spring Data JPA Many To Many 양방향 관계 예제

PowerPoint Presentation

PowerPoint Presentation

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요

Javascript.pages

목차 JEUS EJB Session Bean가이드 stateful session bean stateful sample 가이드 sample source 결과확인 http session에

3ÆÄÆ®-14

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

Dialog Box 실행파일을 Web에 포함시키는 방법

Transcription:

11 장. 세션과쿠키

세션의원리 세션의기본개념 1. 세션의활용 접속중인웹브라우저각각에대응하여서로다른세션이생성되고활용 2/35

1. 세션의활용 세션의원리 세션의생성시점과종료시점 session 생성시기임의의웹브라우저부터의첫번째요청을처리할때 session이생성되고관련타이머가동작한다. session 소멸시기 1) 세션타이머가만료 2) 코드상에서명시적으로세션소멸 한명의브라우저사용자에대해지속적으로관리해야하는데이터저장장소로서세션을활용 3/35

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

세션의타임아웃 1. 세션의활용 가장최근에 session 객체에접근한시각및 session 이생성된시간을돌려주는메소드 session.getlastaccessedtime() session.getcreationtime() 세션만료와재생성 5/35

1. 세션의활용 세션의타임아웃 세션의유효시간설정방법 1 web.xml 활용 <?xml version="1.0" encoding="utf-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee"... version="2.5">......... <session-config> <session-timeout>100</session-timeout> <!-- 분단위 --> </session-config></web-app> 세션의유효시간설정방법 2 session 객체의메소드활용 <% session.setmaxinactiveinterval(100 * 60); // 초단위 %> 6/35

2. 세션을활용한로그인처리구현 구글의로그인정보입력화면 7/35

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

2. 세션을활용한로그인처리구현 웹어플리케이션의관리자정보저장하기 <?xml version="1.0" encoding="utf-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> [ 예제 11.2] jspbook\web-inf\web.xml <!-- 아래의내용만삽입 --> <context-param> <param-name>masterid</param-name> <param-value>jspbook</param-value> </context-param> <context-param> <param-name>masterpassword</param-name> <param-value>112233</param-value> </context-param> <!-- 삽입끝 --> 9/35 </web-app>

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> 10/35

로그인처리예제 2. 세션을활용한로그인처리구현 [ 예제 11.3-2] jspbook\ch11\loginprocess.jsp 01 <%@ page contenttype="text/html;charset=utf-8" %> 02 <% 03 String storedid = application.getinitparameter("masterid"); 04 String storedpw = application.getinitparameter("masterpassword"); 05 06 String id = request.getparameter("id"); 07 String pw = request.getparameter("pw"); 08 if (id.equals(storedid) && pw.equals(storedpw)) { // 아이디와패스워드모두일치 09 session.setattribute("masterloginid", id); // 로그인성공을나타내는특정속성설정 10 %> 11 <html> 12 <head><title> 로그인처리 </title></head> 13 <body> 14 로그인에성공했습니다. <br/><br/> 15 <a href="logincheck.jsp"> 로그인체크 </a> 16 </body> 17 </html> 11/35

2. 세션을활용한로그인처리구현 로그인처리예제 [ 예제 11.3-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); </script> <% } else { // 아이디불일치 %> <script> alert(" 로그인 ID가다릅니다."); history.go(-1); </script> <% } %> 12/35

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

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

2. 세션을활용한로그인처리구현 로그아웃처리 [ 예제 11.3-4] 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"); 15/35

Servlet 에서세션의활용 2. 세션을활용한로그인처리구현 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();...... 16/35

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

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

3. 쿠키의활용 쿠키의생성및활용 쿠키의구성요소 이름 - 각각의쿠키를구별하기위하여사용되는식별자 값 - 쿠키의이름과연관된내용 유효시간 - 쿠키의유지시간 도메인 - 쿠키와연관되는도메인 경로 - 쿠키를전송할요청경로 제한요소 <% Cookie cookie = new Cookie("cookieName", "cookievalue"); response.addcookie(cookie); %> 쿠키는하나의웹사이트당 20개의쿠키가저장될수있다. 한쿠키당데이터값으로 4096 바이트를넘을수없다. 19/35

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

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

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 쿠키생성 Cookie cookie = new Cookie("name", URLEncoder.encode("jspbook 쿠키테스트 ")); Cookie cookie2 = new Cookie("date", new Date().toString()); // date 쿠키생성 response.addcookie(cookie); // reponse 객체에쿠키추가 response.addcookie(cookie2); %> <html> <head><title> 쿠키생성 </title></head> <body> 22/35

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

3. 쿠키의활용 쿠키의활용방법 요청전송된쿠키얻어오기 Cookie[] cookies = request.getcookies(); "name" 인쿠키의값을변경하기위해서는다음과같이같은이름을지닌새로운 Cookie 객체를생성해서응답데이터에추가 Cookie[] cookies = new Cookie("name", URLEncoder.encode(" 새로운쿠키값 )); response.addcookie(cookie); 24/35

쿠키의활용방법 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); 25/35

쿠키의활용예제 3. 쿠키의활용 [ 예제 11.4-2] jspbook\ch11\getcookies.jsp 01 <%@ page contenttype="text/html;charset=utf-8" %> 02 <%@ page import="java.net.urldecoder" %> 03 <html> 04 <head><title> 쿠키목록 </title></head> 05 <body> 06 쿠키목록 <br/> 07 <% 08 Cookie[] cookies = request.getcookies(); // request 객체로부터전송된모든쿠키를얻어온다. 09 if (cookies!= null && cookies.length > 0) { 10 for (int i = 0 ; i < cookies.length ; i++) { 11 %> // 쿠키의이름과값을얻어온다. 12 <%= cookies[i].getname() %>=<%= URLDecoder.decode(cookies[i].getValue()) %><br/> 13 <% 14 } 15 } else { 16 %> 17 전송받은쿠키가없습니다. 18 <% 19 } 20 %> 26/35 21 </body> 제11장

쿠키의활용예제 3. 쿠키의활용 [ 예제 11.4-3] jspbook\ch11\deletecookies.jsp 01 02 03 04 05 06 07 <%@ 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")) { 08 09 cookies[i].setmaxage(0); response.addcookie(cookies[i]); // name 이름을지닌쿠키에대한삭제 10 } 11 } 12 13 14 15 16 17 } %> <html> <head><title> 쿠키삭제 </title></head> <body> name 쿠키만삭제하고 date 쿠키는남아있습니다. 18 19 <p><a href="getcookies.jsp">next Page to view the cookie value</a></p> 20 27/35 21 </body> 제11장

3. 쿠키의활용 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 쿠키의유효시간설정예제 [ 예제 11.4-4] jspbook\ch11\create1hourcookie.jsp <%@ 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> 28/35

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

4. 쿠키를활용한아이디기억하기구현 쿠키를활용한 ID 기억하기의전체절차 30/35

4. 쿠키를활용한아이디기억하기구현 쿠키를활용한 ID 기억하기예제 [ 예제 11.5-1] jspbook\ch11\login2.jsp 01 <%@ page contenttype="text/html;charset=utf-8" %> 02 <html> 03 <head><title> 로그인 </title></head> 04 <% 05 boolean isidshow = false; 06 String id = null; 07 Cookie[] cookies = request.getcookies(); // 요청전송된모든쿠키얻어오기 08 if (cookies!= null && cookies.length > 0) { 09 for (int i = 0 ; i < cookies.length ; i++) { 10 if (cookies[i].getname().equals("id")) { 11 isidshow = true; 12 id = cookies[i].getvalue(); 13 } 14 } 15 } 16 %> 17 <body> 18 관리자 (Master) 로로그인하세요.<br/> 31/35 제11장

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

4. 쿠키를활용한아이디기억하기구현 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 쿠키를활용한 ID 기억하기예제 [ 예제 11.5-2] jspbook\ch11\loginprocess2.jsp <%@ 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); // 로그인성공을나타내는특정속성설정 %> <html> <head><title> 로그인처리 </title></head> <body> 로그인에성공했습니다. <br/><br/> <a href="logincheck.jsp"> 로그인체크 </a> </body> </html> 33/35

4. 쿠키를활용한아이디기억하기구현 쿠키를활용한 ID 기억하기예제 [ 예제 11.5-2] jspbook\ch11\loginprocess2.jsp 18 19 20 21 22 23 24 25 26 27 28 29 30 31 <% String IDStore = request.getparameter("idstore"); if (IDStore!= null && IDStore.equals("store")) { Cookie cookie = new Cookie("id", id); response.addcookie(cookie); out.println("<a href='login2.jsp'> 로그인화면다시보기 </a>"); } } else if (id.equals(storedid)) { // 아이디일치 & 패스워드불일치 %> <script> alert(" 패스워드가다릅니다."); history.go(-1); </script> <% 34/35

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