Developer Note/국비과정 수업내용 정리&저장

24년 10월 22일

DH_PARK 2024. 10. 23. 23:57

세션이란 ?

간단하게 내가 이해하는 바로는 클라이언트가 서버에 요청을 보냈을 때 클라이언트의 정보가 초기화 되지 않도록 정보를 계속 유지시켜주는 기능이다.

web 서버는 웹 컨테이너 상태를 유지하기 위해 정보를 저장하고 , 저장한 정보는 브라우저를 닫을 때 , 일정시간이 지날 때 , 서버에서 세션을 삭제했을 때 삭제가 이루어진다.

세션에 값을 저장할때는 session객체를 사용하면 된다.

session.setAttribute("이름","값");
이 메소드는 이름 : 값 형태로 세션에 정보를 저장한다.
정보를 가져올 때는
session.getAttribute("이름");
이 때 값을 반환받을 때는 타입이 Object 타입으로 반환받기 때문에 형변환을 해주어야 한다.
세션의 값이 저장되어 있는지 확인할 때는
Enumerationd 이라는 일종의 반복자로 session.getAttribute 해서 값을 순회하면서 확인한다

while(attr.hasMoreElements())	{다음 값이 존재하면 true , 값이 없다면 false 를 반환한다.

	String attrName = (String)attr.nextElement(); //다음 값을 순차적으로 꺼내 리턴
	String attrValue = (String)session.getAttribute(attrName);
	out.println("세션의 속성명은"+attrName+" 이고 ");
	out.println("세션의 속성값은"+attrValue+"이다.<br>");
}
여기서 반복문으로 모든 값을 확인할 수 있게한다

세션값을 삭제할 때에는
session.invalidate() 메소드로 모든 세션값을 삭제할 수 있다.
하나만 삭제하고 싶을 때는
session.removeAttribute(name)
특정 name 값의 세션 정보를 삭제한다

Request (내장 객체)

사용자 요청과 관련된 기능을 제공하는 내장 객체로 클라이언트에서 서버로 전달되는 정보를 처리하기 위해서 사용한다.

request 의 메서드

  • getParameter(name) : 파라미터 변수 name 에 저장된 변수를 얻어내는 메소드이다. 이 때 변수의 값은 String 으로 반환된다. 문자열 name 과 이름이 같은 매개변수의 값을 가져온다.

※ 매개변수 값을 문자열로 받는 이유 ? HTTP 는 텍스트 기반 protocol 이라서 form 데이터나 URL 파라미터 등은 모두 문자열로 전송된다.

  • getAttribute(name) : 이름이 neme인 속성의 값을 구한다. 존재하지 않을 경우 null 반환한다. (key 값을 가져오는 거임)
  • setAttribute(name,value) : 이름(key)이 name 이고 값을 value 로 지정한다
  • getContentType() : 클라이언트가 요청한 정보를 전송할 때 사용한 content 타입을 리턴한다.
  • getSession() : 현재 세션 객체를 가져온다.

Resoponse (내장 객체)

사용자 요청(request) 를 처리하고 응답을 다른 페이지로 전달하는 등의 기능을 제공한다.

response.sendRedirect(URL) : response 객체에서 가장 많이 사용되는 기능 중 하나인 기능이다.

리다이렉트란 ? 웹 서버가 웹브라우저에게 다른 페이지로 이동하라고 지시하는 것을 의미한다. 간단히 말하자면 특정 페이지를 실행한 후 지정한 페이지로 이동하길 원할 때 사용한다.

Request 와 반대되는 개념임.

response 의 메서드

  • setContent(type) : 문자열 형태의 type 에 지정된 MIME 으로 Content tyle 을 설정한다
  • setHeader(name,value) : 문자열 name 의 이름으로 문자열 value 의 값을 헤더로 세팅한다.

Context 란 ?

웹프로그래밍을 위한 물리적인 디렉토리 구조를 이야기함.

JSP 에서 같은 설정이나 페이지를 공유하는 장소 ? 객체 ?

ServletContext 객체는 JSP 페이지 등에서 파일 내 전역 자원에 접근할 때 사용된다.

conetxt Path 는?

웹 애플리케이션이 서버에서 동작하는 기본 URL 경로를 의미한다.

예를 들어, **http://localhost:8080/myapp**에서 **/myapp**이 Context Path다능.


세션이란 ?

간단하게 내가 이해하는 바로는 클라이언트가 서버에 요청을 보냈을 때 클라이언트의 정보가 초기화 되지 않도록 정보를 계속 유지시켜주는 기능이다.

web 서버는 웹 컨테이너 상태를 유지하기 위해 정보를 저장하고 , 저장한 정보는 브라우저를 닫을 때 , 일정시간이 지날 때 , 서버에서 세션을 삭제했을 때 삭제가 이루어진다.

세션에 값을 저장할때는 session객체를 사용하면 된다.

session.setAttribute("이름","값");
이 메소드는 이름 : 값 형태로 세션에 정보를 저장한다.
정보를 가져올 때는
session.getAttribute("이름");
이 때 값을 반환받을 때는 타입이 Object 타입으로 반환받기 때문에 형변환을 해주어야 한다.
세션의 값이 저장되어 있는지 확인할 때는
Enumerationd 이라는 일종의 반복자로 session.getAttribute 해서 값을 순회하면서 확인한다

while(attr.hasMoreElements())	{다음 값이 존재하면 true , 값이 없다면 false 를 반환한다.

String attrName = (String)attr.nextElement(); //다음 값을 순차적으로 꺼내 리턴 String attrValue = (String)session.getAttribute(attrName); out.println("세션의 속성명은"+attrName+" 이고 "); out.println("세션의 속성값은"+attrValue+"이다.<br>");

}
여기서 반복문으로 모든 값을 확인할 수 있게한다

세션값을 삭제할 때에는
session.invalidate() 메소드로 모든 세션값을 삭제할 수 있다.
하나만 삭제하고 싶을 때는
session.removeAttribute(name)
특정 name 값의 세션 정보를 삭제한다

쿠키란 ?

만들어진 세션을 찾기위한 위치정보

처음 접속했을 때 세션아이디를 쿠키로 줌

로그인 페이지에서 로그인 프로세스 true 라면 main 페이지로 이동 false 라면 로그인 페이지로 다시 이동 (이떄는 forwarding) 로그아웃이면 로그아웃 process ,

세션 내장객체는 일정 시간동안은 계속 내용을 유지하는 객체.

클라이언트가 서버에 요청을 보내면 서버는 그 클라이언트의 상태 정보를 유지하기 위해 세션을 생성하게 된다. 그리고 클라이언트가 다시 요청을 보낼때도 유지되고 있는 세션값을 알기 위해 세션값의 고유 id 인 “쿠키”를 부여받는다. 사용자는 요청 시 쿠키를 같이 전달해 현재 사용자 상태를 전달한다.

 

out.wrtie() 와 out.println() 메서드의 차이점

  • out.write() : 줄바꿈 없음 . 바이트 기반 스트림에서 사용됨 , OutoutStream 의 메서드
  • out.println() : 줄바꿈 있음. PrintStream 의 메서드

 

'Developer Note > 국비과정 수업내용 정리&저장' 카테고리의 다른 글

24년 10월 29일  (0) 2024.11.03
24년 10월 25일  (0) 2024.10.25
24년 10월 18일  (1) 2024.10.21
24년 10월 17일  (1) 2024.10.21
24년 10월 15일  (1) 2024.10.21