* 내장 객체 ★★★
   0. 영역      ---공유 범위: page<request<session<application
      - PAGE 영역하나의 jsp 페이지를 처리할 때 사용되는 영역
          pageContext 객체 : 한 번의 요청을 처리하는 하나의 jsp 페이지 내에 공유될 값을 저장
          영역이 너무 좁아서 잘 사용하진 않는다는 듯?

      - Request 영역하나의 http 요청을 처리할 때 사용되는 영역
          request 객체 : 한 번의 요청을 처리하는 모든 jsp 페이지에서 공유될 값을 저장

      - Session 영역하나의 웹 브라우저와 관련된 영역
          session 객체 : 한 사용자와 관련된 정보를 jsp들이 공유하기 위해 사용

      - Application 영역하나의 웹 어플리케이션과 관련된 영역
          application 객체 : 모든 사용자와 관련해 공유할 정보를 저장
          영역이 너무 커서 얘도 잘 사용하진 않나 봄

      - 메소드
         01. setAttribute(String name, Object value) : 이름이 name인 속성의 값을 value로 지정
         02. getAttribute(String name) : 이름이 name인 속성의 값을 구해오고 존재하지 않을 경우 null.

   1. request★
   2. response★ 웹 브라우저로 되돌려줄 정보(클라이언트의 요청에 대한 응답 정보)를 저장하는 객체
      - 주요 메소드

Type         Method definition
String         getCharacterEncoding () 한글 인코딩 형태를 구함
void         addCookie (Cookie cookie) 쿠키를 발행함
void         sendRedirect (String location) 지정한 URL 로 이동한다


         01. response.sendRedirect("first.jsp?name=test"); 
             - first.jsp 파일에 변수 name=test라는 값을 전달하고 이동함
          +) 같은 처리
            i. html meta 태그 이용
               <meta http-equiv="refresh" content="0; url=first.jsp?name=test">
            ii. 자바스크립트 이용
               <script> location.href='first.jsp?name=test';  </script>

   3. pageContext: JSP 페이지에 대한 정보를 저장 -- 다른 내장 객체를 구하거나 페이지 흐름제어, 에러데이터 얻을 때 사용

   4. session★: http 세션 정보를 저장 -- 웹 브라우저 요청 시 관련 정보를 저장하고 관리 (회원관리의 사용자 인증 작업 수행 시 사용)

   5. application : 웹 어플리케이션에 대한 정보를 저장 --서버의 정보, 자원에 대한 정보+ 이벤트 로그 정보, 관련된 기능 제공

   6. out★ : JSP 페이지가 생성한 결과, 정보를 웹 브라우저에 출력(전송)할 때 사용하는 출력 스트림
                      스크립트 요소, 비스크립트 요소(HTML, 일반 text) 모두 포함
      - 주요 메소드
         01. out.print() : 줄바꿈 없이 출력
         02. out.println() : 줄바꿈 없이 출력 (뒤에 "<br>" 태그 추가해야)
         03. out.getBufferSize() : 출력 buffer의 전체 크기 (byte)
         04. out.getRemaining() : 현재 buffer의 사용량 (byte)
              +) 남은 buffer의 크기 : 03-04 해서 남은 거 (byte)

   7. config : JSP 페이지에 대한 설정 정보를 저장 -- 서블릿이 초기화되는 동안 참조할 정보를 전달

   8. page : JSP 페이지를 구현한 자바 클래스 인스턴스 -- this 포인터로 자기 자신을 참조할 수 있음

   9. exception : 에러 페이지에서 사용(전달)되는 예외 객체


  * 쿠키
   0. 정의
      - 서버와 클라이언트가 연결상태(로그인)를 유지하기 위해 사용하는 개념
      - 로그인 성공 시 ---> 서버에서 쿠키 발행 ---> 클라이언트의 임시 폴더에 쿠키 파일 생성
      - 서버 측: 페이지 이동 시 쿠키 파일의 정보를 참조해 서버-클라이언트 간 연결 상태를 유지
      - 페이지 이동 시 회원 정보를 받아서 가져가는 과정을 생략할 수 있음

   1. 쿠키 생성
      Cookie cook = new Cookie (String name, String, value);
      Cookie cook = new Cookie ("id", "test");

   2. 쿠키 추가: 쿠키 생성 후 반드시 response 객체의 addCookie() 메소드를 사용해 쿠키를 추가해야 함
      response.addCookie(cook);

   3. 쿠키 값 변경: 쿠키 생성 후 쿠키의 새로운 이름에 대응하는 값을 새롭게 지정할 때 setValue() 사용
      cook.setValue( new Value );

   4. 쿠키 수명 (지속시간) 설정
      cook.setMaxAge( int expiry );   ---> 단위: 초
      ex) 유효시간 1시간인 경우 cook.setMaxAge(60*60);   ---> 60초*60=60분=1시간

   5. 쿠키 읽기
      Cookie[] cook = request.getCookie();   ---> getter로 쿠키 정보 받아오는 것
      쿠키 정보를 받아 저장한 쿠키 배열에서
      쿠키 이름 받아오기 ---> cook.getName();
      쿠키의 값 받아오기 ---> cook.getValue();

   6. 쿠키 삭제 ---> 따로 삭제 메소드가 존재하지 않음 

<%
    Cookie[] cookies = request.getCookies();
    if (cookies != null && cookies.length > 0) {               //쿠키 배열에 저장된 쿠키가 존재할 경우 조건문 실행
        for (int i = 0 ; i < cookies.length ; i++) {                  //쿠키의 갯수만큼 반복문 실행

            if (cookies[i].getName().equals("name")) {          //getter로 쿠키 정보를 읽고, 쿠키가 존재한다면
                Cookie cookie = new Cookie("name", "");       // 아무 값도 가지고 있지 않은 쿠키 생성
                cookie.setMaxAge(0);                                                //0초간 유지되는 쿠키 -> 바로 사라짐
                response.addCookie(cookie);                               //위와 같은 쿠키를 쿠키 갯수만큼 생성 -> 쿠키가 삭제됨
            }//if end

        }//for end
    }
%>

+ Recent posts