[JSP] attribute

보람·2023년 3월 23일
0

JSP

목록 보기
6/17

attribute(속성) : 컨트롤 하기 위한 영역

  • page : 사용 x
    -> 페이지 내에서 지역변수처럼 사용
  • request
    -> http요청을 was가 받아서 웹 브라우저에게 응답할 때까지 변수가 유지되는 경우 사용
    -> request를 response 하면 사라짐
  • session
    -> 웹 브라우저 별로 변수가 관리되는 경우 사용
    -> 브라우저가 꺼지면 사라짐
  • application : 너무 광범위함
    -> 웹 어플리케이션이 시작되고 종료될 때까지 변수가 유지되는 경우 사용 ( 모든 클라이언트에게 공통적으로 무언가를 보여 줄 때 사용)

사용 메서드

  • setAttribute(String name, Object Value)
  • getAttribute(String name)
  • removeAttribute(String name) ;
  • getAttributeNames()

💡 예시

1. request.setAttribute();

		String userid = "apple";
		String userpw = "abcd1234";
		String username = "김사과";
		
		request.setAttribute("userid", userid);
		request.setAttribute("userpw", userpw);
		request.setAttribute("username", username);
		
		pageContext.forward("attribute2.jsp");        
		//response.sendRedirect("attribute2.jsp");

2. session.setAttribute();

		String userid = "apple";
		String userpw = "abcd1234";
		String username = "김사과";
       
		session.setAttribute("userid",userid); 
		session.setAttribute("userpw",userpw);
		session.setAttribute("username",username);
		
		pageContext.forward("attribute2.jsp");
		//response.sendRedirect("attribute2.jsp");

3. (String)request.getAttribute();

	<%
		String userid = (String)request.getAttribute("userid");
		String userpw = (String)request.getAttribute("userpw");
		String username = (String)request.getAttribute("username");
	%>
	
	아이디 : <%=userid %><br>
	비밀번호 : <%=userpw %><br>
	이름 : <%=username %><br>

4. (String)session.getAttribute();

	<%
		String userid = (String)session.getAttribute("userid");
		String userpw = (String)session.getAttribute("userpw");
 		String username = (String)session.getAttribute("username");
	%>
	
	아이디 : <%=userid %><br>
	비밀번호 : <%=userpw %><br>
	이름 : <%=username %><br>

request.set/getAttribute();

  • 해당 요청에서만 속성이 유지
  • 다음 요청에서는 이전 요청에서 설정한 데이터를 사용불가

session.set/getAttribute();

  • 세션 객체에 속성이 유지
  • 다음 요청에서도 이전 요청에서 설정한 데이터를 사용가능

pageContext.forward("attribute2.jsp")

  • "attribute2.jsp" 페이지가 현재 요청과 동일한 요청 내에서 처리
  • "attribute2.jsp" 페이지에서는 이전 요청에서 설정된 요청 속성을 사용가능
  • 이전 페이지와 "attribute2.jsp" 페이지 모두 브라우저에 표시

response.sendRedirect("attribute2.jsp")

  • "attribute2.jsp" 페이지로 새로운 요청을 보내고, 이전 페이지에서 설정된 요청 속성은 새로운 요청과는 관련이 없어짐
  • "attribute2.jsp" 페이지만 브라우저에 표시

💡 결과

  • 1request + 3request
    • forward("attribute2.jsp")
      • attribute.jsp : 정상
      • attribute2.jsp : null
    • redirect("attribute2.jsp")
      • attribute.jsp = attribute2.jsp
        • null
  • 1request + 4session
    • forward("attribute2.jsp")
      • attribute.jsp : null
      • attribute2.jsp : null
    • redirect("attribute2.jsp")
      • attribute.jsp = attribute2.jsp
        • null
  • 2session + 3request
    • forward("attribute2.jsp")
      • attribute.jsp : null
      • attribute2.jsp : null
    • redirect("attribute2.jsp")
      • attribute.jsp = attribute2.jsp
        • null
  • 2session + 4session
    • forward("attribute2.jsp")
      • attribute.jsp : 정상
      • attribute2.jsp : 정상
    • redirect("attribute2.jsp")
      • attribute.jsp = attribute2.jsp
        • 정상
profile
안녕하세요, 한보람입니다.

0개의 댓글