Web programming

(22.11.04)Web ํ”„๋กœ๊ทธ๋ž˜๋ฐ: ์ด์šฉ์ž CRUD, MSC๋ฐฉ์‹, ์„œ๋ธ”๋ฆฟ,JSP,HTML

ํ”„๋กœ๊ทธ๋ž˜๋จธ ์˜ค์›” 2022. 11. 4.

์ด์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋ฒˆํ˜ธ ์ด๋ฆ„ ์ „ํ™” ์ด๋ฉ”์ผ์„ ์ด๋ ฅ ๋ฐ›์•„์„œ ์„œ๋ฒ„์ธก ํŒŒ์ผ์— ์ง๋ ฌํ™”๋ฅผ ํ†ตํ•œ ์ €์žฅ ๊ตฌํ˜„

๋กœ์ง์„ 5๊ฐ€์ง€๋กœ ๋‚˜๋ˆ„์–ด์„œ ์‹คํ–‰(User, UserController, UserService, userRegForm, userRegResult,userlist)

์ฒซ ์‹คํ–‰ํ™”๋ฉด์„ ์ €์žฅ๋œ ์‚ฌ๋žŒ๋“ค์˜ ๋ชฉ๋ก์ด ๋ณด์ด๊ฒŒ๋” ํ•˜๊ณ  ๋งํฌ๋ฅผ ์ฃผ์–ด ๋ชฉ๋ก๋ณด๊ธฐ์™€ ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•˜๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ฒŒ๋” ํ•œ๋‹ค.

MSC๋ฐฉ์‹์œผ๋กœ ๋ชจ๋“ˆํ™” ํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๋ฉด ๊ฐœ๋ฐœํ• ๋•Œ ์„ฑ๋Šฅ ๋–จ์–ด์ ธ ์‚ฌ๋žŒ ๋งŽ์ด ํ•„์š”ํ•˜๊ณ  ๋ณต์žกํ•˜์ง€๋งŒ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํŽธํ•˜๊ณ  ๊ฐœ๋ฐœ๋ณด๋‹ค ๋ˆ์ด ๋” ๋งŽ์ด ๋“œ๋Š” ์œ ์ง€๋ณด์ˆ˜์—์„œ ๋กœ์ง ๋ณ„ ๋‚˜๋ˆ„์–ด์„œ ๋ชจ๋“ˆํ™” ํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋Š”๊ฒŒ ๋” ํšจ์œจ์ ์ด๋‹ค.

 

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
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 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

User ํด๋ž˜์Šค๋Š” ์†์„ฑ๋งŒ ๊ฐ€์ง€๋Š” ํด๋ž˜์Šค๋กœ VOํด๋ž˜์Šค( Value Object ํด๋ž˜์Šค) ๋ผ๊ณ ๋„ ํ•˜๊ณ  MSC์—์„œ Model ํด๋ž˜์Šค๋ฅผ ๋‹ด๋‹นํ•˜๊ณ  ์žˆ๋‹ค.

 

 

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
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;
    }
       
    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

์„œ๋น„์Šค ํด๋ž˜์Šค๋กœ์„œ User ๋ชจ๋ธ ํด๋ž˜์Šค์— ์žˆ๋Š” ์†์„ฑ๋“ค์ด ์ž‘๋™ํ•  ๋กœ์ง๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 

 

userRegForm.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
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>์ด์šฉ์ž ์ •๋ณด ๋“ฑ๋ก</title>
<style type="text/css">
   #main {width:fit-content; margin:0 auto; }
   h3 { text-align: center; }
   form { width:fit-content; border:1px solid black; padding:1em;
      margin:0 auto; }
   label { margin-right:1em; }
   form>div { margin:0.3em; }
   button { display:block; margin:5px auto; }
</style>
</head>
<body>
<div id="main">
<h3>์‚ฌ์šฉ์ž ์ •๋ณด ๋“ฑ๋ก</h3>
<form action="userc" method="post">
   <input type="hidden" name="cmd" value="reg">
   <div><label>๋ฒˆ ํ˜ธ</label><input type="text" name="num"></div>
   <div><label>์ด ๋ฆ„</label><input type="text" name="name"></div>
   <div><label>์ „ ํ™”</label><input type="text" name="phone"></div>
   <div><label>๋ฉ” ์ผ</label><input type="text" name="email"></div>
   <div><button type="submit">์ € ์žฅ</button></div>
</form>
</div>
</body>
</html>
cs

์ด์šฉ์ž ๋“ฑ๋ก์‹œ ๋‚˜ํƒ€๋‚  ํผ 

 

 

userRegResult.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%
   boolean saved = (Boolean) request.getAttribute("saved");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>์ด์šฉ์ž ์ •๋ณด ๋“ฑ๋ก ๊ฒฐ๊ณผ</title>
<style type="text/css">
    a {text-decoration:none; color: blue;}
</style>
</head>
<body>
<%
   out.println(saved ? "์ด์šฉ์ž ์ •๋ณด ์ €์žฅ ์„ฑ๊ณต" : "์ •๋ณด ์ €์žฅ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ");
%>
[<a href=userc?cmd=regForm> ์ •๋ณด ๋“ฑ๋ก ๋‹ค์‹œ ๊ฐ€๊ธฐ </a>]
[<a href=userc?cmd=list> ๋“ฑ๋ก๋œ ์ด์šฉ์ž ์ •๋ณด ๋ณด๊ธฐ</a>]
</body>
</html>
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
<%@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>
</head>
<body>
<% 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();
        String line = String.format("%d %s %s %s<br>",num,name,phone,email);
    
        
        out.println(line);
    }    
%>
[<a href=userc?cmd=regForm> ์ด์šฉ์ž ์ •๋ณด ๋“ฑ๋ก  ๊ฐ€๊ธฐ </a>]
</body>
</html>
cs

 

์‹คํ–‰๊ฒฐ๊ณผ:

 

๋“ฑ๋กํ•˜๊ธฐ

์ €์žฅํ•˜๊ธฐ

 

 

๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„


jsp์—์„œ html์˜ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์–ด์„œ ๋ชฉ๋ก์„ ๋ณด๊ธฐ ๋” ํŽธํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ

 

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><%=name %></td>
            <td><%=phone %></td>
            <td><%=email %></td>
        </tr>
<%    }    %>
</table>
[<a href=userc?cmd=regForm> ์ด์šฉ์ž ์ •๋ณด ๋“ฑ๋ก  ๊ฐ€๊ธฐ </a>]
</body>
</html>
cs

<%= %> : ์ต์Šคํ”„๋ ˆ์…˜ ํƒœ๊ทธ ๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ jsp๊ฐ€ ์„œ๋ธ”๋ฆฟ์œผ๋กœ ๋ฐ”๋€”๋•Œ out.print()๋กœ ๋ฐ”๋€๋‹ค.

 

์‹คํ–‰๊ฒฐ๊ณผ:

๋Œ“๊ธ€