본문 바로가기

JSP

scope와 종류

 

 

JSP에서 4가지 Scope

  1. Page Scope: 페이지 내에서 지역변수 처럼 사용 가능.
  2. Request Scope: http요청을 WAS가 받아서 웹 브라우저에게 응답할 때까지 변수가 유지되는 경우 사용.
  3. Session Scope: 웹 브라우저 별로 변수가 관리되는 경우 사용.
  4. Application Scope: 웹 어플리케이션이 시작되고 종료될 때 까지 변수가 유지되는 경우 사용 - (모든 클라이언트에게 공통적으로 무언가 보여줄 떼 사용)

Page Scope

  • 실제 선언된 jsp페이지 내에서만 사용가능
  • JSP 페이지에서 PageContext라는 내장 객체로 사용가능하다.
  • forward 를 사용한 경우 해당 Page Scope에 지정된 변수는 사용할 수 없다.
  • 사용법은 다른 Scope와 같지만, 마치 지역변수처럼 사용되는 것이 다른 Scope들과 다르다.
  • pageScope에 값을 저장한 후 EL 표기법 사용
  • 해당 JSP나 Servlet이 실행되는 동안에만 정보 유지하고자 할 때 사용 주 사용 용도 값

forward방식 과 sendRedirect방식 (tistory.com)

 

forward방식 과 sendRedirect방식

1.forward 요청이 들어오면 서버 내에서 이동해야할 페이지로 알아서 이동 요청이 1번, 처음 요청했던 request객체에 담긴 정보(id,pw,등등)가 유효함 요청이 1번이라서 네트워크 트래픽이 발생x, 실행

studymemory123.tistory.com

예시)

<body>
<%
	pageContext.setAttribute("nick", "페이지 영역");

	//page 영역에서 값 가져오기 
	String nick = (String)pageContext.getAttribute("nick");
%>
	닉네임 : <%=nick %><br>
	닉네임(EL) : ${nick}<br>
<a href="Ex01_pageScope2.jsp">2페이지로 이동</a>
</body>

 

<body>
<%
	String nick = (String) pageContext.getAttribute("nick");//다운캐스팅
%>

닉네임 : <%=nick%>
</body>

값 저장 방법

pageContext.setAttribute(네임값(String), 실제값(Object))

pageContext.getAttribute(네임값(String) 

 

Request Scope

  • httpServletRequest 객체를 사용한다. 
  • JSP에서는 request내장 변수를 사용하고, Servlet에서는 HttpServletRequest객체를 사용한다.
  • 값을 저장할 때는 request객체의 setAttribute()메소드를 사용한다.
  • 값을 읽어올 때는 request객체의 getAttribute()메소드를 사용한다.
  • foward시 값을 유지하고자 사용한다.

request scope예시)

 

 

=======================================================================================

<%
	RequestDispatcher rd=request.getRequestDispatcher("test2의 경로");
	rd.forward(request,response);
%>

 

 

forward예시)

경로는 1번이지만&nbsp;결과는 2번의 출력과 1번의 id값을 가져와서 넣어줌

값 저장 방법

request.setAttribute(네임값(String), 실제값(Object))

request .getAttribute(네임값(String) )

 

 

Session Scope

  • 웹 브라우저별로 변수를 관리하고자 할 경우 사용
  • session scope =브라우저,즉 크롬이면 크롬만넘겨주고 ,Explorer에 넘겨줄수없다
  • HttpSession 인터페이스를 구현한 객체를 사용한다.
  • JSP에서는 session내장 변수를 사용한다.
  • 값을 저장할 때는 session객체의 setAttribute()메소드를 사용한다.
  • 값을 읽어올 때는 session 객체의 getAtrribute()메소드를 사용한다.
  • 예를 들어, 장바구니, 구매목록, 결제내역, 로그인, 회원가입 등과 같이 개별 클라이언트의 정보를 유지할 필요가 있을때 사용.

Session (tistory.com)

 

Session

저장위치 : Server PC 저장형식 : Object

studymemory123.tistory.com

예시)

만약 크롬에서 나타난 결과값이 엣지에도 나온다면 캐시를 삭제 해보자

캐시 삭제 (tistory.com)

 

 

값 저장방법

session.setAttribute(네임값(String), 실제값(Object))

session.getAttribute(네임값(String)

 

 

ApplicationScope

  • 웹 어플리케이션이 시작되고 종료될 때까지 변수를 사용할 수 있다.
  • ServletContext 인터페이스를 구현한 객체를 사용한다.
  • jsp에서는 application내장 객체를 이용한다.
  • 웹 어플리케이션 하나당 하나의 application객체를 이용한다.
  • 값을 저장할 때는 application 객체의 setAttribute()메소드를 사용한다.
  • 값을 읽어올 때는 application 객체의 getAttribute()메소드를 사용한다.
  • 모든 클라이언트가 공통으로 사용해야 할 값들이 있을 때 사용.

예시)

값 저장방법

application.setAttribute(네임값(String), 실제값(Object))

application.getAttribute(네임값(String)

 

 

 

 

 

공통 함수

  • setAttribute(string key, object value): key와 value 형식으로 값을 할당한다.
  • getAttribute(string key) : key값으로 value값을 리턴 받는다.

'JSP' 카테고리의 다른 글

dependency  (0) 2023.11.02
Maven  (0) 2023.11.02
Session  (0) 2023.11.01
Cookie  (0) 2023.11.01
URLEncoder와 URLDecoder의 차이  (0) 2023.11.01