병갈이 블록

쿠키 - 2 본문

IT(Old)/JSP 공부 기록

쿠키 - 2

woojang 2017. 6. 22. 18:47

java파일로 쿠키의 생성, 저장, 읽어오기를 클래스화 하기.

루트폴더 아래 WEB-INF\src\util\클래스.java 를 생성.

(servlet-api.jar을 클래스패스에 추가해야됨. 컴파일에 필요.)

명령프로토콜에서 루트폴더로 간다.(C:\)

set CLASSPATH=[톰캣폴더경로]\lib\servlet-api.jar 

을 입력후 웹 어플리케이션폴더의 WEB-INF폴더로 이동. src가 있는 위치에 classes폴터 추가.

javac -d classes src\util\클래스.java 실행.

WEB-INF\classes\util\클래스.class 파일이 있는지 확인.


클래스(java) 파일.

src 바로 아래에 있는 폴더로 패키지화 한다.

(여기서는 util폴더니까 util로 패키지화)

그리고 필요한 클래스들을 임포트한다.

package util;

import javax.servlet.http.HttpServletRequest;    //request기본 객체를 사용하기 위해서.

import javax.servlet.http.Cookie;                    //Cookie 클래스를 사용하기 위해서.

import java.util.Map;                                  //Map<T, N>을 사용해서 <이름, 쿠키객체>형태로 저장하기 위해서.


import java.net.URLEncoder;                //쿠키 생성시 인코딩하기 위해 URLEncoder.encode메서드를 사용하기 위해서.

import java.net.URLDecoder;                //쿠키 값을 읽어들일때 디코딩하기 위해 URLDecoder.edcode메서드를 사용하기 위해서.


import java.io.IOException;        //Cookie클래스로 객체를 만드는 과정에서 발생할 수 있는 IOException을 처리하기 위해서.

클래스에 생성자 및 필요한 함수들을 정의한다.

1. 쿠키 생성하는 함수.(오버로딩 필요. 매개변수에 따라 처리가 가능한 메서드) - 별도의 객체생성 없이 바로 사용해야 함으로 static선언.

쿠키 생성이 필요할 경우 임포트된 '클래스'를 이용해서 바로 쿠키생성이 가능하도록 해야함. 

ex> response.addCookie(클래스.생성메서드(변수1, 변수2, ... )); 형태로 사용.

2. 이름이 존재하는지 확인하는 함수. (이미 저장된 쿠키를 이용.)

3. 쿠키의 이름을 검색해서 반환하는 함수. (이미 저장된 쿠키를 이용.)

4. 쿠키의 이름을 검색해서 이름에 저장된 값을 반환하는 함수. (이미 저장된 쿠키를 이용.)

5. 생성자. 저장된 쿠키를 불러와 Map변수에 저장하는 기능 처리. 위 2~4번의 함수가 Map변수에 접근해서 요청을 처리할 수 있도록 함.

request.getCookies() 메서드는 쿠키의 배열을 반환한다. request에 이 메서드가 있기에 생성자 매개변수로 request 기본객체의 자료형인 HttpServletRequest형의 변수를 지정한다. 그리고 getCookies()메서드를 이용하여 Map변수에 객체를 저장함.


폴더의 구조.

루트폴더\WEB-INF\src\페키지이름

루트폴더\WEB-INF\classes\페키지이름 

이렇게 WEB-INF를 기중으로 두개의 폴더가 있다. 두 폴더아래에는 패키지로 사용할 이름으로 동일한 폴더가 각각에 존재한다.

(페키지 이름은 여러 하위폴더로 이루어진 구성이어도 가능하다. ex> src와 classes아래 name\cd\nod가 있다면 이 페키지의 이름은 "name.cd.nod.자바파일이름" 이다. 마지막 폴더는 java파일이 위치하는 폴더.)

jsp파일은 루트폴더에 위치. 임포트 주소는 '페키지이름.자바파일이름'으로 하면 된다. (ex> page import="name.cd.nod.자바파일이름" )



'IT(Old) > JSP 공부 기록' 카테고리의 다른 글

EL(Expression Language)-표현언어.  (0) 2017.06.27
세션.  (0) 2017.06.22
쿠키.  (0) 2017.06.22
JavaBeans  (0) 2017.06.21
<jsp:forward>  (0) 2017.06.20
Comments