JSP

[JSP] JSPμ—μ„œ μžλ°”λΉˆ μ‚¬μš©ν•˜κΈ°

μ½”λ”©ν•˜λŠ” λΆ•μ–΄ 2021. 2. 24. 04:57
λ°˜μ‘ν˜•

β–Ά JSPμ—μ„œ μžλ°”λΉˆ μ‚¬μš©ν•˜κΈ°

<jsp:useBean/> νƒœκ·Έ = μžλ°”μ—μ„œ new μƒμ„±μž. μžλ°”λΉˆ 객체λ₯Ό μƒμ„±ν•˜κΈ° μœ„ν•œ μ•‘μ…˜ νƒœκ·Έμ΄λ‹€.

<jsp:setProperty/> νƒœκ·Έ = μžλ°”μ—μ„œ set() λ©”μ„œλ“œ. μžλ°”λΉˆ 클래슀의 속성 값을 μ„€μ •ν•˜κΈ° μœ„ν•œ νƒœκ·Έμ΄λ‹€.

​

​​

예제 1) <jsp:setProperty/> νƒœκ·Έμ˜ μ—­ν• 

​

BeanTest2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
    <jsp:useBean id="beantest" class="test.BeanTest" scope="page"/>
    <jsp:setProperty name="beantest" property="name" value="BeanTest!"/>
    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaBean Test</title>
</head>
<body>
<b>μžλ°”λΉˆ μ‚¬μš© 예제</b>
<h3><%=beantest.getName() %></h3>
</body>
</html>

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

​

​​

예제 2) λ§Œμ•½ ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ nameμ΄λΌλŠ” μ΄λ¦„μ˜ νŒŒλΌλ―Έν„° 값이 μ „μ†‘λ˜μ–΄ 였고 이 값을 name 속성 κ°’μœΌλ‘œ ν• λ‹Ήν•˜κ³  μ‹Άμ„λ•Œ

​

beanTest.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="beanTest3.jsp">
	이름 :<input type="text" name="name"/>
	<br/>
	<input type="submit" value="전솑"/>
</form>
</body>
</html>

 

 

beanTest3.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <jsp:useBean id="beantest" class="test.BeanTest" scope="page"/>
    <jsp:setProperty name="beantest" property="name" param="name"/>
    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaBean Test</title>
</head>
<body>
<b>μžλ°”λΉˆ μ‚¬μš© 예제</b>
<h3><%=beantest.getName() %></h3>
</body>
</html>

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

​​

​

예제 3 ) ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ „μ†‘λ˜μ–΄ μ˜€λŠ” νŒŒλΌλ―Έν„° 이름이 빈객체의 속성λͺ…κ³Ό λͺ¨λ‘ κ°™λ‹€λ©΄ ν•œ λ²ˆμ— ν• λ‹Ήν•  속성λͺ…을 ν• λ‹Ήν•  수 μžˆλ‹€.

property="*"둜 μ„€μ •ν•˜λ©΄ ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ „μ†‘λ˜μ–΄ μ˜€λŠ” νŒŒλΌλ―Έν„° 값이 λͺ¨λ‘ 같은 μ΄λ¦„μ˜ 빈 객체의 속성 κ°’μœΌλ‘œ μžλ™μœΌλ‘œ ν• λ‹Ήλœλ‹€.

​

 

1. 정보λ₯Ό μ €μž₯ν•˜λŠ” 빈 클래슀λ₯Ό μž‘μ„±ν•œλ‹€.

​

BeanTest2.java

package test;

public class BeanTest2 {
	private String name;
	private String addr;
	private String email;
	private String birthday;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getAddr() {
		return addr;
	}

	public void setAddr(String addr) {
		this.addr = addr;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getBirthday() {
		return birthday;
	}

	public void setBirthday(String birthday) {
		this.birthday = birthday;
	}
}

 

 

2. ν΄λΌμ΄μ–ΈνŠΈ νŽ˜μ΄μ§€λ₯Ό μž‘μ„±ν•œλ‹€.

​

beanTest2.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
	#formArea {
		margin:auto;
		width:400px;
		border:1px solid black;
	}
	h1, fieldset {
		text-align:center;
	}
</style>
</head>
<body>
<section id="formArea">
	<h1>property="*" ν…ŒμŠ€νŠΈ</h1>
	<form action="beanTest4.jsp" method="post">
		<fieldset>
			<label for="name">이름 : </label><input type="text" name="name" id="name"/><br>
			<label for="addr">μ£Όμ†Œ : </label><input type="text" name="addr" id="addr"/><br>
			<label for="email">μ΄λ©”μΌμ£Όμ†Œ : </label><input type="text" name="email" id="email"/><br>
			<label for="birthday">생년월일 : </label><input type="date" name="birthday" id="birthday"/><br>
			<input type="submit" value="전솑">
		</fieldset>
	</form>
</section>
</body>
</html>

 

​

3. bean κ΄€λ ¨ μ•‘μ…˜ νƒœκ·Έλ₯Ό μ‚¬μš©ν•˜λŠ” beanTest4.jsp νŽ˜μ΄μ§€λ₯Ό μž‘μ„±ν•œλ‹€.

​

beanTest4.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	request.setCharacterEncoding("UTF-8");
%>
<jsp:useBean id="beantest" class="test.BeanTest2" scope="page"/>
<jsp:setProperty name="beantest" property="*"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaBean Test</title>
</head>
<body>
<h1>μžλ°”λΉˆ 속성 κ°’ 좜λ ₯</h1>
<b>이름 : </b><%=beantest.getName() %><br>
<b>μ£Όμ†Œ : </b><%=beantest.getAddr() %><br>
<b>이메일 μ£Όμ†Œ : </b><%=beantest.getEmail() %><br>
<b>생년월일 : </b><%=beantest.getBirthday() %><br>
</body>
</html>

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

 

 

 

심화 ) ${beantest.속성 κ°’}

​

beanTest4.jsp (μˆ˜μ •λ³Έ)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	request.setCharacterEncoding("UTF-8");
%>
<jsp:useBean id="beantest" class="test.BeanTest2" scope="page"/>
<jsp:setProperty name="beantest" property="*"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaBean Test</title>
</head>
<body>
<h1>μžλ°”λΉˆ 속성 κ°’ 좜λ ₯</h1>
<b>이름 : </b><%=beantest.getName() %><br>
<h3>${beantest.name}</h3>
<b>μ£Όμ†Œ : </b><%=beantest.getAddr() %><br>
<h3>${beantest.addr}</h3>
<b>이메일 μ£Όμ†Œ : </b><%=beantest.getEmail() %><br>
<h3>${beantest.email}</h3>
<b>생년월일 : </b><%=beantest.getBirthday() %><br>
<h3>${beantest.birthday}</h3>
</body>
</html>

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

 

 

 

*<jsp:getProperty/> νƒœκ·Έ = μžλ°”μ—μ„œ get() λ©”μ„œλ“œ

<jsp:getProperty/> νƒœκ·ΈλŠ” μžλ°”λΉˆ 클래슀의 속성 값을 κ°€μ Έμ˜€κΈ° μœ„ν•œ νƒœκ·Έμ΄λ‹€.

<jsp:getProperty/> νƒœκ·Έλ„ <jsp:setProperty/> νƒœκ·Έμ™€ λ§ˆμ°¬κ°€μ§€λ‘œ 멀버 λ³€μˆ˜μ—μ„œ 값을 직접 κ°€μ Έμ˜€μ§€ μ•ŠλŠ”λ‹€.

​

beanTest5.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
    <jsp:useBean id="beantest" class="test.BeanTest" scope="page"/>
    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaBean Test</title>
</head>
<body>
<b>μžλ°”λΉˆ μ‚¬μš© 예제</b>
<h3><%=beantest.getName() %></h3>
<h3><jsp:getProperty name="beantest" property="name"/></h3>
</body>
</html>

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

 

 

 

*μžλ°”λΉˆμ˜ μ˜μ—­ = <jsp:useBean/>의 scope 속성

μžλ°”λΉˆμ˜ μ˜μ—­(scope)은 page, request, session, application μ΄λ ‡κ²Œ 4κ°€μ§€λ‘œ λ‚˜λˆ„μ–΄μ§€λ©° scopeλ₯Ό μ§€μ •ν•˜μ§€ μ•Šμ„ 경우 κΈ°λ³Έ 값은 pageκ°€ λœλ‹€.

μ˜μ—­

μ„€λͺ…

page

빈 객체 곡유 λ²”μœ„κ°€ ν˜„μž¬ νŽ˜μ΄μ§€μ˜ λ²”μœ„μ—λ§Œ ν•œμ •λœλ‹€.

νŽ˜μ΄μ§€κ°€ λ³€κ²½λ˜λ©΄ κ³΅μœ κ°€ μœ μ§€λ˜μ§€ μ•ŠλŠ” scope이닀.

request

request μš”μ²­μ„ λ°›κ³  처리λ₯Ό μ™„λ£Œν•  λ•ŒκΉŒμ§€ μƒμ‘΄λ˜λŠ” scope이닀.

session

ν΄λΌμ΄μ–ΈνŠΈλ‹Ή ν•˜λ‚˜μ”© ν• λ‹Ήλ˜λŠ” μ˜μ—­μ΄λ‹€. ν΄λΌμ΄μ–ΈνŠΈκ°€ λΈŒλΌμš°μ €λ₯Ό μ’…λ£Œν•˜κΈ° μ „κΉŒμ§€ μœ μ§€λ˜λŠ” scope이닀.

application

μ‚¬μ΄νŠΈ μ „μ²΄μ˜ λ²”μœ„λ₯Ό κ°€μ§€λ©°, μ„œλ²„κ°€ μ’…λ£Œλ˜κΈ° μ „μ—λŠ” 계속 μœ μ§€λ˜λŠ” scope이닀.

​

λ°˜μ‘ν˜•