Web programming

(22.11.18)Web ํ”„๋กœ๊ทธ๋ž˜๋ฐ: ๊ฒŒ์‹œํŒ CRUD(JSP ๊ฐœ๋ฐœ๋ฐฉ๋ฒ•๋ก  Model1)

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

ํšŒ์›์ •๋ณด ์‚ญ์ œํ•˜๊ธฐ

ํšŒ์›์˜ ์ƒ์„ธ๋ณด๊ธฐ ์—์„œ ์‚ญ์ œ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ •๋ง๋กœ ์‚ญ์ œํ•  ๊ฒƒ์ธ์ง€ ๋ฌผ์–ด๋ณด๊ณ  ํ™•์ธ์„ ๋ˆ„๋ฅด๋ฉด ์„œ๋ฒ„์—์„œ๋„ ์‚ญ์ œ๊ฐ€ ๋˜๊ณ  ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณด์—ฌ์ฃผ๊ฒŒ ํ•˜๋ผ

 

memDetail.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
60
61
62
63
64
65
66
67
68
69
70
71
72
<%@page import="java.util.Arrays"%>
<%@page import="com.ezen.web.hello.Member"%>
<%@page import="java.util.List"%>
<%@ page contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<jsp:useBean id="svc" class= "com.ezen.web.hello.MemberService" scope="session"/>
<jsp:useBean id="key" class= "com.ezen.web.hello.Member">
    <jsp:setProperty name="key" property="*"/>
</jsp:useBean>
<%    
    Member memb = svc.memDetail(key);
    int num = memb.getNum();
    String name = memb.getName();
    String birth = memb.getBirth();
    String email = memb.getEmail();
    String gender = memb.getGender();
    String exp = memb.getExp();
    String[] subject = memb.getSubject();
    String inv = memb.getInv();
    %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ํšŒ์›์ •๋ณด ์ƒ์„ธ๋ณด๊ธฐ </title>
</head>
<script src="https://code.jquery.com/jquery-3.6.1.min.js" 
integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ=" crossorigin="anonymous"></script>
<script type="text/javascript">
    function deleteMember(num)
    {
        if(!confirm("์ •๋ง๋กœ ํ˜„์žฌ ํšŒ์› ์ •๋ณด๋ฅผ ์‚ญ์ œํ•˜๊ฒ ์Šต๋‹ˆ๊นŒ?")) return;
 
        $.ajax({
            url:'memDelete.jsp?'
            method:'post',
            data: {"num":num},//๋ฒˆํ˜ธ ํ•˜๋‚˜๋งŒ ๋ณด๋‚ด๋ฉด ๋œ๋‹ค. ์ „์ฒด ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”๊ฐ€ ์—†๋‹ค
            cache : false,
            dataType: 'json',
            success: function(res){ 
                if(res.deleted){
                    alert(res.deleted ? '์‚ญ์ œ ์„ฑ๊ณต':'์—๋Ÿฌ'); 
                    location.href ='memList.jsp';
                }
            },
            error : function(xhr,status,err){
                alert(err);
            }
        });
        return false;
    }
</script>
<body>
<table>
<tr><th>๋ฒˆํ˜ธ</th><th>์ด๋ฆ„</th><th>์ƒ์ผ</th><th>์ด๋ฉ”์ผ</th><th>์„ฑ๋ณ„</th><th>๊ฒฝ๋ ฅ์—ฐ์ˆ˜</th><th>๊ด€์‹ฌ๊ณผ๋ชฉ</th><th>๊ฐœ์ธ ์†Œ๊ฐœ</th></tr>
        <tr>        
                <td><%=num%></td>
                <td><%=name%></td>
                <td><%=birth %></td>
                <td><%=email %></td>
                <td><%=gender %></td>
                <td><%=exp %></td>
                <td><%=Arrays.toString(subject) %></td>
                <td><%=inv %></td>
        </tr>
</table>
<p>
[<a href="memJoin.jsp"> ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ๊ฐ€๊ธฐ </a>]
[<a href="memEdit.jsp?num=<%=num%>"> ์ˆ˜์ • </a>]
[<a href="javascript:deleteMember(<%=num%>);">์‚ญ์ œ</a>]
</body>
</html>
cs

memDelete.jsp์—  ํšŒ์›์ •๋ณด๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด๋‹น ๋ฒˆํ˜ธ๋ฅผ ๋„˜๊ฒจ์ค€๋‹ค. ๋„˜๊ฒจ์ค€ ๋ฒˆํ˜ธ์˜ ํšŒ์› ์ •๋ณด๊ฐ€ ์‚ญ์ œ ๋๋‹ค๋ฉด, alert ์ฐฝ์œผ๋กœ ์—๋Ÿฌ๋ฅผ ์‹คํŒจํ–ˆ๋‹ค๋ฉด ์‚ญ์ œ ์‹คํŒจ๋ฅผ ๋„์šด๋‹ค.

 

 

memDelete.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%@page import="org.json.simple.JSONObject"%>
<%@ page contentType="application/json; charset=utf-8"
    pageEncoding="utf-8"%>
    
<jsp:useBean id="key" class= "com.ezen.web.hello.Member">
    <jsp:setProperty name="key" property="*"/>
</jsp:useBean>
 
<jsp:useBean id="svc" class= "com.ezen.web.hello.MemberService" scope="session"/>
 
 
    <%
    boolean deleted = svc.deleteMember(key);
    JSONObject jsObj = new JSONObject();
    jsObj.put("deleted", deleted);
    %>
    <%=jsObj.toJSONString()%>
cs

๋„˜๊ฒจ ๋ฐ›์•„์˜จ num์„ key๋ผ๋Š” ์ด๋ฆ„์˜ ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„์„œ MemberService.java์— ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์“ด๋‹ค.

์—ฌ๊ธฐ์„œ ๋„˜์–ด์˜จ boolean ๊ฐ’์„ memDetail.jsp๋กœ ๋ณด๋‚ด์ค€๋‹ค.

 

Member.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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
import java.io.*;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
 
public class MemberService {
 
    private Member member;
    private HttpServletRequest request;
    private String fpath = "D:/java_test/member.ser";
       
    public MemberService(){}
 
    public MemberService(HttpServletRequest request)
    {
       this.request = request;
    }
    public void setMember(Member member) {
        this.member = member;
    }
    public boolean addMember() 
    {
       List<Member> list = deserialize();
       Collections.sort(list);
       int num = 1;
       if(list.size()>0) {
           num = list.get(list.size()-1).getNum()+1;
       }
       member.setNum(num);
       list.add(member);
       return serialize(list);
    }
    private boolean serialize(List<Member> 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<Member> deserialize()
    {
        File f = new File(fpath);
        List<Member> list = null;
              
        if(!f.exists()) {
            list = new ArrayList<Member>();
        }else {
            try {
                ObjectInputStream objInput = new ObjectInputStream(new FileInputStream(fpath));
                list = (List<Member>)objInput.readObject();
                objInput.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return list;
    }
    public List<Member> getlist() {
 
        return deserialize();
    }
    public Member memDetail(Member key) {    
        List<Member> list = deserialize();
        if(list.contains(key)) {
            list.get(list.indexOf(key));
        }
        return list.get(list.indexOf(key));
    }
    public boolean updateMember(Member newMember)
    {
        List<Member> list = deserialize();
        if(list.contains(newMember)) {
            Member m = list.get(list.indexOf(newMember));
            m.setEmail(newMember.getEmail());
            m.setExp(newMember.getExp());
            return serialize(list);
        }
        System.err.println("์ˆ˜์ •์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.");
        return false;
    }
    public boolean deleteMember(Member m)
    {
        List<Member> list = deserialize();
        if(list.contains(m)) {
            list.remove(list.indexOf(m));
            return serialize(list);
        }
        System.err.println("์‚ญ์ œ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.");
        return false;
    }
}
cs

 

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

 


JSP ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก  Model1

๊ฒŒ์‹œํŒ CRUDํ•˜๊ธฐ

๊ธ€๋ฒˆํ˜ธ ์ œ๋ชฉ ์ž‘์„ฑ์ž ์ž‘์„ฑ์ผ ๊ธ€๋‚ด์šฉ ํžˆํŠธ์ˆ˜(๊ธ€ ์ฝ์–ด๋ณธ ํšŸ์ˆ˜)

๋ชฉ๋ก ๊ธ€๋ฒˆํ˜ธ, ์ œ๋ชฉ, ์ž‘์„ฑ์ž, ์ž‘์„ฑ์ผ ํžˆํŠธ์ˆ˜

 

Board.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
import java.io.Serializable;
 
public class Board implements Serializable, Comparable<Board>
{
    private int num;
    private String title;
    private String writer;
    private String date;
    private int hit;
    private String contents;
    public Board() {}
    public Board(int num, String title, String writer, String date, int hit, String contents) {
        this.num = num;
        this.title = title;
        this.writer = writer;
        this.date = date;
        this.hit = hit;
        this.contents = contents;
    }
    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getWriter() {
        return writer;
    }
    public void setWriter(String writer) {
        this.writer = writer;
    }
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
    public int getHit() {
        return hit;
    }
    public void setHit(int hit) {
        this.hit = hit;
    }
    public String getContents() {
        return contents;
    }
    public void setContents(String contents) {
        this.contents = contents;
    }
    @Override
    public int compareTo(Board o) {
        if(this.num>o.num) {
            return 1;
        }else if(this.num<o.num) {
            return -1;
        }else return 0;
    }
    @Override
    public boolean equals(Object obj) {
        Board other = (Board) obj;
        return this.num==other.num;
    }    
}
cs

 

BoardService.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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import java.io.*;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
 
public class BoardService 
{
    public Board board;
    private HttpServletRequest request;
    private String fpath = "D:/java_test/board.ser";
       
    public BoardService(){}
 
    public BoardService(HttpServletRequest request)
    {
       this.request = request;
    }
    public void setBoard(Board board) {
        this.board = board;
    }
    private List<Board> deserialize()
    {
        File f = new File(fpath);
        List<Board> list = null;
              
        if(!f.exists()) {
            list = new ArrayList<Board>();
        }else {
            try {
                ObjectInputStream objInput = new ObjectInputStream(new FileInputStream(fpath));
                list = (List<Board>)objInput.readObject();
                objInput.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return list;
    }
    private boolean serialize(List<Board> list)
    {
       try {
          ObjectOutputStream objOut = new ObjectOutputStream(new FileOutputStream(fpath));
          objOut.writeObject(list);
          objOut.close();
          return true;
       } catch (Exception e) {
          e.printStackTrace();
       }
       return false;
    }
    public boolean addBoard() {
        List<Board> list = deserialize();
        Collections.sort(list);
        int num = 1;
        if(list.size()>0) {
            num = list.get(list.size()-1).getNum()+1;
        }
        board.setNum(num);
        list.add(board);
        return serialize(list);
    }
    public List<Board> getlist() {
 
        return deserialize();
    }
    public Board boardDetail(Board key) {    
        List<Board> list = deserialize();
        if(list.contains(key)) {
            list.get(list.indexOf(key));
        }
        return list.get(list.indexOf(key));
    }
    public boolean updateBoard(Board newboard)
    {
        List<Board> list = deserialize();
        if(list.contains(newboard)) {
            Board board = list.get(list.indexOf(newboard));
            board.setTitle(newboard.getTitle());
            board.setContents(newboard.getContents());
            return serialize(list);
        }
        System.err.println("์ˆ˜์ •์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.");
        return false;
    }
    public boolean deleteBoard(Board board)
    {
        List<Board> list = deserialize();
        if(list.contains(board)) {
            list.remove(list.indexOf(board));
            return serialize(list);
        }
        System.err.println("์‚ญ์ œ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.");
        return false;
    }
}
cs

 

 

boardAdd.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
60
61
62
63
64
65
66
<%@ page contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title> ๊ฒŒ์‹œํŒ </title>
</head>
<style type="text/css">
 main { width:fit-content; border:1px solid black; padding:1em;
      margin:0 auto; }
 h1 { text-align: center; }
</style>
<script src="https://code.jquery.com/jquery-3.6.1.min.js" 
integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ=" crossorigin="anonymous"></script>
<script type="text/javascript">
    function formCheck(){
        var text = $('#text').val();
        var writer = $('#writer').val();
        var date = $('#date').val();
        var contents = $('#contents').val();
        
        if(text==''|| writer==''|| date==''|| contents==''){
            alert('๋ชจ๋“  ํ•ญ๋ชฉ ์ž…๋ ฅ์€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.');
            return false;
        }
        return join();    
    }
    function join(){
        $.ajax({
            url : 'boardProc.jsp',
            method:'post',
            data: $('#boardAdd').serialize(),
            cache:false,
            dataType:'json',
            success:function(res){
                alert(res.added ?'๊ฒŒ์‹œ๊ธ€ ์ถ”๊ฐ€ ์„ฑ๊ณต':'๊ฒŒ์‹œ๊ธ€ ์ถ”๊ฐ€ ์‹คํŒจ');
            },
            error : function(xhr,status,err){
                alert('์—๋Ÿฌ:' + err);
            }
        });
        return false;
    }
</script>
<body>
<main>
<h1>๊ฒŒ์‹œํŒ</h1>
<form id = 'boardAdd' onsubmit="return formCheck();">
   <div><label>*์ œ ๋ชฉ</label><input id="title" type="text" name="title"></div>
   <p>
   <div><label>*์ž‘์„ฑ์ž</label><input id="writer" type="text" name="writer"></div>
   <p>
   <div><label>*์ž‘์„ฑ์ผ</label><input type="date" id="date" name="date"></div>
   <p>
   <label>*๊ธ€๋‚ด์šฉ</label>
   <p>
   <textarea id="contents" name="contents" rows="5" cols="100" placeholder="๊ธ€ ๋‚ด์šฉ ์ž‘์„ฑ"></textarea>
   <p>
   <button type="submit" >์ € ์žฅ</button>
   <tab><button type="reset">์ทจ์†Œ</button></tab>
   [<a href="boardList.jsp"> ๊ฒŒ์‹œ๊ธ€ ๋ฆฌ์ŠคํŠธ ๋ณด๊ธฐ </a>]
</form>
</main>
</body>
</html>
cs

 

 

boardProc.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%@page import="org.json.simple.JSONObject"%>
<%@ page contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<jsp:useBean id="writing" class= "com.ezen.web.hello.Board">
    <jsp:setProperty name="writing" property="*"/>
</jsp:useBean>
 
<jsp:useBean id="svc" class= "com.ezen.web.hello.BoardService" scope="session"/>
<jsp:setProperty name="svc" property="board" value="<%=writing %>"/>
 
 
    <%
        boolean added = svc.addBoard();
        JSONObject jsobj = new JSONObject();
        jsobj.put("added", added);
    %>
    
    <%=    jsobj.toJSONString() %>
cs

 

boardList.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="com.ezen.web.hello.Board"%>
<%@page import="java.util.List"%>
<%@page import="org.json.simple.JSONObject"%>
<%@ page contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<jsp:useBean id="writing" class= "com.ezen.web.hello.Board">
    <jsp:setProperty name="writing" property="*"/>
</jsp:useBean>
 
<jsp:useBean id="svc" class= "com.ezen.web.hello.BoardService" scope="session"/>
<jsp:setProperty name="svc" property="board" value="<%=writing %>"/>
<table>
    <tr><th>๋ฒˆํ˜ธ</th><th>์ œ๋ชฉ</th><th>์ž‘์„ฑ์ž</th><th>์ž‘์„ฑ๋‚ ์งœ</th></tr>
<%
    List<Board> list = svc.getlist();
    for(int i =0;i<list.size();i++){
        Board b = list.get(i);
        int num = b.getNum();
        String title = b.getTitle();
        String writer = b.getWriter();
        String date = b.getDate();%>
    
        <tr>        
                <td><%=num%></td>
                <td><a href="boardDetail.jsp?num=<%=num%>"><%=title%></a></td>
                <td><%=writer %></td>
                <td><%=date %></td>
        </tr>
    <%} %>
</table>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title> ๊ฒŒ์‹œ๊ธ€ ๋ฆฌ์ŠคํŠธ ๋ณด๊ธฐ </title>
</head>
<body>
<p>
[<a href="boardAdd.jsp"> ๊ฒŒ์‹œ๊ธ€ ๋“ฑ๋ก ํŽ˜์ด์ง€ ๊ฐ€๊ธฐ </a>]
</body>
</html>
cs

 

boardDetail.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
60
61
62
63
64
65
66
67
68
69
<%@page import="com.ezen.web.hello.Board"%>
<%@page import="java.util.List"%>
<%@page import="org.json.simple.JSONObject"%>
<%@ page contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<jsp:useBean id="svc" class= "com.ezen.web.hello.BoardService" scope="session"/>
<jsp:useBean id="key" class= "com.ezen.web.hello.Board">
    <jsp:setProperty name="key" property="*"/>
</jsp:useBean>
<%    
    Board b = svc.boardDetail(key);
    int num = b.getNum();
    String title = b.getTitle();
    String writer = b.getWriter();
    String date = b.getDate();
    int hit = b.getHit();
    String contents = b.getContents();
    
    %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>๊ฒŒ์‹œ๊ธ€ ์ƒ์„ธ๋ณด๊ธฐ </title>
</head>
<script src="https://code.jquery.com/jquery-3.6.1.min.js" 
integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ=" crossorigin="anonymous"></script>
<script type="text/javascript">
    function deleteBoard(num)
    {
        if(!confirm("์ •๋ง๋กœ ํ˜„์žฌ ๊ฒŒ์‹œ๊ธ€์„ ์‚ญ์ œํ•˜๊ฒ ์Šต๋‹ˆ๊นŒ?")) return;
 
        $.ajax({
            url:'boardDelete.jsp?'
            method:'post',
            data: {"num":num},
            cache : false,
            dataType: 'json',
            success: function(res){ 
                if(res.deleted){
                    alert(res.deleted ? '์‚ญ์ œ ์„ฑ๊ณต':'์—๋Ÿฌ'); 
                    location.href ='boardList.jsp';
                }
            },
            error : function(xhr,status,err){
                alert(err);
            }
        });
        return false;
    }
</script>
<body>
<table>
<tr><th>๋ฒˆํ˜ธ</th><th>์ œ๋ชฉ</th><th>์ž‘์„ฑ์ž</th><th>์ž‘์„ฑ์ผ</th><th>๊ธ€๋‚ด์šฉ</th><th>์กฐํšŒ์ˆ˜</th>
        <tr>        
                <td><%=num%></td>
                <td><%=title%></td>
                <td><%=writer %></td>
                <td><%=date %></td>
                <td><%=contents %></td>
                <td><%=hit %></td>
        </tr>
</table>
<p>
[<a href="boardAdd.jsp"> ๊ฒŒ์‹œ๊ธ€ ๋“ฑ๋ก ํŽ˜์ด์ง€ ๊ฐ€๊ธฐ </a>]
[<a href="boardEdit.jsp?num=<%=num%>"> ์ˆ˜์ • </a>]
[<a href="javascript:deleteBoard(<%=num%>);">์‚ญ์ œ</a>]
</body>
</html>
cs

 

boardEdit.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 import="java.util.Arrays"%>
<%@page import="com.ezen.web.hello.Board"%>
<%@page import="java.util.List"%>
<%@ page contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    <jsp:useBean id="svc" class= "com.ezen.web.hello.BoardService" scope="session"/>
<jsp:useBean id="key" class= "com.ezen.web.hello.Board">
    <jsp:setProperty name="key" property="*"/>
</jsp:useBean>
 
<% Board board = svc.boardDetail(key);     %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title> ํšŒ์› ์ •๋ณด ์ˆ˜์ • </title>
<script src="https://code.jquery.com/jquery-3.6.1.min.js" 
integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ=" crossorigin="anonymous"></script>
<script type="text/javascript">
    function boardUpdate()
    {
        var serData = $('#boardEdit').serialize();
        $.ajax({
            url:'boardUpdate.jsp'
            method:'post',
            data: serData,
            cache : false,
            dataType: 'json',
            success: function(res){ 
                if(res.updated){
                    alert(res.updated ? '์ˆ˜์ • ์„ฑ๊ณต':'์—๋Ÿฌ'); 
                    location.href ='boardDetail.jsp?num=<%=board.getNum()%>';
                }
            },
            error : function(xhr,status,err){
                alert(err);
            }
        });
        return false;
    }
</script>
</head>
<body>
<h3>๊ฒŒ์‹œ๊ธ€ ์ˆ˜์ •</h3>
<form id="boardEdit" onsubmit="return boardUpdate();">
<input type="hidden" name="num" value="<%=board.getNum()%>">
<div><label>๋ฒˆํ˜ธ:</label><span><%=board.getNum()%></span></div>
<div><label>์ œ๋ชฉ:</label><input type="text" id="title" name="title" value="<%=board.getTitle()%>"></div>
<div><label>์ž‘์„ฑ์ž:</label><span><%=board.getWriter()%></span></div>
<div><label>์ž‘์„ฑ์ผ:</label><span><%=board.getDate()%></span></div>
<div><label>๊ธ€๋‚ด์šฉ:</label><textarea id="contents" name="contents" rows="5" cols="20" value="<%=board.getContents()%>"></textarea></div>
<div><label>์กฐํšŒ์ˆ˜:</label><span><%=board.getHit() %></span></div>
<div class="btn"><button type="reset">์ทจ์†Œ</button>
     <button type="submit">์ ์šฉ</button>
     [<a href="boardList.jsp">๋ชฉ๋ก</a>]
</div>
</form>
</body>
</html>
cs

 

board.Update.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%@page import="org.json.simple.JSONObject"%>
<%@ page contentType="application/json; charset=utf-8"
    pageEncoding="utf-8"%>
    
<jsp:useBean id="key" class= "com.ezen.web.hello.Board">
    <jsp:setProperty name="key" property="*"/>
</jsp:useBean>
 
<jsp:useBean id="svc" class= "com.ezen.web.hello.BoardService" scope="session"/>
 
 
    <%
    boolean updated = svc.updateBoard(key);
    JSONObject jsObj = new JSONObject();
    jsObj.put("updated", updated);
    %>
    <%=jsObj.toJSONString()%>
cs

 

boardDelete.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%@page import="org.json.simple.JSONObject"%>
<%@ page contentType="application/json; charset=utf-8"
    pageEncoding="utf-8"%>
    
<jsp:useBean id="key" class= "com.ezen.web.hello.Board">
    <jsp:setProperty name="key" property="*"/>
</jsp:useBean>
 
<jsp:useBean id="svc" class= "com.ezen.web.hello.BoardService" scope="session"/>
 
 
    <%
    boolean deleted = svc.deleteBoard(key);
    JSONObject jsObj = new JSONObject();
    jsObj.put("deleted", deleted);
    %>
    <%=jsObj.toJSONString()%>
cs

 

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

 

์ œ๋ชฉ์„ ๋ˆ„๋ฅด๋ฉด ์ƒ์„ธ๋ณด๊ธฐ๋กœ ๋„˜์–ด๊ฐ„๋‹ค.

์ˆ˜์ • ๋งํฌ๋ฅผ ๋ˆ„๋ฅธ ๊ฒฐ๊ณผ
์ˆ˜์ • ์„ฑ๊ณต
์ƒ์„ธ๋ณด๊ธฐ์—์„œ ๊ธ€ ์‚ญ์ œ
์‚ญ์ œ ํ›„ ๊ฒฐ๊ณผ

 

๋Œ“๊ธ€