본문 바로가기
  • 실행력이 모든걸 결정한다
Spring 사전 준비/JSP Servlet

[JSP Servlet] 요청, 응답 관련 메소드 / 쿠키 / 세션

by 김코더 김주역 2020. 11. 30.
반응형

1. request 관련 메소드

  • getContextPath() : 웹 어플리케이션의 ContextPath 반환
  • getServerName() : 서버 이름 반환, [ 예) localhost ]
  • getServerPort() : 서버의 포트넘버 반환, [ 예) 8181 ]
  • getMethod() : GET, POST 방식 중 어떤 방식인지 반환
  • getSession() : 세션 객체 반환
  • getProtocol() : 해당 프로토콜을 반환, [ 예) HTTP/1.1 ]
  • getRequestURL() : 요청 URL 반환
  • getRequestURI() : 요청 URL에서 포트넘버와 쿼리 사이의 부분을 반환
  • setCharacterEncoding() : 요청 시 인코딩 형태를 설정, [ 예) setCharacterEncoding("EUC-KR") ]
  • getQueryString() : 쿼리스트링(form 데이터)을 반환

* URL은 자원의 위치, URI는 자원의 식별자이다. 모든 URL은 URI이다.

 

* 쿼리 스트링에 대한 설명은 해당 포스팅을 참조할 것

kimcoder.tistory.com/139?category=893798

 

[Node.js] URL의 query string 추출 (GET방식)

Nodejs은 서버 환경에서 자바스크립트로 애플리케이션을 만들 수 있게 해주는 프레임워크이다. 아래 사진을 보면 URL은 http://localhost:3000/?name=kimcoder&age=23 인 것을 볼 수 있다. 클라이언트 쪽에서는

kimcoder.tistory.com

 

 

2. response 관련 메소드

  • getCharacterEncoding() : 응답할 때 문자의 인코딩 형태를 반환
  • addCookie(Cookie) : 쿠키 지정
  • sendRedirect(URL) : 지정한 URL로 이동

 

 

3. 쿠키

- 연결이 끊겼을 때에도 정보를 지속적으로 유지하기 위한 수단으로, 클라이언트에 존재한다

- 서버에서 생성해주는 데이터(세션 ID 등등)를 저장하는 곳이다.

- 쿠키의 장점은 유저들에게 최적화된 웹 환경을 제공하는 것이다.

 

1) 쿠키 생성 방법

쿠키 클래스 생성 -> setter을 이용하여 속성 설정 -> response.addCookie() 메소드를 이용하여 response 객체에 쿠키 탑재

개발자가 생성한 쿠키 객체는 1번째 인덱스부터 담긴다. 0번째 인덱스에 해당하는 쿠키는 톰캣에서 자동으로 만들어준 "JSESSIONID" 이라는 쿠키다.

 

2) 쿠키 받는 방법

Cookie[] cookies = request.getCookies();

 

3) 쿠키 지우는 방법

쿠키를 받아서 그 쿠키의 수명을 0초로 만들면 된다.

그리고 적용된 쿠키를 다시 탑재해서 다음 페이지에도 적용되게 한다.

cookies[i].setMaxAge(0);
response.addCookie(cookies[i]);

 

4) 쿠키 관련 메소드

  • setMaxAge() : 쿠키 유효기간 설정
  • setpath() : 쿠키사용의 유효 디렉토리를 설정
  • setValue() : 쿠키의 값 설정
  • setVersion() : 쿠키의 버전 설정
  • setComment() : 쿠키에 설명 추가
  • getMaxAge() : 쿠키의 유효기간 반환
  • getName() : 쿠키의 이름 반환
  • getPath() : 쿠키사용의 유효 디렉토리 정보 반환
  • getValue() : 쿠키의 값 반환
  • getVersion() : 쿠키의 버전 반환

 

5) 쿠키 생성 예제

- 쿠키를 생성하는 jsp 파일 -

<%
    Cookie cookie = new Cookie("cookie1","ck_user1"); // 이름,값 세팅
    cookie.setMaxAge(60*60); //3600초는 1시간
    response.addCookie(cookie); //주는 쪽이므로 response
%>

<a href="경로">...</a>

* 다음 페이지로 쿠키가 전달된다.

* 참고로 setMaxAge(-1) 은 브라우저를 끌 때 쿠키를 삭제하라는 의미이다.

 

 

4. 세션

세션도 쿠키처럼 서버와의 관계를 유지하기 위한 수단이며, 서버상에 존재하는 저장소다.

 

1) 세션 생성 방법

JSP 컨테이너에서 자동으로 생성해주는데, Session 내부 객체의 메소드를 이용하여 세션의 속성을 지정할 수 있다.

 

2) 세션 관련 메소드

사용 : session.메소드()

  • setAttribute(속성 이름, 속성 값) : 세션에 데이터를 저장, 여러 개 저장 가능
  • getAttribute(속성 이름) : 세션에서 데이터를 Object 형태로 반환
  • getAttributeNames() : 세션에 저장되어 있는 모든 데이터의 name값을 반환, Enumeration 이용
<%@page import="java.util.Enumeration"%>

...

<body>
    <%
        Enumeration enumeration = session.getAttributeNames();
        while(enumeration.hasMoreElements()){
            String names = enumeration.nextElement().toString();
            ...
        }
    %>
</body>


  • getId() : 자동 생성된 세션의 유니크한 Id를 반환
  • isNew() : 세션이 최초 생성된 것인지 boolden 형태로 반환
  • getMaxInactiveInterval() : 세션의 유효기간을 초 단위로 반환, 최근 요청시점을 기준으로 카운트됨. web.xml에 들어가보면 기본 설정값이 30분인 것을 알 수 있다.
  • removeAttribute() : 세션에서 특정 데이터를 제거
  • invalidate() : 세션의 모든 데이터를 제거
반응형

댓글