갈림길 이정표

[JSP] Bean을 통한 값 전달 본문

Programming Language/Servlet & JSP

[JSP] Bean을 통한 값 전달

이몽뇽 2020. 8. 26. 19:41

 

[para1.html]

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Bean을 통한 값 전달</title>
</head>
<body>
값 전달: 
<form action="para1.jsp" method="post">
<input type="text" name="message">
<input type="submit">
</form>
</body>
</html>

 

[Para1Class.java]

package pack;

public class Para1Class {
	private String message;	//Beans와 상관 없음
	
	public String getMessage() {	//상관있음
		return message + " 메세지 처리";
	}
	
	public void setMessage(String message) { //상관있음
		this.message = message;
	}
}
[para1.jsp]

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%
request.setCharacterEncoding("utf-8");	//→ 이거는 한글을 위해 필요
//String message = request.getParameter("message"); → Beans(get,setProperty)는 이것 때문에 받는 거 아님
%>
<jsp:useBean id="my" class="pack.Para1Class"/>	<!-- my객체가 생성됨 (포함관계,Singleton타입) -->

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Bean을 통한 값 받기</title>
</head>
<body>
* 클래스 멤버에 값 설정 후 참조하기 *<br>
<%--
//현재 내가 알고 있는 방법
my.setMessage(message);			//값을 부여
out.println(my.getMessage());	//값을 불러옴
--%>
<hr>
beans를 사용<br><!-- 자바(getter, setter)를 모르는 사람을 위해 -->
<jsp:setProperty property="message" name="my" /> <!-- setter임. --> <!-- 직접 넣을 땐 value="..." -->
<jsp:getProperty property="message" name="my"/> <!-- getter임. (my라는 객체에 message라는 값을 부여 및 불러옴) -->
<!-- request.getParameter가 이미 포함되어 있는 jsp 액션태그 (매우 편리!) -->
<!-- 정리: 클래스 포함관계로 새로운 instance 생성, request.getParameter, getter&setter  -->
<!-- '받아오는 값' 과 클래스 setter 메소드 명이 property=".." 의 .. 부분과 일치 해야함! -->
<!-- getter 메소드 명이 property=".." 의 .. 부분과 일치 해야함! -->

<!-- 이렇게 최소화 시켜 열고닫기 축소 = 가독성 및 클린코드 -->
<!-- ※ 단, 넘어오는 자료의 양이 너무 많을 경우 Form Bean을 사용 (레코드형 기억장소[DTO]로 받아냄) -->

</body>
</html>
Comments