Scope

장준휴·2023년 11월 3일
1

WEB

목록 보기
3/4

Scope?

난 Scope란 말을 처음 들었을 때 총 위 쪽에 달린 조준경을 이야기 하는 줄 알았다.
(물론 의미가 크게 다르진 않다)

jsp 에서 말하는 Scope란 jsp 페이지에서 사용되는 객체들은 jsp 내장 페이지든 페이지 내에서 만들어졌던 간에 모두 정해진 영역 안에서만 사용가능 하다는 개념이다.

Scope의 종류에는 총 4가지가 존재한다.
1. page
2. request
3. session
4. application

1. Page scope

페이지 스코프는 가장 작은 범위로, 실제 선언된 jsp 페이지 내에서만 사용 가능하다.

pageContext.setAttribute("name","페이지 영역");

String name = (String)pageContext.getAttribute("name");

setAttribute() 내부에 첫 번째 파라미터로는 String 타입이 들어가고 두 번째 인자로는 Object 타입이 들어간다. 즉, 모든 자료형이 들어갈 수 있으며 객체 들어갈 수 있다는 것이다.

Object타입이 저장되기 때문에 받아올 때도 객체타입이 리턴되기 때문에, 강제 형변환을 통해 받아줘야한다.

주 사용 용도로는 해당 jsp나 Servlet이 실행되는 동안에만 정보 유지하고자 할 때 사용된다.

2. Request scope

Reques 스코프는 클라이언트로부터 요청을 받고 응답할 때까지 사용이 가능하다.

	request.setAttribute("nick", "장준휴");

	String nick = (String)request.getAttribute("nick");

pageScope와 다르게 Servlet에서 사용할때는 HttpServletRequest 객체로 사용 가능하며 service() 메소드가 끝날 때 객체가 사라진다.
여기서 쿠키를 담아 전달한다.

주로 클라이언트의 요청을 다룰 때 사용하며 forward로 데이터 넘겨서 유지하고자 할 때 사용한다.

3. Session scope

Session scope는 세션이 유지되는 동안 사용 가능하다. 즉, 서버가 유지되는동안 사용가능하다(브라우저 창 닫기 전까지, 서버가 닫히기 전까지)

Request 와 마찬가지로 HttpSession 객체로 사용 가능 하며 주로 웹 브라우저별 변수를 관리하는 영역이다.

		session.setAttribute("nick", "session영역");
	
		String nick = (String)session.getAttribute("nick");

주로 로그인시 사용자 정보를 저장하고 싶을 때 사용한다.

4. Application scope

Application scope는 가장 넓은 범위까지 포함 할 수 있는것으로, 웹 어플리케이션이 시작되고 종료될 때 까지 사용이 가능하다.

다른 종류들과 ServletContext객체로 사용이 가능하며 웹 어플리케이션 당 한개의 객체를 사용한다.

	application.setAttribute("nick", "application영역");

	String nick = (String)application.getAttribute("nick");

전역적으로 사용되는 데이터 저장공간이기 때문에 모든 클라이언트들이공통적으로 사용하는 값을 저장하는데 유리하다.

정리하자면

page영역 : 하나의 페이지만

request 영역 : 한번의 요청까지만

session 영역 : 하나의 브라우저까지만

application 영역 : 하나의 서버, 어플리케이션 까지만(서버가 껐다 켜지면 x)

profile
나는야 토마토

0개의 댓글

관련 채용 정보