세션이란 ?
간단하게 내가 이해하는 바로는 클라이언트가 서버에 요청을 보냈을 때 클라이언트의 정보가 초기화 되지 않도록 정보를 계속 유지시켜주는 기능이다.
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 |