회화 기술 쿠키&세 션


1.1 WEB 개발 에서 세 션 은 무엇 입 니까?
 
       우리 가 브 라 우 저 를 열 면 브 라 우 저 에서 웹 사 이 트 를 방문 합 니 다.웹 사이트 에서 몇 개의 하이퍼링크 를 클릭 하 든 얼마나 많은 자원 을 방문 하 든 브 라 우 저 를 닫 을 때 까지 이 모든 과정 은 하나의 세 션 입 니 다.
 
1.2 세 션 에서 자주 해결 해 야 할 문제
 
      사용자 와 서버 의 상호작용 세 션 과정 에서 모든 사용 자 는 자신의 데이터 가 존재 합 니 다.예 를 들 어 로그 인 한 후에 로그 인 상 태 를 기억 하고 사용자 가 방문 한 자원 정보,인터넷 쇼핑 에서 선택 한 상품 정보 등 입 니 다.
       일부 세 션 데이터 에 대해 서 는 프로그램 이 이 데 이 터 를 저장 할 방법 을 생각해 야 할 때 가 있 습 니 다.
       ① 만약 에 사용자 가 한 사이트 에 로그 인 한 후에 아무리 갱신 하고 이동 하 더 라 도 사용자 의 기본 정 보 는 계속 존재 한다.만약 에 하고 싶 지 않 으 면 
           법 저장,매번 갱신 점프 할 때마다 데이터베이스 에 다시 가서 이 사용자 의 정 보 를 얻어 야 합 니 다.이렇게 하면 사용자 가 계속 유지 할 수 없습니다.
           로그 인 상태.   
       ② 만약 에 사용자 가 특정한 사이트 에서 쇼핑 을 할 때 몇 가지 다른 상품 을 골 랐 는데 이때 사용자 선택 을 저장 할 방법 이 없다 면 
           구 매 한 모든 상품 정보(카 트)사용 자 는 한 가지 물품 을 골 라 구 매 하면 한 번 지불해 야 한다.
       
1.3 세 션 데 이 터 를 저장 하 는 두 가지 기술 인 쿠키&session
   다음은 주로 본인 의 이해 이 고 사용 하 는 예 가 모두 기본 적 이 며 더 많은 사용 방법 은 API 를 조회 할 수 있 습 니 다.
1.3.1、cookie
쿠키 란 무엇 입 니까?
       쿠키 는 클 라 이언 트 의 기술 로 이러한 기술 을 이용 하여 일부 사용자 정 보 를 쿠키 형식의 파일 로 사용자 각자 의 브 라 우 저(서버 가 아 닌)에 저장 하여 이 정 보 를 편리 하 게 사용 할 수 있 습 니 다.
       쿠키 형식의 파일 은 보통 txt 문서 이 고 문서 에 특정한 형식 으로 데 이 터 를 저장 합 니 다.
      적당 한 정의:하나의 쿠키 는 웹 서버 가 사용자 컴퓨터 하드디스크 에 저장 한 작은 텍스트 정보 입 니 다.
                         텍스트 정 보 는'키-값'을 저장 하고 나중에 다시 가 져 올 수 있 습 니 다.                        
자바 에서 쿠키 사용:javax.servlet.http.Cookie 이 가방 을 가 져 오 려 면
 
      //1.클 라 이언 트 에 쿠키 를 추가 하고,
      public void addCookie( ){
//username 이라는 쿠키 를 새로 만 듭 니 다.해당 하 는 값 은 hzh 입 니 다.
            Cookie c1 = new Cookie("username","hzh");
//response 는 HttpServletResponse 에서 브 라 우 저 에 쿠키 를 추가 합 니 다.수명 주기 가 설정 되 어 있 지 않 습 니 다.
            response.addCookie(c1);
//password 라 는 쿠키 를 새로 만 들 었 습 니 다.해당 하 는 값 은 123 입 니 다.
 
         Cookie c2 = new Cookie("password","123");
         c2.setMaxAge(3600);     //생명주기 1 시간,초 단위 설정
         response.addCookie(c2);//브 라 우 저 에 쿠키 추가
 
    }
 
   쿠키 를 추가 할 때 수명 주 기 를 설정 하지 않 으 면 이 쿠키 는 클 라 이언 트 의 메모리 에 만 존재 하고 하 드 디스크 파일 에 기록 되 지 않 습 니 다(클 라 이언 트 가 닫 히 면 이 브 라 우 저 창 을 잃 어 버 렸 습 니 다)
   라 이 프 사이클 이 설정 되 어 있 으 면 이 쿠키 를 하 드 디스크 파일 에 기록 하고 설정 한 라 이 프 사이클 이 끝 날 때 까지 유효 하지 않 습 니 다.
 
//2.쿠키 파일 읽 기
public void getCookies(){
             Cookie[] cookies = request.getCookies();  //우선 브 라 우 저의 모든 쿠키 를 가 져 와 서 배열 로 돌아 가 야 합 니 다.
            for(Cookie c :cookies ){                      //username 이라는 쿠키 를 찾 습 니 다.
                  if(c.getName().equals("username")){
//쿠키 의 getName()과 getValue()를 통 해 각각 해당 하 는 쿠키 이름과 해당 하 는 값 을 가 져 옵 니 다.
                         System.out.println(c.getName()+"--->"+c.getValue());
                  }
            }
     }
 
/3.쿠키 파일 을 삭제 하고 쿠키 의 수명 주 기 를 0 으로 설정 하면 브 라 우 저 에서 삭제 합 니 다.
public void deleteCookie(){
//쿠키 를 삭제 하려 면 같은 이름 의 쿠키 를 다시 만 들 고 수명 주 기 를 0 으로 설정 하면 됩 니 다.
       Cookie c1 = new Cookie("username",null);
       c1.setMaxAge(0);
       response.addCookie(c1);  
   }
 
1.3.2、session
세 션 이 뭐 예요?
session 은 서버 쪽 의 기술 로 웹 서버 메모리 에서 모든 사용자 와 서버 를 위 한 기술 입 니 다.
 세 션 데이터 정 보 를 저장 하기 위해 메모리 공간 을 만 듭 니 다.
       서버 메모리 에 저장 되 어 있 기 때문에 세 션 이 끝나 면 해당 하 는 session 도 끝 납 니 다.
 
java 에서 session 사용 하기:javax.servlet.http.HttpSession 이 패 키 지 를 가 져 오 려 면
서버 에 session 을 추가 합 니 다.
    public void addSession(){
          HttpSession session = request.getSession();
          session.setAttribute("username","su"); //서버 에 username 이라는 session 을 추가 합 니 다.
     }
 
//2.session 값 가 져 오기
    public void getSession(){
          HttpSession session = request.getSession();
//보통 object 를 꺼 내 서 타 입 을 강하 게 바 꿔 야 합 니 다.
          String username =(String) session.getAttribute("username");
     }
 
//3.세 션 삭제
    public void deleteSession(){
          HttpSession session = request.getSession();
          session.removeAttribute("변수 이름"); //세 션 삭제
           session.invalidate(); //    session

     }

좋은 웹페이지 즐겨찾기