Web programming

(22.11.08)Web ํ”„๋กœ๊ทธ๋ž˜๋ฐ: AJAX, JSON, jQuery,DOM

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

์ด์šฉ์ž ์ƒ์„ธ๋ณด๊ธฐ์—์„œ ์ด๋ฉ”์ผ ์ˆ˜์ •๊ณผ ์ด์šฉ์ž ์‚ญ์ œ ๊ธฐ๋Šฅ ๋„ฃ๊ธฐ

 

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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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("edit"))
        {
               UserService svc = new UserService(request);
               User u = svc.getUser();
               request.setAttribute("u", u);
               getServletContext().getRequestDispatcher("/userupdate.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 if(cmd.equals("update"))
        {
            UserService svc = new UserService(request);
            boolean update = svc.userUpdate();
            request.setAttribute("update", update);
            getServletContext().getRequestDispatcher("/updateResult.jsp").forward(request, response);
        }else if(cmd.equals("delete"))
        {
            UserService svc = new UserService(request);
            boolean delete = svc.userDelete();
            request.setAttribute("delete", delete);
            getServletContext().getRequestDispatcher("/userDelete.jsp").forward(request, response);
        }else {
            System.err.println("์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.");
        }
    }
}
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
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;
    }
    public boolean userUpdate()
    {
       int num = Integer.parseInt(request.getParameter("num"));
       String email = request.getParameter("email");
       List<User> list = deserialize();
       User key = new User(num);
       if(list.contains(key)) {
           list.get(list.indexOf(key)).setEmail(email);
           serialize(list);
           return true;
       }
       return false;
    }
       public boolean userDelete()
        {
           int num = Integer.parseInt(request.getParameter("num"));
           List<User> list = deserialize();
           User key = new User(num);
           if(list.contains(key)) {
               list.remove(list.indexOf(key));
               serialize(list);
               return true;
           }
           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

 

userDetail.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
<%@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>
<style type="text/css">
   #container { border:1px solid black; padding:1em; 
            width:fit-content; margin:0 auto; }
   label { display:inline-block; width:5em; margin-right:1em;
         border-bottom:1px solid black; }
   h3 {width:fit-content; margin:0.5em auto; }
</style>
<script>
    function deleteUser(num)
    {
        if(confirm("์ •๋ง๋กœ ํ˜„์žฌ ์ด์šฉ์ž ์ •๋ณด๋ฅผ ์‚ญ์ œํ•˜๊ฒ ์Šต๋‹ˆ๊นŒ?"))
            {
                location.href='userc?cmd=delete&num='+num;
            }
    }
</script>
</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>
[<a href="userc?cmd=list"> ๋“ฑ๋ก๋œ ์ด์šฉ์ž ์ •๋ณด ๋ณด๊ธฐ </a>]
[<a href="userc?cmd=edit&num=<%=u.getNum()%>"> ์ˆ˜์ • </a>]
[<a href="javascript:deleteUser(<%=u.getNum()%>);"> ์‚ญ์ œ </a>]
</div>
</body>
</html>
cs
35์—ด ajax ๋ฐฉ์‹์ด ์•„๋‹Œ get๋ฐฉ์‹ ์š”์ฒญ

 

userupdate.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
<%@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>
<style type="text/css">
   #container { border:1px solid black; padding:1em; 
            width:fit-content; margin:0 auto; }
   label { display:inline-block; width:5em; margin-right:1em;
         border-bottom:1px solid black; }
   h3 {width:fit-content; margin:0.5em auto; }
</style>
</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> 
<form action="userc" method="post">
<input type="hidden" name="cmd" value="update">
<input type="hidden" name="num" value="<%= u.getNum() %>">
<div><label>์ด๋ฉ”์ผ</label> <span><input type="text" name="email" value="<%=u.getEmail()%>"></span></div>
 <button type="reset">[์ทจ์†Œ]</button>
 <button type="submit">[์ ์šฉ]</button>
[<a href="userc?cmd=list"> ๋“ฑ๋ก๋œ ์ด์šฉ์ž ์ •๋ณด ๋ณด๊ธฐ </a>]
</form>
</div>
</body>
</html>
cs

 

updateResult.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%
    boolean update = (Boolean) request.getAttribute("update");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>์ด์šฉ์ž ์ •๋ณด ์ˆ˜์ •๊ฒฐ๊ณผ</title>
<script type="text/javascript">
    var msg = <%=update%> ? "์ •์ƒ์ ์œผ๋กœ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค" : "์ˆ˜์ •์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค";
    alert(msg);
    location.href = "userc?cmd=list";
</script>
</head>
<body>
</body>
</html>
cs

 

userDelete.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%
    boolean delete = (Boolean) request.getAttribute("delete");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>์ด์šฉ์ž ์ •๋ณด ์‚ญ์ œ๊ฒฐ๊ณผ</title>
<script type="text/javascript">
    var msg = <%=delete%> ? "์ •์ƒ์ ์œผ๋กœ ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค" : "์‚ญ์ œ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค";
    alert(msg);
    location.href = "userc?cmd=list";
</script>
</head>
<body>
</body>
</html>
cs

 

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

์ƒ์„ธ๋ณด๊ธฐ์—์„œ ์‚ญ์ œํ•˜๊ธฐ


์ˆ˜์ •ํ•˜๊ธฐ 

modal window

userDetail.jsp๋Š” ์ด์šฉ์ž ์ƒ์„ธ๋ณด๊ธฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์„œ ์ˆ˜์ •๊ณผ ์‚ญ์ œ ๋ฒ„ํŠผ์„ ๋งŒ๋“ค์–ด ์ค€๋‹ค.
๋งํฌ๋ฅผ ๊ฑธ์–ด ๋ฒˆํ˜ธ์— ํ•ด๋‹นํ•˜๋Š” ์‚ฌ๋žŒ์„ ๊ณ ์น˜๊ฒŒ๋”ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ•จ์ˆ˜๋ฅผ ์ฃผ์–ด ์ด์šฉ์ž๊ฐ€ ์‚ญ์ œ๋ฅผ ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ํ•œ๋ฒˆ ๋” ๋ฌผ์–ด๋ณด๋Š” ๊ธฐ๋Šฅ์„ ๋„ฃ์–ด์ค€๋‹ค. 

UserService ์„œ๋น„์Šคํด๋ž˜์Šค์˜ userUpdate()๋ฉ”์†Œ๋“œ๋ฅผ ๋ณด๋ฉด ์š”์ฒญ์—์„œ ๋ฐ›์•„์˜จ ๋ฒˆํ˜ธ์™€ ์ด๋ฉ”์ผ์„ ๊ฐ๊ฐ ์ •์ˆ˜ ๋ณ€์ˆ˜์™€ ๋ฌธ์ž์—ด ๋ณ€์ˆ˜์— ์ €์žฅํ•ด์ค€๋‹ค.
์ •์ˆ˜ ๋ณ€์ˆ˜๋Š” ํ‚ค ๊ฐ’์ด ๋˜์–ด ๊ฐ์ฒด๊ฐ€ ์žˆ๋Š”์ง€ ์ฐพ์„ ๋•Œ ์‚ฌ์šฉํ•˜๊ณ  ๋ฌธ์ž์—ด ๊ฐ์ฒด๋Š” setEmail()๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ›์•„์˜จ ์ˆ˜์ • ์ด๋ฉ”์ผ์„ ์ƒˆ๋กœ ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•˜๊ณ  ํŒŒ์ผ์„ ์ง๋ ฌํ™”ํ•œ๋‹ค.
์ˆ˜์ •์ด ์™„๋ฃŒ ๋๋‹ค๋ฉด true๋ฅผ ๋ฆฌํ„ดํ•ด์ฃผ๊ณ  ์ด true๋Š” UserController ์„œ๋ธ”๋ฆฟ ํด๋ž˜์Šค์—์„œ ๋ฐ›์•„์„œ updatResult.jsp๋กœ ๋ณด๋‚ด์ค€๋‹ค.
๋ฐ›์•„์˜จ ๊ฐ’์ด true๋ฉด "์ •์ƒ์ ์œผ๋กœ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค."์ถœ๋ ฅํ•˜๊ฒŒํ•˜๊ณ  false๋ฉด "์ˆ˜์ •์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค"๋ฅผ ์ถœ๋ ฅํ•˜๊ฒŒ ํ•˜๊ฒŒ ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋งํฌ๋ฅผ ๊ฑธ์–ด์ค˜์„œ ๋ชฉ๋ก๋ณด๊ธฐ๋กœ ๋Œ์•„๊ฐ€๊ฒŒํ•ด์ค€๋‹ค.

 

์‚ญ์ œํ•˜๊ธฐ๋„ ๋น„์Šทํ•œ ๋ฐฉ์‹์œผ๋กœ ํ•˜๋Š”๋ฐ ์‚ญ์ œ๋Š” UserService ์„œ๋น„์Šคํด๋ž˜์Šค์˜ userDelete()๋ฉ”์†Œ๋“œ ์—์„œ remave()๋ฉ”์†Œ๋“œ๋ฅผ ์จ์„œ ์‚ญ์ œํ•œ๋‹ค.


AJAX๋ž€ (Asynchronous Javascript And XML)์˜ ์•ฝ์ž๋กœ ๋น„๋™๊ธฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์™€ XML์ด๋ž€ ๋œป์ด๋‹ค.

๊ธฐ์กด์€ ์š”์ฒญ์ด ์˜ค๋ฉด ์‘๋‹ต์œผ๋กœ ํ™”๋ฉด ์ „์ฒด๋ฅผ ๊ฐฑ์‹ ํ•ด์•ผ๋งŒ ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ™”๋ฉด์˜ ๋ฆฌํ”„๋ ˆ์‰ฌ ์—†์ด ์„œ๋ฒ„์—์„œ ์‘๋‹ต ๋ฐ›์„ ๊ฑธ ๊ทธ ํŽ˜์ด์ง€์—์„œ ๋ฐ”๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

JSON (JavaScript Object Notation)"ํ‚ค-๊ฐ’ ์Œ"์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์ธ๊ฐ„์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€ ํฌ๋งท์ด๋‹ค. ๋น„๋™๊ธฐ ๋ธŒ๋ผ์šฐ์ €/์„œ๋ฒ„ ํ†ต์‹  (AJAX)์„ ์œ„ํ•ด, ๋„“๊ฒŒ๋Š” XML(AJAX๊ฐ€ ์‚ฌ์šฉ)์„ ๋Œ€์ฒดํ•˜๋Š” ์ฃผ์š” ๋ฐ์ดํ„ฐ ํฌ๋งท์ด๋‹ค. 

JSON ๋ฐ์ดํ„ฐ ํ˜•์‹ : {"key": "value"} 

 

JAVASCRIPT LIBRARY ์ค‘์— ๋„๋ฆฌ ์“ฐ์ด๋Š” jQuery๋ฅผ ์ด์šฉํ•˜์—ฌ  AJAX ํ™œ์šฉ

DOM : Document Object Model (html ํƒœ๊ทธํ•œ๊ฐœํ•œ๊ฐœ๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด๋กœ ๋‹ค๋ฃฐ์ˆ˜ ์žˆ๊ฒŒํ•œ๋‹ค.)

 

 

userupdate.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
<%@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>
<style type="text/css">
   #container { border:1px solid black; padding:1em; 
            width:fit-content; margin:0 auto; }
   label { display:inline-block; width:5em; margin-right:1em;
         border-bottom:1px solid black; }
   h3 {width:fit-content; margin:0.5em auto; }
</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"> //์ ์šฉ์„ ๋ˆ„๋ฅด๋ฉด form์ด ๋‚˜๊ฐ€๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ์ด ํ•จ์ˆ˜๊ฐ€ ๋Œ์•„๊ฐ€๊ฒŒ๋” ํ•ด์•ผํ•œ๋‹ค.
    function updateUser()
    {
        //ํผ์— ์ž…๋ ฅ๋œ ์ด์šฉ์ž ์ •๋ณด๋ฅผ ๋น„๋™๊ธฐ์ „์†ก ์š”์ฒญ์œผ๋กœ ์ „๋‹ฌํ•˜๊ณ  
        //์‘๋‹ต์„ ํ˜„ ํŽ˜์ด์ง€์—์„œ ๋ฐ”๋กœ ๋ฐ›์•„์„œ ์„ฑ๊ณต ์‹คํŒจ ์—ฌ๋ถ€๋ฅผ alert๋กœ ํ‘œ์‹œํ•œ๋‹ค.
        //์ด์šฉ์ž๊ฐ€ ํ™•์ธ์„ ๋ˆ„๋ฅด๋ฉด ๋ชฉ๋ก ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•œ๋‹ค.
        //ํผ์— ์žˆ๋Š” ๊ฐ’๋“ค์„ ๋ฝ‘์•„์„œ ๋น„๋™๊ธฐ ์š”์ฒญ์œผ๋กœ ์ „๋‹ฌํ•œ๋‹ค.
        //#์€ id ์…€๋ ‰ํ„ฐ
        var cmd = $('#cmd').val();
        var num = $('#num').val();
        var email = $('#email').val();
        var serData = $('#updateForm').serialize();
        
        $.ajax({
            url:'userc'//url์— ๋งž๊ฒŒ ์ค˜์•ผํ•œ๋‹ค.
            method:'post',
            data: serData,
            dataType: 'text',
            success: function(res){
                var jsobj = JSON.parse(res);
                alert(jsobj.update? '์ˆ˜์ • ์„ฑ๊ณต':'์—๋Ÿฌ');
                if(jsobj.update){
                    location.href = 'userc?cmd=list';
                }
            },
            error : function(xhr,status,err){
                alert(err);
            }
        });
    }
</script>
</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> 
<form id='updateForm' action="userc" method="post">
<input id='cmd' type="hidden" name="cmd" value="update">
<input id='num' type="hidden" name="num" value="<%= u.getNum() %>">
<div><label>์ด๋ฉ”์ผ</label> <span><input id= 'email' type="text" name="email" value="<%=u.getEmail()%>"></span></div>
 <button type="reset">[์ทจ์†Œ]</button>
 <button type="button" onclick="updateUser();">[์ ์šฉ]</button>
[<a href="userc?cmd=list"> ๋“ฑ๋ก๋œ ์ด์šฉ์ž ์ •๋ณด ๋ณด๊ธฐ </a>]
</form>
</div>
</body>
</html>
cs

 

updateResult.jsp

1
2
3
4
5
6
<%@ page contentType="application/json; charset=utf-8" pageEncoding="utf-8"%>
<%
    boolean update = (Boolean) request.getAttribute("update");
%>
{"update": <%=update%>}
 
cs

 

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

์š”์ฒญ์„ ajax๋ฐฉ์‹์„ ์ด์šฉํ•˜๋ฉด ๊ฒฐ๊ณผ๋ฅผ ๋ณ€์ˆ˜ ๋ฐ”๋กœ ์‘๋‹ต ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.(์š”์ฒญํ•œ ํŽ˜์ด์ง€์—์„œ ๋ฐ”๋กœ ๋ฐ›๋Š”๋‹ค. ํ™”๋ฉด ๋ฆฌํ”„๋ ˆ์‰ฌํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ง„๋‹ค.)


์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ˆ˜์ •ํ•ด์„œ  updateResult.jsp๋ฅผ ์•„์˜ˆ ์“ฐ์ง€๋„ ์•Š๊ณ  alert ์ถœ๋ ฅ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค

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
import java.io.IOException;
import java.io.PrintWriter;
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("edit"))
        {
               UserService svc = new UserService(request);
               User u = svc.getUser();
               request.setAttribute("u", u);
               getServletContext().getRequestDispatcher("/userupdate.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 if(cmd.equals("update"))
        {
            UserService svc = new UserService(request);
            boolean update = svc.userUpdate();
            PrintWriter out =response.getWriter();
            String json ="{\"update\":"+update+"}";
            out.println(json);
            out.flush();
            //  \ : ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž - ์›๋ž˜ ๊ฐ€์ง„ ๊ธฐ๋Šฅ์—์„œ ๋ฒ—์–ด๋‚˜๊ฒŒ ํ•จ
            //request.setAttribute("update", update);
            //getServletContext().getRequestDispatcher("/updateResult.jsp").forward(request, response);
        }else if(cmd.equals("delete"))
        {
            UserService svc = new UserService(request);
            boolean delete = svc.userDelete();
            request.setAttribute("delete", delete);
            getServletContext().getRequestDispatcher("/userDelete.jsp").forward(request, response);
        }else {
            System.err.println("์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.");
        }
    }
}
cs

\" : "(ํฐ๋”ฐ์˜ดํ‘œ) ์ถœ๋ ฅ

 

 

 updateResult.jsp์—์„œ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ๋„˜์–ด์˜จ boolean ๊ฐ’์„ ์ด์šฉํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ์ปจํŠธ๋กค์—์„œ ๋ฐ”๋กœ boolean๊ฐ’์„ ์ด์šฉํ•œ๋‹ค.

๋Œ“๊ธ€