반응형
① memberVO.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
package sec04.ex01;
import java.util.Date;
public class MemberVO {
private String id;
private String pwd;
private String name;
private String email;
private Date joinDate;
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;
}
}
|
cs |
② search.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<%@ 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><br>
<input type="submit" value="조회하기">
</form>
</body>
</html>
|
cs |
회원 이름 입력 후 조회하기 버튼을 클릭하면 form 태그를 통해 member.jsp로 파라미터를 전송합니다.
③ member.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.util.*"
import="sec04.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_1 = request.getParameter("name");
MemberVO memberVO = new MemberVO();
memberVO.setName(name_1);
MemberDAO dao = new MemberDAO();
List membersList = dao.listmembers(memberVO);
%>
<table border=1 style="width:800px;align:center">
<tr align=center bgcolor="#FFFF66">
<th>아이디</th>
<th>비밀번호</th>
<th>이름</th>
<th>이메일</th>
<th>가입일자</th>
</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>
|
cs |
파라미터로 받은 이름을 MemberVO 객체에 저장하고 dao.listmembers에 갑니다.
④ MemberDAO.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
package sec04.ex01;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class MemberDAO {
private PreparedStatement pstmt;
private Connection con;
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<MemberVO> membersList = new ArrayList<MemberVO>();
String name_1 = memberVO.getName();
try {
con = dataFactory.getConnection();
String query = "select * from t_member";
if((name_1 != null && name_1.length() != 0)) {
query += " where name=?";
pstmt = con.prepareStatement(query);
pstmt.setString(1, name_1);
}else {
pstmt = con.prepareStatement(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;
}
}
|
cs |
파라미터로 받은 memberVO 객체의 이름을 통해 sql문을 실행하고 받은 회원의 정보를 memberList에 저장하여 반환합니다.
member.jsp 에서는 받은 memberList의 정보를 출력합니다.
동명이인이 있을 경우에는 여러명이 출력됩니다.
만약 이름을 입력하지 않고 조회하기 버튼을 클릭하면 전체 목록이 출력됩니다.
반응형
'코딩 기록 > JSP' 카테고리의 다른 글
[JSP] 포워드 액션 태그(Forward Action Tag) - 로그인 예제 (0) | 2021.05.13 |
---|---|
[JSP] 인클루드 액션 태그(Include Action Tag) 사용하기 (0) | 2021.05.13 |
[JSP] Welcome 파일 지정하기 (0) | 2021.05.11 |
[JSP] 인클루드 디렉티브 태그(include directive tag) 사용하기 (0) | 2021.05.11 |
[JSP] 디렉티브 태그 (0) | 2021.05.11 |