스크립트 요소 이용해 회원 정보 조회하기
1. sec02.ex01 패키지를 생성한 후 MemberVO, MemberDAO 클래스를 복사해 붙여 넣습니다. 그리고 test03 폴더에 member.jsp, search.jsp 파일을 추가합니다.

2. MemberVO 클래스를 다음과 같이 작성합니다.
package sec02.ex01;
import java.sql.Date;
public class MemberVO {
private String id;
private String pwd;
private String name;
private String email;
private Date joinDate;
public MemberVO() {
System.out.println("MemberVO 생성자 호출");
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Date getJoinDate() {
return joinDate;
}
public void setJoinDate(Date joinDate) {
this.joinDate = joinDate;
}
}
3. 데이터베이스의 회원을 조회하는 JSP 페이지인 search.jsp를 다음과 같이 작성합니다. 찾고자 하는 이름을 입력하면 member.jsp로 전송합니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원 검색창</title>
</head>
<body>
<form method="post" action="member.jsp">
이름:<input type="text" name="name"><br>
<input type="submit" value="조회하기">
</form>
</body>
</html>
4. member.jsp를 다음과 같이 작성합니다. 전송된 name 값을 가져온 후 스크립트릿에서 MemberDAO 객체를 생성하고 listMembers() 메서드를 호출헤 이름에 대한 회원 정보를 조회합니다. 그리고 조회한 회원 정보를 for 반복문을 이용해 출력합니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.util.*"
import="sec02.ex01.*"
pageEncoding="UTF-8"
%>
<!DOCTYPE html>
<html>
<head>
<style>
h1 {
text-align: center;
}
</style>
<meta charset="UTF-8">
<title>회원 정보 출력창</title>
</head>
<body>
<h1>회원 정보 출력</h1>
<%
request.setCharacterEncoding("utf-8");
String _name = request.getParameter("name");
MemberVO memberVO = new MemberVO();
memberVO.setName(_name);
MemberDAO dao = new MemberDAO();
List membersList = dao.listMembers(memberVO);
%>
<table border="1" width=800 align=center>
<tr align=center bgcolor="FFFF66">
<td>아이디</td>
<td>비밀번호</td>
<td>이름</td>
<td>이메일</td>
<td>가입일자</td>
</tr>
<%
for (int i = 0; i < membersList.size(); i++) {
MemberVO vo = (MemberVO) membersList.get(i);
String id = vo.getId();
String pwd = vo.getPwd();
String name = vo.getName();
String email = vo.getEmail();
Date joinDate = vo.getJoinDate();
%>
<tr align=center>
<td><%= id %></td>
<td><%= pwd %></td>
<td><%= name %></td>
<td><%= email %></td>
<td><%= joinDate %></td>
</tr>
<%
}
%>
</table>
</body>
</html>
5. MemerDAO 클래스를 다음과 같이 작성합니다. 메서드로 전달된 이름에 대해 값이 존재하는 경우와 존재하지 않는 경우에 대해 SQL문을 동적으로 만들어서 조회합니다.
package sec02.ex01;
import java.sql.Connection;
import java.sql.Date;
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.sql.DataSource;
public class MemberDAO {
private Connection con;
private PreparedStatement pstmt;
private DataSource dataFactory;
public MemberDAO() {
try {
Context ctx = new InitialContext();
Context envContext = (Context) ctx.lookup("java:/comp/env");
dataFactory = (DataSource) envContext.lookup("jdbc/oracle");
} catch (Exception e) {
e.printStackTrace();
}
}
public List listMembers(MemberVO memberVO) {
List membersList = new ArrayList();
String _name = memberVO.getName();
try {
con = dataFactory.getConnection();
String query = "select * from t_member";
if ((_name != null && _name.length() != 0)) {
query += "where name=?";
pstmt = con.prepareStatement(query);
pstmt.setString(1, _name);
} else {
pstmt = con.prepareStatement(query);
}
System.out.println("preparedStatement: " + query);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
String id = rs.getString("id");
String pwd = rs.getString("pwd");
String name = rs.getString("name");
String email = rs.getString("email");
Date joinDate = rs.getDate("joinDate");
MemberVO vo = new MemberVO();
vo.setId(id);
vo.setPwd(pwd);
vo.setName(name);
vo.setEmail(email);
vo.setJoinDate(joinDate);
membersList.add(vo);
}
rs.close();
pstmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
return membersList;
}
}
6. http://localhost:8090/pro12/test03/search.jsp로 요청한 다음 조회할 이름을 입력하고 member.jsp로 전송합니다.

7. 그러면 조회한 회원 정보가 출력됩니다. 만약 이름을 입력하지 않고 조회할 경우에는 모든 회원 정보가 출력됩니다.
'프로그래밍 언어 > 자바 웹' 카테고리의 다른 글
| JSP 페이지에 이미지 포함 실습 (0) | 2025.11.24 |
|---|---|
| 인클루드 액션 태그 사용하기 (0) | 2025.11.18 |
| JSP welcome 파일 지정하기 (0) | 2025.11.12 |
| 에러 코드에 따른 예외 페이지 지정 (0) | 2025.11.09 |
| JSP 페이지 예외 처리 실습 (0) | 2025.11.06 |