User ๋ฆฌ์คํธ์์ ์ด๋ฆ์ ๋๋ฅด๋ฉด ๋ฒํธ๋ฅผ ๋น๊ตํด์ ๋ง๋ ๋ฒํธ์ ์ด์ฉ์์ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ
User ๋ชจ๋ธ ํด๋์ค
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
|
import java.io.Serializable;
public class User implements Serializable
{
private int num;
private String name;
private String phone;
private String email;
public User() { }
public User(int num, String name, String phone, String email) {
this.num = num;
this.name = name;
this.phone = phone;
this.email = email;
}
public User(int num) {
this.num = num;
}
@Override
public boolean equals(Object obj) {
User u = (User)obj;
if(this.num==u.num) {
return true;
}
return false;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
|
cs |
UserService ์๋น์ค ํด๋์ค
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
70
71
72
73
74
75
76
|
import java.io.FileOutputStream;
import java.io.*;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
public class UserService
{
private HttpServletRequest request;
private String fpath = "D:/java_test/user.ser";
public UserService(HttpServletRequest request)
{
this.request = request;
}
public boolean save()
{
User u = new User();
u.setNum(Integer.parseInt(request.getParameter("num")));
u.setName(request.getParameter("name"));
u.setPhone(request.getParameter("phone"));
u.setEmail(request.getParameter("email"));
File f = new File(fpath);
List<User> list = null;
if(!f.exists()) list = new ArrayList<>();
else list = deserialize();
list.add(u);
return serialize(list);
}
private boolean serialize(List<User> list)
{
try {
ObjectOutputStream objOut = new ObjectOutputStream(new FileOutputStream(fpath));
objOut.writeObject(list);
objOut.close();
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
public User getUser()
{
int num = Integer.parseInt(request.getParameter("num"));
List<User> list = deserialize();
User key = new User(num);
if(list.contains(key)) {
return list.get(list.indexOf(key));
}
return null;
}
private List<User> deserialize()
{
try {
ObjectInputStream objInput = new ObjectInputStream(new FileInputStream(fpath));
List<User> list = (List<User>)objInput.readObject();
objInput.close();
return list;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public List<User> getlist() {
return deserialize();
}
}
|
cs |
UserController ์ปจํธ๋กค ํด๋์ค
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
|
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/userc")
public class UserController extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html; charset=utf-8");
request.setCharacterEncoding("utf-8");
String cmd = request.getParameter("cmd");
if(cmd==null ||cmd.equals("list"))
{
UserService svc = new UserService(request);
List<User> list = svc.getlist();
request.setAttribute("list", list);
getServletContext().getRequestDispatcher("/userlist.jsp").forward(request, response);
}
else if(cmd.equals("regForm"))
{
getServletContext().getRequestDispatcher("/userRegForm.jsp").forward(request, response);
}
else if(cmd.equals("reg"))
{
UserService svc = new UserService(request);
boolean saved = svc.save();
request.setAttribute("saved", saved);
getServletContext().getRequestDispatcher("/userRegResult.jsp").forward(request, response);
}
else if(cmd.equals("detail"))
{
UserService svc = new UserService(request);
User u = svc.getUser();
request.setAttribute("u", u);
getServletContext().getRequestDispatcher("/userDetail.jsp").forward(request, response);
}else {
System.err.println("์ค๋ฅ๊ฐ ๋ฐ์๋์์ต๋๋ค.");
}
}
}
|
cs |
userlist.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
|
<%@page import="com.ezen.web.hello.User"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% List<User> list = (List<User>) request.getAttribute("list"); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>์ ์ฅ๋ ์ด์ฉ์ ๋ชฉ๋ก ๋ณด๊ธฐ</title>
<style type="text/css">
table { border: 1px solid black; border-spacing:1px;
border-collapse:collapse; padding:0.3em;}
th{background-color:#eee; border-bottom:3px double black;}
th,td{padding:0.2em 1em; border-right:1px dashed black;}
td{border-bottom: 1px dashed black;}
</style>
</head>
<body>
<table>
<tr><th>๋ฒํธ</th><th>์ด๋ฆ</th><th>์ ํ</th><th>์ด๋ฉ์ผ</th></tr>
<%
for(int i =0;i<list.size();i++){
User u = list.get(i);
int num = u.getNum();
String name = u.getName();
String phone = u.getPhone();
String email = u.getEmail();
%>
<tr>
<td><%=num %></td>
<td><a href="userc?cmd=detail&num=<%=num%>"><%=name%></a></td>
<td><%=phone %></td>
<td><%=email %></td>
</tr>
<% } %>
</table>
[<a href="userc?cmd=regForm"> ์ด์ฉ์ ์ ๋ณด ๋ฑ๋ก ๊ฐ๊ธฐ </a>]
</body>
</html>
|
cs |
listDetail.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<%@page import="com.ezen.web.hello.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% User u = (User)request.getAttribute("u"); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>์์ธ๋ณด๊ธฐ</title>
</head>
<body>
<h3>์ด์ฉ์ ์ ๋ณด ์์ธ๋ณด๊ธฐ</h3>
<div id= "container">
<div><label>๋ฒํธ</label> <span><%= u.getNum() %></span></div>
<div><label>์ด๋ฆ</label> <span><%= u.getName() %></span></div>
<div><label>์ ํ</label> <span><%= u.getPhone() %></span></div>
<div><label>์ด๋ฉ์ผ</label> <span><%= u.getEmail() %></span></div>
</div>
</body>
</html>
|
cs |
์คํ ๊ฒฐ๊ณผ:
๋จผ์ ๋ฆฌ์คํธ์์ containsOf() ๋ฉ์๋๋ฅผ ์ด์ฉํ๊ธฐ ์ํด์ User ๋ชจ๋ธํด๋์ค์์ equals()๋ฉ์๋๋ฅผ ์ค๋ฒ๋ผ์ด๋ ํด์ค์ผํ๋ค. num์ด ๋ง๋ค๋ฉด true๊ฐ ๋์ค๊ฒ๋ ์ค๋ฒ๋ผ์ด๋ ํด์ค๋ค.
์ดํ UserController์์ cmd๊ฐ detail์ผ ๊ฒฝ์ฐ์ ๋ก์ง์ ์ฝ๋ฉํด์ค๋ค.
๋ UserService ์๋น์คํด๋์ค์์ getUser ๋ฉ์๋๋ฅผ ์ฝ๋ฉํด์ค์ผํ๋ค. ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ๋ฒํธ๋ฅผ ๋ณ์์ ์ ์ฅํด์ฃผ๊ณ ํ์ผ์ ์ ์ฅ๋ ๋ฆฌ์คํธ๋ฅผ ์ญ์ง๋ ฌํ ์์ผ์ ๋ฆฌ์คํธ ์๋ฃ๊ตฌ์กฐ๋ก ๋ง๋ค์ด ์ฃผ๊ณ ๋ณ์์ ๋ฆฌ์คํธ์ ์๋ ๋ฐ์ดํฐ์ ๋ง๋์ง ํ์ธํด ์ค๋ค.(containsOf() ๋ฉ์๋ ์ฌ์ฉ) ๋ง์ฝ ์๋ค๋ฉด ๊ทธ ๋ฒํธ๋ฅผ ์ธ๋ฑ์ค๋ก ๊ฐ๋ User๋ฅผ ๋ฆฌํดํด์ฃผ๊ณ ์๋ค๋ฉด null๋ฅผ ๋ฆฌํดํด์ฃผ๊ฒํ๋ค.
userDetial.jsp๋ ์๋ก ์์ฑํด์ฃผ๊ณ userlist.jsp์ ์ด๋ฆ์ ๋งํฌ๋ฅผ ๊ฑธ์ด์ฃผ๊ธฐ ์ํด ์์ ํ๋ค.
์ด๋ฆ์ ๊ฒ์ํ์ฌ ํด๋น ์ด์ฉ์ ์ฐพ๊ธฐ, ๋๋ช ์ด์ธ๊น์ง ๋์ค๊ฒ ํ๊ธฐ
UserService ์๋น์ค ํด๋์ค
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
import java.io.FileOutputStream;
import java.io.*;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
public class UserService
{
private HttpServletRequest request;
private String fpath = "D:/java_test/user.ser";
public UserService(HttpServletRequest request)
{
this.request = request;
}
public boolean save()
{
User u = new User();
u.setNum(Integer.parseInt(request.getParameter("num")));
u.setName(request.getParameter("name"));
u.setPhone(request.getParameter("phone"));
u.setEmail(request.getParameter("email"));
File f = new File(fpath);
List<User> list = null;
if(!f.exists()) list = new ArrayList<>();
else list = deserialize();
list.add(u);
return serialize(list);
}
private boolean serialize(List<User> list)
{
try {
ObjectOutputStream objOut = new ObjectOutputStream(new FileOutputStream(fpath));
objOut.writeObject(list);
objOut.close();
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
public User getUser()
{
int num = Integer.parseInt(request.getParameter("num"));
List<User> list = deserialize();
User key = new User(num);
if(list.contains(key)) {
return list.get(list.indexOf(key));
}
return null;
}
public List<User> findUser()
{
String key = request.getParameter("name");
List<User> list = deserialize();
List<User> found = new ArrayList<>();
for(int i=0;i<list.size();i++) {
if(list.get(i).getName().equals(key)) {
found.add(list.get(i));
}
}
if(found.size()==0) found = null;
return found;
}
private List<User> deserialize()
{
try {
ObjectInputStream objInput = new ObjectInputStream(new FileInputStream(fpath));
List<User> list = (List<User>)objInput.readObject();
objInput.close();
return list;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public List<User> getlist() {
return deserialize();
}
}
|
cs |
UserController ์ปจํธ๋กค ํด๋์ค
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
|
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/userc")
public class UserController extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html; charset=utf-8");
request.setCharacterEncoding("utf-8");
String cmd = request.getParameter("cmd");
if(cmd==null ||cmd.equals("list"))
{
UserService svc = new UserService(request);
List<User> list = svc.getlist();
request.setAttribute("list", list);
getServletContext().getRequestDispatcher("/userlist.jsp").forward(request, response);
}
else if(cmd.equals("regForm"))
{
getServletContext().getRequestDispatcher("/userRegForm.jsp").forward(request, response);
}
else if(cmd.equals("reg"))
{
UserService svc = new UserService(request);
boolean saved = svc.save();
request.setAttribute("saved", saved);
getServletContext().getRequestDispatcher("/userRegResult.jsp").forward(request, response);
}
else if(cmd.equals("detail"))
{
UserService svc = new UserService(request);
User u = svc.getUser();
request.setAttribute("u", u);
getServletContext().getRequestDispatcher("/userDetail.jsp").forward(request, response);
}else if(cmd.equals("findByName"))
{
UserService svc = new UserService(request);
List<User> list = svc.findUser();
request.setAttribute("list", list);
getServletContext().getRequestDispatcher("/userfind.jsp").forward(request, response);
}else {
System.err.println("์ค๋ฅ๊ฐ ๋ฐ์๋์์ต๋๋ค.");
}
}
}
|
cs |
userlist.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
|
<%@page import="com.ezen.web.hello.User"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% List<User> list = (List<User>) request.getAttribute("list"); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>์ ์ฅ๋ ์ด์ฉ์ ๋ชฉ๋ก ๋ณด๊ธฐ</title>
<style type="text/css">
table { border: 1px solid black; border-spacing:1px;
border-collapse:collapse; padding:0.3em;}
th{background-color:#eee; border-bottom:3px double black;}
th,td{padding:0.2em 1em; border-right:1px dashed black;}
td{border-bottom: 1px dashed black;}
</style>
</head>
<body>
<table>
<tr><th>๋ฒํธ</th><th>์ด๋ฆ</th><th>์ ํ</th><th>์ด๋ฉ์ผ</th></tr>
<%
for(int i =0;i<list.size();i++){
User u = list.get(i);
int num = u.getNum();
String name = u.getName();
String phone = u.getPhone();
String email = u.getEmail();
%>
<tr>
<td><%=num %></td>
<td><a href="userc?cmd=detail&num=<%=num%>"><%=name%></a></td>
<td><%=phone %></td>
<td><%=email %></td>
</tr>
<% } %>
</table>
<form action="userc" method="post">
<input type="hidden" name="cmd" value="findByName">
<label>์ด๋ฆ์ผ๋ก ๊ฒ์</label><input type="text" name="name">
<button type="submit">[๊ฒ์]</button>
[<a href="userc?cmd=regForm"> ์ด์ฉ์ ์ ๋ณด ๋ฑ๋ก ๊ฐ๊ธฐ </a>]
</form>
</body>
</html>
|
cs |
userfind.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
|
<%@page import="java.util.List"%>
<%@page import="com.ezen.web.hello.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% List<User> list = (List<User>)request.getAttribute("list"); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>์ด๋ฆ์ผ๋ก ๊ฒ์</title>
<style type="text/css">
table { border: 1px solid black; border-spacing:1px;
border-collapse:collapse; padding:0.3em;}
th{background-color:#eee; border-bottom:3px double black;}
th,td{padding:0.2em 1em; border-right:1px dashed black;}
td{border-bottom: 1px dashed black;}
</style>
</head>
<body>
<h3>์ด๋ฆ์ผ๋ก ๊ฒ์</h3>
<table>
<tr><th>๋ฒํธ</th><th>์ด๋ฆ</th><th>์ ํ</th><th>์ด๋ฉ์ผ</th></tr>
<%
for(int i =0;i<list.size();i++){
User u = list.get(i);
int num = u.getNum();
String name = u.getName();
String phone = u.getPhone();
String email = u.getEmail();
%>
<tr>
<td><%=num %></td>
<td><a href="userc?cmd=detail&num=<%=num%>"><%=name%></a></td>
<td><%=phone %></td>
<td><%=email %></td>
</tr>
<% } %>
</table>
[<a href="userc?cmd=list"> ๋ฑ๋ก๋ ์ด์ฉ์ ์ ๋ณด ๋ณด๊ธฐ </a>]
</body>
</html>
|
cs |
์คํ ๊ฒฐ๊ณผ:
์ด๋ฆ์ผ๋ก ๊ฒ์ํ์ฌ ๋๋ช ์ด์ธ๊น์ง ์ฐพ๊ธฐ ์ํด์ User ๊ฐ์ฒด ํ๋๋ง์ ๋ฆฌํดํ๋ฉด ์๋๋ค. ๊ทธ๋์ User list๋ฅผ ๋ฆฌํดํด์ผํ๋ค.
userlist.jsp ์์ form ํ๊ทธ๋ฅผ ๋ง๋ค์ด์ค์ ์ด๋ฆ์ ์ ๋ ฅํ๋ ๋ฒํผ์ ํ๋ ๋ง๋ค์ด ์ค๋ค. cmd์ ๊ฐ์ findByValue์ ์ฃผ์ด ๋ก์ง์ด ์คํ๋๊ฒ ํด์ค๋ค. ์ปจํธ๋กค ์์ findByValue ๊ฐ์ ๋ฐ์ผ๋ฉด ์๋น์ค ํด๋์ค์์ ๋ฆฌํด ๋ฐ์ list ๋ฅผ userfind.jsp๋ก ๋ณด๋ด์ค๋ค.
์๋น์คํด๋์ค์ findUser() ๋ฉ์๋์์ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ์ด๋ฆ์ ํค ๋ณ์์ ์ ์ฅํ์ฌ ์๋ก์ด ๋ฆฌ์คํธ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ํค๋ฅผ ๊ฐ๊ณ ์๋ ๋ฆฌ์คํธ๋ค์ ๋ฐ๋ณต๋ฌธ ์จ์ ๋ชจ๋ ์๋ก์ด ๋ฆฌ์คํธ์ ์ ์ฅํ๊ณ ๊ทธ ์ ์ฅ๋ ๋ฆฌ์คํธ๋ฅผ ๋ฆฌํดํด์ค๋ค.
๋๊ธ