λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
JSP

[JSP] λ‚΄μž₯ 객체와 μ•‘μ…˜ νƒœκ·Έ - μ˜μ—­ 객체와 속성

by μ½”λ”©ν•˜λŠ” λΆ•μ–΄ 2021. 2. 10.
λ°˜μ‘ν˜•

β–Ά μ˜μ—­ 객체와 속성

κ³΅μœ λ˜λŠ” 데이터λ₯Ό 속성(Attribute)이라고 ν•˜λ©° 속성을 κ³΅μœ ν•  수 μžˆλŠ” 유효 λ²”μœ„λ₯Ό μ˜μ—­(Scope)이라고 ν•œλ‹€.

request κ°μ²΄λŠ” ν•΄λ‹Ή μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ‹€ν–‰λ˜κ³  μžˆλŠ” λ™μ•ˆμ— 속성을 μ‚¬μš©ν•  수 μžˆλ‹€. μ΄λ ‡κ²Œ ν•΄λ‹Ή μ˜μ—­μ—μ„œ 속성을 μ‚¬μš©ν•  수 μžˆλŠ” λ‚΄μž₯ 객체듀을 μ˜μ—­ 객체라고 λΆ€λ₯Έλ‹€.

 

μ˜μ—­

μ˜μ—­ 객체

μ†μ„±μ˜ 유효 λ²”μœ„

page

pageContext

ν•΄λ‹Ή νŽ˜μ΄μ§€κ°€ ν΄λΌμ΄μ–ΈνŠΈμ— μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜λŠ” λ™μ•ˆμ—λ§Œ 유효

(μ„œλΈ”λ¦Ώ μΈμŠ€ν„΄μŠ€μ˜ _jspServicer() λ©”μ„œλ“œκ°€ μ‹€ν–‰λ˜λŠ” λ™μ•ˆμ—λ§Œ 유효

request

request

ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ΄ μ²˜λ¦¬λ˜λŠ” λ™μ•ˆ 유효

(ν¬μ›Œλ”© λ˜λŠ” includeλ₯Ό μ΄μš©ν•˜λŠ” 경우 μ—¬λŸ¬ 개의 νŽ˜μ΄μ§€μ—μ„œλ„ μš”μ²­ 정보가 계속 μœ μ§€λ˜λ―€λ‘œ request μ˜μ—­μ˜ 속성을 μ—¬λŸ¬ νŽ˜μ΄μ§€μ—μ„œ κ³΅μœ ν•  수 μžˆλ‹€.)

session

session

μ„Έμ…˜μ΄ μœ μ§€λ˜λŠ” λ™μ•ˆ 유효

(ν•˜λ‚˜μ˜ λΈŒλΌμš°μ €(ν΄λΌμ΄μ–ΈνŠΈ)에 1개의 μ„Έμ…˜μ΄ μƒμ„±λ˜λ―€λ‘œ 같은 μ›ΉλΈŒλΌμš°μ € λ‚΄μ—μ„œ μ‹€ν–‰λ˜λŠ” νŽ˜μ΄μ§€λ“€μ΄ 속성을 κ³΅μœ ν•  수 μžˆλ‹€.)

application

application

μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ‹€ν–‰λ˜κ³  μžˆλŠ” λ™μ•ˆ 유효

(μ›Ή μ»¨ν…Œμ΄λ„ˆμ—μ„œ ν•΄λ‹Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ 였직 ν•˜λ‚˜λ§Œμ΄ μ‹€ν–‰λ˜λ―€λ‘œ 4가지 μ˜μ—­ 쀑 κ°€μž₯ 큰 μ˜μ—­μ— ν•΄λ‹Ήν•œλ‹€.)

μ›Ή μ»¨ν…Œμ΄λ„ˆλ₯Ό μ’…λ£Œν•˜λ©΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ˜μ—­ 객체가 μ†Œλ©Έλœλ‹€.

​

 

​

β–Ά 속성과 κ΄€λ ¨λœ λ©”μ„œλ“œλ“€

리턴 νƒ€μž…

λ©”μ„œλ“œλͺ…

ν•΄μ„€

Object

getAttribute(String key)

key κ°’μœΌλ‘œ λ“±λ‘λ˜μ–΄ μžˆλŠ” 속성을 Object νƒ€μž…μœΌλ‘œ 리턴

(key 값에 ν•΄λ‹Ήν•˜λŠ” 속성이 없을 경우 null을 리턴)

Enumeration

getAttributeNames()

ν•΄λ‹Ή μ˜μ—­μ— λ“±λ‘λ˜μ–΄ μžˆλŠ” λͺ¨λ“  μ†μ„±λ“€μ˜ 이름을 Enumeration νƒ€μž…μœΌλ‘œ 리턴

μ—†μŒ

setAttribute

(String key, Object obj)

ν•΄λ‹Ή μ˜μ—­μ— key κ°’μ˜ μ΄λ¦„μœΌλ‘œ obj 객체λ₯Ό 등둝

μ—†μŒ

removeAttribute(String key)

key κ°’μœΌλ‘œ λ“±λ‘λ˜μ–΄ μžˆλŠ” 속성을 제거

​

​

attributeTest1_Form.jsp (처음 μ‹œμž‘ νŽ˜μ΄μ§€)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Attribute Test Form</title>
</head>
<body>
<h2>μ˜μ—­κ³Ό 속성 ν…ŒμŠ€νŠΈ</h2>
<form action="attributeTest1.jsp" method="post">
<table border="1">
	<tr><td colspan="2">Application μ˜μ—­μ— μ €μž₯ν•  λ‚΄μš©λ“€</td></tr>
	<tr>
		<td>이름</td>
		<td><input type="text" name="name"></td>
	</tr>
	<tr>
		<td>아이디</td>
		<td><input type="text" name="id"></td>
	</tr>
	<tr>
		<td colspan="2"><input type="submit" value="전솑"></td>
	</tr>	
</table>
</form>
</body>
</html>

 

<μ‹€ν–‰ κ²°κ³Ό>

​

​

attributeTest1.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Attribute Test</title>
</head>
<body>
<h2>μ˜μ—­κ³Ό 속성 ν…ŒμŠ€νŠΈ</h2>
<%
request.setCharacterEncoding("UTF-8");
String name=request.getParameter("name");
String id=request.getParameter("id");
if(name != null && id != null) {
	application.setAttribute("name", name);
	application.setAttribute("id", id);
}
%>
<h3><%=name %>λ‹˜ λ°˜κ°‘μŠ΅λ‹ˆλ‹€.<br><%=name %>λ‹˜μ˜ μ•„μ΄λ””λŠ” <%=id %>μž…λ‹ˆλ‹€.</h3>
<form action="attributeTest2.jsp" method="post">
<table border="1">
	<tr><td colspan="2">Session μ˜μ—­μ— μ €μž₯ν•  λ‚΄μš©λ“€</td></tr>
	<tr>
		<td>e-mail μ£Όμ†Œ</td>
		<td><input type="text" name="email"></td>
	</tr>
	<tr>
		<td>μ§‘μ£Όμ†Œ</td>
		<td><input type="text" name="address"></td>
	</tr>
	<tr>
		<td>μ „ν™”λ²ˆν˜Έ</td>
		<td><input type="text" name="tel"></td>
	</tr>
	<tr>
		<td colspan="2"><input type="submit" value="전솑"></td>
	</tr>
</table>
</form>
</body>
</html>

 

<μ‹€ν–‰ κ²°κ³Ό>

​​

​

attributeTest2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Attribute Test</title>
</head>
<body>
<h2>μ˜μ—­κ³Ό 속성 ν…ŒμŠ€νŠΈ</h2>
<%
request.setCharacterEncoding("UTF-8");
String email=request.getParameter("email");
String address=request.getParameter("address");
String tel=request.getParameter("tel");
session.setAttribute("email", email);
session.setAttribute("address", address);
session.setAttribute("tel", tel);

String name=(String)application.getAttribute("name");
%>
<h3><%=name %>λ‹˜μ˜ 정보가 λͺ¨λ‘ μ €μž₯λ˜μ—ˆμŠ΅λ‹ˆλ‹€.</h3>
<a href="attributeTest3.jsp">ν™•μΈν•˜λŸ¬ κ°€κΈ°</a>
</body>
</html>

 

<μ‹€ν–‰ κ²°κ³Ό>

 

​

attributeTest3.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="java.util.Enumeration" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Attribute Test</title>
</head>
<body>
<h2>μ˜μ—­κ³Ό 속성 ν…ŒμŠ€νŠΈ</h2>
<table border="1">
	<tr><td colspan="2">Application μ˜μ—­μ— μ €μž₯된 λ‚΄μš©λ“€</td></tr>
	<tr>
		<td>이름</td>
		<td><%=application.getAttribute("name") %></td>
	</tr>
	<tr>
		<td>아이디</td>
		<td><%=application.getAttribute("id") %></td>
	</tr>
</table>
<br>
<table border="1">
	<tr><td colspan="2">Session μ˜μ—­μ— μ €μž₯된 λ‚΄μš©λ“€</td></tr>
<%
Enumeration e=session.getAttributeNames();
while(e.hasMoreElements()) {
	String attributeName=(String)e.nextElement();
	String attributeValue=(String)session.getAttribute(attributeName);
%>
	<tr>
		<td><%=attributeName %></td>
		<td><%=attributeValue %></td>
	</tr>
<%
}
%>
</table>
</body>
</html>

 

<μ‹€ν–‰ κ²°κ³Ό>

attributeTest3.jsp νŽ˜μ΄μ§€λ₯Ό λΈŒλΌμš°μ € μ’…λ£Œ ν›„ λ‹€μ‹œ μš”μ²­ν•œ ν™”λ©΄
attributeTest3.jsp νŽ˜μ΄μ§€λ₯Ό ν†°μΊ£ μ„œλ²„λ₯Ό μ’…λ£Œ ν›„ λ‹€μ‹œ μš”μ²­ν•œ ν™”λ©΄ ​

 

​

attributeTest4.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
pageContext.setAttribute("pageScope", "pageValue");
request.setAttribute("requestScope", "requestValue");
%>

pageValue = <%=pageContext.getAttribute("pageScope") %><br>
requestValue = <%=request.getAttribute("requestScope") %>
</body>
</html>

 

<μ‹€ν–‰ κ²°κ³Ό>

​

​

attributeTest5.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
pageContext.setAttribute("pageScope", "pageValue");
request.setAttribute("requestScope", "requestValue");
%>
<jsp:forward page="attributeTest5Result.jsp"></jsp:forward>
</body>
</html>

-forward μ•‘μ…˜ νƒœκ·Έλ‘œ μš”μ²­μ„ λ‹€λ₯Έ νŽ˜μ΄μ§€λ‘œ ν¬μ›Œλ”©ν–ˆμ„ κ²½μš°μ—λŠ” requestλ₯Ό κ³΅μœ ν•œλ‹€.

​

​

attributeTest5Result.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
pageValue = <%=pageContext.getAttribute("pageScope") %><br>
requestValue = <%=request.getAttribute("requestScope") %>
</body>
</html>

 

<μ‹€ν–‰ κ²°κ³Ό>

 

λ°˜μ‘ν˜•

λŒ“κΈ€