μ„Έμ…˜(session)

goΒ·2024λ…„ 7μ›” 22일

πŸ’‘ μ„Έμ…˜(session)에 λŒ€ν•΄μ„œ μ•Œμ•„λ΄…μ‹œλ‹€!

🦊 μ„Έμ…˜μ€ 슀쿱의 ν•œ μ’…λ₯˜λ‘œ μ•Œκ³ μžˆλŠ”λ°μš”. μ„Έμ…˜μ„ μ•ŒκΈ° 전에 μŠ€μΏ±μ— λŒ€ν•΄ κ°„λ‹¨ν•˜κ²Œ λ¨Όμ € μ•Œμ•„λ³΄κ³  κ°‘μ‹œλ‹€!


Scpoe

'Scope'은 JSP와 μ„œλΈ”λ¦Ώμ—μ„œ 데이터λ₯Ό μ €μž₯ν•˜κ³  μ ‘κ·Όν•  수 μžˆλŠ” λ²”μœ„λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. JSP와 μ„œλΈ”λ¦Ώμ—μ„œλŠ” λ„€ κ°€μ§€ λ²”μœ„(scope)λ₯Ό μ§€μ›ν•©λ‹ˆλ‹€.

  1. Page Scope : ν˜„μž¬ νŽ˜μ΄μ§€λ§Œ 데이터 μœ μ§€
  2. Request Scope : νŽ˜μ΄μ§€κ°„μ˜ μ—°κ²°μ‹œ ν•œλ²ˆλ§Œ 데이터 μœ μ§€(forwordμ‹œλ§Œ κ°€λŠ₯)
    3. Session Scope : μ›ΉλΈŒλΌμš°μ €λ₯Ό 닫을 λ™μ•ˆ ν˜Ήμ€ μ„Έμ…˜μ΄ μ’…λ£Œλ  λ•Œ κΉŒμ§€ μœ μ§€ (conf\web.xmlνŒŒμΌμ—μ„œ session ν•­λͺ©μˆ˜μ •μœΌλ‘œ μ‹œκ°„μ‘°μ •)
  3. Application Scope : μ„œλ²„κ°€ μ’…λ£Œν•  λ•Œ κΉŒμ§€ 데이터 μœ μ§€

Session

'Session'은 μ‚¬μš©μžκ°€ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μ ‘κ·Όν•˜λŠ” λ™μ•ˆ μƒνƒœλ₯Ό μœ μ§€ν•˜κΈ° μœ„ν•œ λ°©λ²•μž…λ‹ˆλ‹€. μ„Έμ…˜μ€ μ„œλ²„ μΈ‘μ—μ„œ μ‚¬μš©μžλ³„ 데이터λ₯Ό μ €μž₯ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. μ„Έμ…˜μ€ 일반적으둜 μΏ ν‚€λ₯Ό 톡해 ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ κ°„μ˜ κ³ μœ ν•œ μ„Έμ…˜ IDλ₯Ό κ΅ν™˜ν•˜μ—¬ μœ μ§€λ©λ‹ˆλ‹€.

  • μ €μž₯μ†Œ : session 객체
  • μœ νš¨μ„± : μ‚¬μš©μžκ°€ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μ ‘κ·Όν•˜μ—¬ μ„Έμ…˜μ„ μ‹œμž‘ν•˜κ³  μ’…λ£Œν•  λ•Œ κΉŒμ§€
<%
	// μ„Έμ…˜μ— 데이터 μ €μž₯
    session.setAttribute("userName","John Doe");
    
    // μ„Έμ…˜μ—μ„œ 데이터 읽기
    String userName = (String) session.getAttribute("userName");
%>

Scope Test (μ‹€μŠ΅)

λ¨Όμ € Scope Testλ₯Ό μ‹€ν–‰ ν•  μƒˆλ‘œμš΄ νŽ˜μ΄μ§€(scopeTest.html)λ₯Ό ν•˜λ‚˜ λ§Œλ“€μ–΄μ€λ‹ˆλ‹€.

<body>
<h1>scopeTest.html</h1>
	<form name="fm" action="scopeTest.jsp">
		<label>countκ°’:</label>
		<input type="text" name="count">
		<input type="submit" value="μ „λ‹¬ν•˜κΈ°">
	</form>
</body>

scopeTest.jsp도 λ§Œλ“€μ–΄μ€λ‹ˆλ‹€.

<body>
<h1>scopeTest.jsp</h1>
<jsp:useBean id="stest" class="com.yong.scope.ScopeTest" scope="application"></jsp:useBean>
<jsp:setProperty property="count" name="stest"/>
	<h3 style="color:blue;">count의 κ°’:<%=stest.getCount() %></h3>
	<a href="scopeTest_ok.jsp">λ‹€μŒμœΌλ‘œ...</a>
</body>

scopeTest.jspλ₯Ό μ‹€ν–‰ ν•  scope_ok.jspλ₯Ό λ§Œλ“€μ–΄μ€λ‹ˆλ‹€.

<body>
<h1>scopeTest_ok.jsp</h1>
<jsp:useBean id="stest" class="com.yong.scope.ScopeTest" scope="application"></jsp:useBean>
	<h3 style="color:red;">count의 κ°’:<%=stest.getCount() %></h3>
	<a href="scopeTest.jsp">μ΄μ „μœΌλ‘œ...</a>
</body>

μ‹€ν–‰ν™”λ©΄

πŸ’‘ μ΄ˆκΈ°ν™”λŠ” μ„œλ²„λ₯Ό μ€‘μ§€μ‹œν‚€λ©΄ λ©λ‹ˆλ‹€. (ν•˜μ§€λ§Œ λ‚¨λ°œν•˜λ©΄ μ•ˆλœλ‹€! μ™œ? μ„œλ²„μ— λŒ€ν•œ κ³΅κ°„λ§Œ μ°¨μ§€ν•΄μ„œ μžμ›λ‚­λΉ„κ°€ λ˜κΈ°λ•Œλ¬Έ)

profile
μ•ˆλ…•ν•˜μ„Έμš”!

0개의 λŒ“κΈ€