본문 바로가기
학습/JSP

22. useBean, setProperty, getProperty 액션 태그 사용

by Elfen Lied 2022. 11. 17.
반응형

- 자바 빈을 이용한 회원 정보 조회

 

파일 트리

 

 

MemberBean 클래스 생성

package sec01.ex01;

import java.sql.Date;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class MemberBean {
	private int mno;
	private String id;
	private String pwd;
	private String name;
	private String email;
	private Date joinDate;
}

 

 

MemberDAO 클래스 생성

package sec01.ex01;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class MemberDAO {
	private DataSource dataSource;
	
	public MemberDAO() {
		try {
			Context ctx = new InitialContext();
			Context env = (Context) ctx.lookup("java:/comp/env");
			dataSource = (DataSource) env.lookup("jdbc/oracle");
		} catch (NamingException e) {
			e.printStackTrace();
		}
	}
	
	public List<MemberBean> listMember() {
		List<MemberBean> list = new ArrayList<MemberBean>();
		String query = "SELECT * FROM T_MEMBER ORDER BY joinDate DESC";
		try (
			Connection conn = dataSource.getConnection();
			PreparedStatement pstmt = conn.prepareStatement(query);
			ResultSet rs = pstmt.executeQuery();
		){
			while (rs.next()) {
				MemberBean bean = new MemberBean();
				bean.setMno(rs.getInt("mno"));
				bean.setId(rs.getString("id"));
				bean.setPwd(rs.getString("pwd"));
				bean.setName(rs.getString("name"));
				bean.setEmail(rs.getString("email"));
				bean.setJoinDate(rs.getDate("joinDate"));
				list.add(bean);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return list;
		
	}
}

 

 

 

member.jsp 생성

<%@page import="sec01.ex01.MemberBean"%>
<%@page import="java.util.List"%>
<%@page import="sec01.ex01.MemberDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	// MemberDAO dao = new MemberDAO();
	// List<MemberBean> list = dao.listMember();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%-- <%=list %> --%>
	<jsp:useBean id="dao" class="sec01.ex01.MemberDAO" />
	<%
		List<MemberBean> list = dao.listMember();
	%>
	<% if(list.size() != 0) { 
		for(MemberBean bean : list) { %>
			<div>
				아이디 : <%=bean.getId() %><br>
				비밀번호 : <%=bean.getPwd() %><br>
				이름: <%=bean.getName() %><br>
				이메일 : <%=bean.getEmail() %><br>
				가입일 : <%=bean.getJoinDate() %><br>
			</div>
			<br>
	<% } %>
		
	<% } %>	
</body>
</html>

 

member.jsp에서 실행하면

 


 

- setProperty

 

memberForm.html 생성

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="member.jsp" method="post">
		아이디 : <input type="text" name="id"><br>
		비밀번호 : <input type="password" name="pwd"><br>
		이름 : <input type="text" name="name"><br>
		이메일 : <input type="email" name="email"><br>
		<button>가입하기</button>
	</form>
</body>
</html>

 

 

member.jsp 수정

<%@page import="sec01.ex01.MemberBean"%>
<%@page import="java.util.List"%>
<%@page import="sec01.ex01.MemberDAO"%>
<%@ 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>
	<%-- <%=list %> --%>
	<jsp:useBean id="dao" class="sec01.ex01.MemberDAO" />
	<jsp:useBean id="member" class="sec01.ex01.MemberBean" />
	<jsp:setProperty property="id" name="member" value='<%=request.getParameter("id") %>'/>
	<jsp:setProperty property="pwd" name="member" value='<%=request.getParameter("pwd") %>'/>
	<jsp:setProperty property="name" name="member" value='<%=request.getParameter("name") %>'/>
	<jsp:setProperty property="email" name="member" value='<%=request.getParameter("email") %>'/>
	<!--
		property 속성
		값이 pwd -> setPwd() 메소드 호출
		값이 email -> setEmail() 메소드 호출
		값이 name -> setName() 메소드 호출
		
		name 속성 : 참조대상의 유즈빈 객체
	
	  -->
	
	
	<%
		List<MemberBean> list = dao.listMember();
	%>
	
	<%=member %> <br>
	
	<% if(list.size() != 0) { 
		for(MemberBean bean : list) { %>
			<div>
				아이디 : <%=bean.getId() %><br>
				비밀번호 : <%=bean.getPwd() %><br>
				이름: <%=bean.getName() %><br>
				이메일 : <%=bean.getEmail() %><br>
				가입일 : <%=bean.getJoinDate() %><br>
			</div>
			<br>
		<% } %>
	<% } %>	
</body>
</html>

 

memberForm.html 실행해서 가입해보면

상단에 가입 정보가 들어간다

 

 

 

- getProperty

 

member.jsp 를 복사해서 member2.jsp 로 이름 바꾼다

<%@page import="sec01.ex01.MemberBean"%>
<%@page import="java.util.List"%>
<%@page import="sec01.ex01.MemberDAO"%>
<%@ 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>
	<jsp:useBean id="dao" class="sec01.ex01.MemberDAO" />
	<jsp:useBean id="member" class="sec01.ex01.MemberBean" />
	<jsp:setProperty property="*" name="member" />
	
	아이디 : <jsp:getProperty property="id" name="member"/><br>
	비밀번호 : <jsp:getProperty property="pwd" name="member"/><br>
	이름 : <jsp:getProperty property="name" name="member"/><br>
	이메일 : <jsp:getProperty property="email" name="member"/><br>
	
</body>
</html>

 

 

memberForm.html에 있는 action="member.jsp" 부분을 member2.jsp로 수정해줌

<form action="member2.jsp" method="post">

가입 해보면 똑같이 나온다.

반응형

'학습 > JSP' 카테고리의 다른 글

24. 표현 언어(2)  (0) 2022.11.18
23. 표현 언어(1)  (0) 2022.11.17
21. JSP 스크립트 요소 기능  (0) 2022.11.16
20. 디렉티브 태그  (0) 2022.11.16
18. Filter API  (0) 2022.11.16

댓글