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

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

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

Data Provisioning Services for mobile clients

JAVA PROGRAMMING 실습 09. 예외처리

<4D F736F F F696E74202D203130C0E52EBFA1B7AF20C3B3B8AE205BC8A3C8AF20B8F0B5E55D>

JAVA Bean & Session - Cookie

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

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

Microsoft PowerPoint - CSharp-10-예외처리

chapter6.doc

C++ Programming

PowerPoint 프레젠테이션

Microsoft PowerPoint - Chap6_cmpl

슬라이드 1

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

PowerPoint Template

PowerPoint Presentation

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

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

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

04장

PowerPoint Template

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

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

PowerPoint Presentation

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

Secure Programming Lecture1 : Introduction

중간고사

JVM 메모리구조

JAVA PROGRAMMING 실습 08.다형성

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

JAVA PROGRAMMING 실습 05. 객체의 활용

Microsoft Word - php09.doc

Microsoft PowerPoint 세션.ppt

슬라이드 1

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

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

0. 들어가기 전

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

PowerPoint Presentation

12-file.key

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

adfasdfasfdasfasfadf

Microsoft PowerPoint - 7강.pptx

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

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

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

Microsoft PowerPoint - 03-TCP Programming.ppt

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

PowerPoint 프레젠테이션

PowerPoint Template

PowerPoint Presentation

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - chap06-2pointer.ppt

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

금오공대 컴퓨터공학전공 강의자료

2009년 상반기 사업계획

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

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

PowerPoint Presentation

Cluster management software

Data Provisioning Services for mobile clients

14-Servlet

The Pocket Guide to TCP/IP Sockets: C Version

쉽게

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

PowerPoint Presentation

Microsoft PowerPoint 웹 연동 기술.pptx

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

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

gnu-lee-oop-kor-lec06-3-chap7

No Slide Title

OCW_C언어 기초

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

슬라이드 1

Microsoft PowerPoint - chap03-변수와데이터형.pptx

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

Microsoft PowerPoint - 04-UDP Programming.ppt

ThisJava ..

Design Issues

쉽게 풀어쓴 C 프로그래밍

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

PowerPoint Presentation

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

Windows 8에서 BioStar 1 설치하기

KYO_SCCD.PDF

chap 5: Trees

예외 예외정의예외발생예외처리예외전파 단정 단정의선언 단정조건검사옵션 2

JAVA PROGRAMMING 실습 02. 표준 입출력

슬라이드 1

제 목

강의 개요

Microsoft PowerPoint - ch07 - 포인터 pm0415

JUNIT 실습및발표

제11장 프로세스와 쓰레드

PowerPoint Presentation

슬라이드 1

슬라이드 1

Transcription:

예외처리개요 예외처리및세션과쿠키 524730-1 2019 년봄학기 4/15/2019 박경신 예외처리 프로그램이처리되는동안특정한문제가발생했을때처리를중단하고다른처리를하는것으로오류처리라고도함 웹사이트를이용하다가주소를잘못입력하면오류페이지를보게됨 웹서버가제공하는오류페이지로해당페이지에발생한오류, 디렉터리구조, 톰캣버전등의정보가나타나있기때문에웹보안이취약하여쉽게해킹당할수있음. 예외처리방법 예외처리 웹애플리케이션실행도중에발생할수있는오류에대비한예외처리코드를작성하여비정상적인종료를막을수있음 예외처리방법의종류 page 지시어를사용한예외처리 errorpage 속성으로오류페이지호출하기 오류페이지를호출하는 page 디렉티브태그의속성 @ page errorpage= 오류페이지.jsp 예외처리방법 page 지시어이용 web.xml 파일이용 try/catch/finally를이용 설명 errorpage와 iserrorpage 속성을이용 <error-code> 또는 <exception-type> 요소를이용자바언어의예외처리구문을이용 JSP 페이지가실행되는도중에오류가발생하면웹서버의기본오류페이지를대신하여 errorpage 속성에설정한페이지가오류페이지로호출

page 지시어를사용한예외처리 errorpage 속성으로오류페이지호출하기 page 지시어를사용한예외처리 errorpage 속성으로오류페이지호출하기 -- welcome.jsp -- @ page errorpage="errorpage.jsp" <html> <head> <title>iserrorpage and errorpage page directive example</title> </head> = 0/0 </html> -- errorpage.jsp -- @ page iserrorpage= true <html> <head> <title>exception</title> </head> 오류가발생하였습니다. = exception.tostring() </html> page 지시어를사용한예외처리 iserrorpage 속성으로오류페이지만들기 현재 JSP 페이지를오류페이지로호출하는 page 디렉티브태그의속성 이때오류페이지에서 exception 내장객체를사용할수있음 @ page iserrorpage= true exception 내장객체메소드 String getmessage() String tostring() String printstacktrace() 설명오류이벤트와함께들어오는메시지를출력오류이벤트의 tostring() 을호출하여간단한오류메시지를확인오류메시지의발생근원지를찾아단계별로오류를출력 page 지시어를사용한예외처리 iserrorpage 속성으로오류페이지만들기 -- errorpage.jsp -- @ page contenttype= text/html; charset=utf-8" @ page iserrorpage= true" <html> <head> <title>exception</title> </head> 오류가발생하였습니다. 오류유형 : = exception.getclass().getname() 오류메시지 : = exception.getmessage() </html>

web.xml 파일을이용한예외처리 <error-page> </error-page> 요소내에처리할오류코드나오류유형및오류페이지를호출 요소 <error-code> <exception-type> <location> 설명오류코드를설정하는데사용자바예외유형의정규화된클래스이름을설정하는데사용오류페이지의 URL을설정하는데사용 web.xml 오류코드로오류페이지호출하기 오류코드는웹서버가제공하는기본오류페이지에나타나는 404, 500과같이사용자의요청이올바르지않을때출력되는코드로응답상태코드라고도함 JSP 페이지에서발생하는오류가 web.xml 파일에설정된오류코드와일치하는경우오류코드와오류페이지를보여줌 <web-app...>... <error-page> <error-code> 에러코드 </error-code> <location> 에러페이지의 URI</location> </error-page>... </web-app> 주요오류코드 코드 설명 200 OK. 요청이정상적으로처리 307 임시로페이지가리다이렉트 400 Bad Request, 요청실패. 클라이언트의요청이잘못된구문으로구성 401 Unauthorized, 접근이허용되지않음 404 Not Found, 문서를찾을수없음. 지정된 URL을처리하기위한자원 이존재하지않음 ( 페이지가없음 ) 405 Method not allowed, 요청된메소드가허용되지않음 500 서버내부의에러 (JSP에서예외가발생하는경우 ) 503 서버가일시적으로서비스를제공할수없음 ( 서버과부하나보수중인 경우 ) 505 HTTP Version Not Supported web.xml 예외유형별오류페이지호출하기 예외유형에따른오류페이지호출방법은 JSP 페이지가발생시키는오류가 web.xml 파일에설정된예외유형과일치하는경우예외유형과오류페이지를보여줌 <web-app...>... <error-page> <exception-type> 예외클래스명 </exception-type> <location> 에러페이지의 URI</location> </error-page>... </web-app>

주요예외유형 예외유형 설명 ClassNotFoundException 클래스를찾지못했을때발생 NullPointerException null 객체를사용하려고시도할때발생 ClassCastException 변환할수없는클래스로객체로변환할때발생 OutOfMemoryException 메모리부족으로메모리를확보하지못했을때 StackOverflowError 스택오버플로일때발생 ArrayIndexOutOfBoundEx 배열의범위를벗어난접근할때발생 ception IllegalArgumentException 메소드인자유형을잘못사용했을때발생 IOException 입출력오류에의해발생 NumberFormatException 부적절한문자열을숫자로변환하려할때발생 ArithmeticException 산술연산오류에의해발생 (0을정수로나눔 ) 에러페이지우선순위 1. page 디렉티브의 errorpage 속성에서지정한에러페이지를보여줌 2. JSP 페이지에서발생한예외타입이 web.xml 파일의 <exception-type> 에서지정한예외타입과동일한경우지정한에러페이지를보여줌 3. JSP 페이지에서발생한에러코드가 web.xml 파일의 <error-code> 에서지정한에러코드와동일한경우지정한에러페이지를보여줌 4. 아무것도해당되지않을경우웹컨테이너가제공하는기본에러페이지를보여줌 <web-app> <error-page> <error-code>404</error-code> <location>/errorcode404.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/errorcode500.jsp</location> </error-page> <error-page> <exception-type>java.lang.arithmeticexception</exception-type> <location>/exceptiontype.jsp</location> </error-page> </web-app> <form action= process.jsp method= post > <p> 숫자 1 : <input type= text name= num1 > <p> 숫자 2 : <input type= text name= num2 > <p><input type= submit value= 나누기 > </form> String num1 = request.getparameter( num1 ); String num2 = request.getparameter( num2 ); int a = Integer.parseInt(num1); int b = Integer.parseInt(num2); int c = a / b; out.print(num1 + / + num2 + = + c);

Error code 404 오류가발생하였습니다. 요청한페이지는존재하지않습니다!! Error code 500 에러 Internal Server Error, 서버내부오류. 이에러는웹서버가요청사항을수행할수없을경우에발생합니다. <p> 예외 : =exception <p>tostring() : =exception.tostring() <p>getclass().getname() : =exception.getclass().getname() <p>getmessage() : =exception.getmessage() try-catch-finally 를이용한예외처리 try-catch-finally 를이용한예외처리 자바의예외처리구문으로스크립틀릿태그에작성 try { // 예외가발생할수있는실행문 catch ( 예외유형 ) { // 예외처리문 finally { // 예외와상관없이무조건실행되는문 ( 생략가능 ) try 구문에는예외가발생할수있는코드를작성하고, catch 구문에는오류가발생할수있는예외사항을예측하여오류를처리하는코드를작성 finally 구문에는 try 구문이실행된후실행할코드를작성하는데이는생략가능 try-catch-finally 를이용한예외처리 try { int num = 20 / 0; catch (ArithmeticException e) { RequestDispatcher dispatcher = request.getrequestdispatcher("errorpage.jsp"); dispatcher.forward(request, response); 세션의개요 세션 (session) 클라이언트와웹서버간의상태를지속적으로유지하는방법 예를들면웹쇼핑몰에서장바구니나주문처리와같은회원전용페이지의경우로그인인증을통해사용권한을부여. 그래서다른웹페이지에갔다가되돌아와도로그인상태가유지되므로회원전용페이지를계속사용할수있음. 이렇게사용자인증을통해특정페이지를사용할수있도록권한상태를유지하는것. 오직서버에서만생성 클라이언트마다세션이생성

세션의개요 세션 (session) 웹서버에서만접근이가능하므로보안유지에유리하며데이터를저장하는데한계가없음 오직웹서버에존재하는객체로웹브라우저마다하나씩존재하므로웹서버의서비스를제공받는사용자를구분하는단위가됨 웹브라우저를닫기전까지웹페이지를이동하더라도사용자의정보가웹서버에보관되어있어사용자정보를잃지않음. 세션의동작과정 세션동작과정 1. 클라이언트가서버에접속시세션 ID를발급. 2. 서버에서는클라이언트로발급해준세션 ID (JSESSIONID) 를저장. 즉, 세션을구별하기위해 ID 가필요하고그 ID 만쿠키를이용해서저장해놓음. 쿠키는자동으로서버에전송되니까서버에서세션아이디에따른처리를할수있음 3. 클라이언트는다시접속할때, 이 JSESSIONID 를이용해서세션 ID 값을서버에전달. 예를들면, 게시판에글을작성할때작성버튼을누르면세션에있는아이디를참조해서작성자를지정하게함 세션의생성 page 지시어의 session 속성값을 true로지정 세션이존재하지않을경우세션이생성되고, 세션이존재할경우이미생성된세션을사용 session 내장객체를이용해서세션에접근 session의기본값은 true이므로 false로하지않는이상항상세션사용 @ page contenttype =... @ page session = "true"... session.setattribute("userinfo", userinfo);... 속성이용해서클라이언트관련정보저장 세션의생성 세션생성 session 내장객체의 setattribute() 메소드를사용 setattribute() 메소드를이용하여세션의속성을설정하면계속세션상태를유지할수있음. 만약동일한세션의속성이름으로세션을생성하면마지막에설정한것이세션속성값이됨. void setattribute(string name, Object value) 첫번째매개변수 name은세션으로사용할세션속성이름을나타내며, 세션에저장된특정값을찾아오기위한키로사용. 두번째매개변수 value는세션의속성값 세션속성값은 Object 객체타입만가능하기때문에 int, double, char 등의기본타입은사용할수없음 session.setattribute( username, Park ); session.setattribute( userage, 10);

세션의정보얻기 단일세션정보얻기 세션에저장된하나의세션속성이름에대한속성값을얻어오려면 getattribute( ) 메소드를사용 getattribute( ) 메소드는반환유형이 Object 형이므로반드시형변환을하여사용해야함 Object getattribute(string name) 첫번째매개변수 name은세션에저장된세션속성이름 해당속성이름이없는경우 null을반환 String name = (String)session.getAttribute( username ); int age = (Integer)session.getAttribute( userage ); 세션의정보얻기 다중세션정보얻기 getattributenames() 메소드를사용하여다중세션정보를얻음 Enumeration getattributenames() Enumeration items = session.getattributenames(); while(items.hasmoreelements()) { String name = items.nextelement().tostring(); String value = session.getattribute(name).tostring(); 세션의삭제 단일세션삭제하기 세션에저장된하나의세션속성이름을삭제하려면 removeattribute( ) 메소드를사용 void removeattribute(string name) session.removeattribute( username ); session.removeattribute( userage ); 다중세션삭제하기 세션에저장된모든세션속성이름을삭제하려면 invalidate( ) 메소드를사용 void invalidate() 세션이종료되면기존에생성된세션이삭제 이후접근시새로운세션생성됨 session.invalidate(); // 세션해제 세션유효시간설정 세션유효시간 세션을유지하기위한세션의일정시간 웹브라우저에마지막접근한시간부터일정시간이내에다시웹브라우저에접근하지않으면자동으로세션이종료 세션유효시간을설정하기위해 session 내장객체의 setmaxinactiveinterval() 메소드를사용 void setmaxinactiveinterval(int interval) // 초단위 마지막세션사용이후유효시간이지나면자동종료 WEB-INF/web.xml 파일에서지정 // 분단위 <session-config> <session-timeout> 30 </session-timeout> </session-config>

세션의생성 세션의정보 String id = request.getparameter("userid"); String pw = request.getparameter("userpw"); if (id.equals("admin") && pw.equals("1234")) { session.setattribute("userid", id); session.setattribute("userpw", pw); out.println("session Successful~"); out.println("welcome " + id); response.sendredirect( loginsuccess.jsp"); else { out.println("session Failed"); String userid = (String)session.getAttribute("userID"); String userpw = (String)session.getAttribute("userPW"); if (userid!= null && userpw!= null) { out.println("session Successful~ <br>"); out.println("welcome " + userid + " " + userpw + "<br>"); String sessinid = session.getid(); long lasttime = session.getlastaccessedtime(); long starttime = session.getcreationtime(); long elapsedtime = (lasttime - starttime) / 60000; out.println(" 세션아이디 : " + sessinid + "<br>"); out.println(" 요청시작시간 : " + starttime + "<br>"); out.println(" 요청마지막시간 : " + lasttime + "<br>"); out.println(" 웹사이트에서경과시간 : " + elapsedtime + "<br>"); 세션의정보 세션의삭제 -- 모든세션속성이름과속성값출력 --> Enumeration e = session.getattributenames(); int i = 0; while(e.hasmoreelements()) { i++; String name = e.nextelement().tostring(); String value = session.getattribute(name).tostring(); out.println( session attribute name[" + i + ]= + name + "<br>"); out.println( session attribute value[" + i + ]= + value + "<br>"); session.invalidate(); // 모든세션삭제 response.sendredirect("index.jsp");

쿠키의개요 쿠키 (cookie) 클라이언트와웹서버간의상태를지속적으로유지하는방법 쿠키는세션과달리상태정보를웹서버가아닌클라이언트에저장 예를들어어떤웹사이트를처음방문한사용자가로그인인증을하고나면아이디와비밀번호를기록한쿠키가만들어지고그다음부터사용자가그웹사이트에접속하면별도의절차를거치지않고쉽게접속할수있음 클라이언트의일정폴더에정보를저장하기때문에웹서버의부하를줄일수있다는것이장점 반면에웹브라우저가접속했던웹사이트에관한정보와개인정보가기록되기때문에보안에문제가있음 쿠키의제한 클라이언트에 300 개까지쿠키저장가능, 하나의도메인당 20 개가질수있음. 하나의쿠기값은 4KB 까지저장 쿠키의동작과정 쿠키 (cookie) 동작과정 1. 쿠키생성단계 - 쿠키를사용하려면먼저쿠키를생성해야함. 쿠키는주로웹서버측에서생성. 생성된쿠키는응답데이터에함께저장되어웹브라우저에전송됨. 2. 쿠키저장단계 - 웹브라우저는응답데이터에포함된쿠키를쿠키저장소에보관. 쿠키는종류에따라메모리나파일로저장. 3. 쿠키전송단계 - 웹브라우저는한번저장된쿠키를요청이있을때마다웹서버에전송. 웹서버는웹브라우저가전송한쿠키를사용하여필요한작업을수행할수있음. 쿠키의구성 쿠키 (cookie) 구성요소 이름 - 각각의쿠키를구별하는데사용되는이름 값 - 쿠키의이름과관련된값 유효시간 - 쿠키의유지시간 도메인 - 쿠키를전송할도메인 경로 - 쿠키를전송할요청경로 쿠키이름의제약 쿠키의이름은아스키코드의알파벳과숫자만을포함가능 콤마 (,), 세미콜론 (;), 공백 (' ') 등의문자는불가능 '$' 로시작할수없음 쿠키와세션의차이 구분 쿠키 세션 사용클래스 Cookie 클래스 HttpSession 인터페이스 저장형식 텍스트 Object형 저장장소 클라이언트 서버 ( 세션아이디만클라이언트에저장 ) 종료시점 쿠키저장시설정 ( 설정하지않 정확한시점을알수없음 을경우웹브라우저종료시소멸 ) 리소스 클라이언트의리소스사용 서버의리소스사용 보안 클라이언트에저장되므로사용자변경이가능하여보안에취약 서버에저장되어상대적으로안정적

쿠키의생성 쿠키생성 Cookie 클래스를이용해서쿠키를생성한후에반드시 response 내장객체의 addcookie() 메소드로쿠키를설정해야함 첫번째매개변수 name은쿠키를식별하기위한이름 두번째매개변수 value는쿠키값 Cookie cookie = new Cookie("cookieName", "cookievalue"); response.addcookie(cookie); 쿠키의정보얻기 클라이언트가보낸쿠키읽기 쿠키객체가여러개일때는배열형태로가져옴 Cookie[] cookies = request.getcookies(); 쿠키객체의정보얻기 쿠키객체를얻어왔다면이쿠키객체에저장된쿠키이름과값을가져오기위해 getname(), getvalue() 메소드를사용 메서드 설명 String getname() 쿠키의이름을구한다. String getvalue() 쿠키의값을구한다. 쿠키값의인코딩 / 디코딩처리 쿠키는값으로한글과같은문자를가질수없음 쿠키의값을인코딩해서지정할필요있음 쿠키값의처리 값설정시 : URLEncoder.encode(" 값 ", "euc-kr") 예, new Cookie("name", URLEncoder.encode(" 값 ", "euc-kr")); 값조회시 : URLDecoder.decode(" 값 ", "euc-kr") Cookie cookie = ; String value = URLDecoder.decode(cookie.getValue(), "euc-kr"); 쿠키값변경 기존에존재하는지확인후, 쿠키값새로설정 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, value); response.addcookie(cookie);

쿠키의도메인과경로 도메인지정시, 해당도메인에쿠키전달 Cookie.setDomain() 으로쿠키설정 도메인형식.madvirus.net - 점으로시작하는경우관련도메인에모두쿠키를전송한다. www.madvirus.net - 특정도메인에대해서만쿠키를전송한다. 웹브라우저는도메인이벗어난쿠키는저장하지않음 쿠키도메인에따라쿠키가전달 only 쿠키를 javacan.madvirus.net 서버에서생성했다고한경우 쿠키의경로 / 유효시간 경로설정시해당경로를기준으로쿠키전달 경로미설정시, 요청 URL의경로에대해서만쿠키전달 경로설정시, 설정한경로및그하위경로에대해서쿠키전달 Cookie.setPath() 로경로설정 유효시간 유효시간미지정시, 웹브라우저닫을때쿠키도함께삭제 Cookie.setMaxAge() 로쿠키유효시간설정 유효시간이지나지않을경우웹브라우저를닫더라도쿠키가삭제되지않고, 이후웹브라우저를열었을때해당쿠키전송됨 유효시간 : 초단위로설정 쿠키의삭제 쿠키의삭제 쿠키의유효기간을결정하는 setmaxage() 메소드에유효기간을 0으로설정하여쿠키를삭제할수있음 Cookie cookie = new Cookie( username, park ); Cookie.setMaxAge(0); response.addcookie(cookie); 쿠키생성 String id = request.getparameter("userid"); String pw = request.getparameter("userpw"); if (id.equals("admin") && pw.equals("1234")) { Cookie cookieid = new Cookie("userID", id); Cookie cookiepw = new Cookie("userPW", pw); response.addcookie(cookieid); response.addcookie(cookiepw); out.println("cookie Creation Successful~"); out.println("welcome " + id); response.sendredirect( loginsuccess.jsp"); else { out.println( Cookie Creation Failed");

쿠키정보 쿠키삭제 String userid = null; String userpw = null; Cookie[] cookies = request.getcookies(); for (int i = 0; i < cookies.length; i++) { String name = cookies[i].getname(); String value = cookies[i].getvalue(); out.println( cookie name [ " + i + " ] : " + cookies[i].getname() + "<br>"); out.println( cookie value [ " + i + " ] : " + cookies[i].getvalue() + "<br>"); if (name.equals("userid")) userid = value; if (name.equals("userpw")) userpw = value; if (userid!= null && userpw!= null) { out.println( Cookie Successful~ <br>"); out.println("welcome " + userid + " " + userpw + "<br>"); Cookie[] cookies = request.getcookies(); for (int i = 0; i < cookies.length; i++) { cookies[i].setmaxage(0); response.addcookie(cookies[i]); response.sendredirect("index.jsp");