์ฌ์ฉ์ ์ ๋ณด ์ถ๊ฐ ๊ธฐ๋ฅ์ AJAX ์์ฒญ์ผ๋ก ๊ตฌํ
์ฌ์ฉ์ ์ ๋ณด ์ถ๊ฐ ์ฑ๊ณต์ ํด๋น ์ ๋ณด์ ์์ธ์ ๋ณด ํ๋ฉด์ผ๋ก ์ด๋
Cache
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
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 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>
<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 savedUser()
{
//ํผ์ ์
๋ ฅ๋ ์ด์ฉ์ ์ ๋ณด๋ฅผ ๋น๋๊ธฐ์ ์ก ์์ฒญ์ผ๋ก ์ ๋ฌํ๊ณ
//์๋ต์ ํ ํ์ด์ง์์ ๋ฐ๋ก ๋ฐ์์ ์ฑ๊ณต ์คํจ ์ฌ๋ถ๋ฅผ alert๋ก ํ์ํ๋ค.
//์ด์ฉ์๊ฐ ํ์ธ์ ๋๋ฅด๋ฉด ๋ชฉ๋ก ํ์ด์ง๋ก ์ด๋ํ๋ค.
//ํผ์ ์๋ ๊ฐ๋ค์ ๋ฝ์์ ๋น๋๊ธฐ ์์ฒญ์ผ๋ก ์ ๋ฌํ๋ค.
//#์ id ์
๋ ํฐ
/*var cmd = $('#cmd').val();
var num = $('#num').val();
var email = $('#email').val();*/
var serData = $('#userRegForm').serialize();
var num = $('#num').val();
$.ajax({
url:'userc', //url์ ๋ง๊ฒ ์ค์ผํ๋ค.
method:'post',// url, method, data์ ์๋ฒ์ ๋ํ ์์ฒญ์ด๋ค.
data: serData,
cache : false,
dataType: 'json', //text๊ฐ ์๋ json์ผ๋ก ํ๋ฉด var jsobj = JSON.parse(res); ์ด ์ฝ๋๋ฅผ ํ ํ์๊ฐ ์์ด์ ธ์ ๊ฐ์ํ๋๋ค.
success: function(res){ //์์์ ์จ ์์ฒญ์๋ํ ์๋ฒ์ ์๋ต์ด ์ฌ๊ธฐ๋ก ๋ค์ด์จ๋ค.
alert(res.saved? '์ฌ์ฉ์ ์ถ๊ฐ ์ฑ๊ณต':'์๋ฌ'); //res์์์ saved๋ฅผ ๋ฃ์ด์ค์ผํ๋ค.
if(res.saved){
location.href = 'userc?cmd=detail&num='+num;
}
},
error : function(xhr,status,err){
//xhr : XMLHTTPRequest(๋น๋๊ธฐ์์ฒญ์ ์ํ ๊ฐ์ฒด)
// status :์๋ต ์ํ์ฝ๋(200:์ ์, 500:์คํ์ค๋ฅ, 400:url ์์ฒญ ์ค๋ฅ)
alert(err);
}
});
}
</script>
</head>
<body>
<div id="main">
<h3>์ฌ์ฉ์ ์ ๋ณด ๋ฑ๋ก</h3>
<form id = 'userRegForm' action="userc" method="post">
<input type="hidden" name="cmd" value="reg">
<div><label>๋ฒ ํธ</label><input id ='num' 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="button" onclick="savedUser();">์ ์ฅ</button></div>
</form>
</div>
</body>
</html>
|
cs |
63์ด์ ๋ฒํผ์ด ์๋ธ๋ฏธํธ๋ฉด ํผ์ ์ ์ถํด๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์ ์๋ฐ์คํฌ๋ฆฝํธ์ ํจ์๋ฅผ ๋๋ฆฌ์ง๋ฅผ ๋ชปํ๋ค. ๋ฐ๋ผ์ ์๋ฌด ๊ธฐ๋ฅ์ด ์๋ ๋ฒํผ์ผ๋ก ๋ฐ๊ฟ์ค์ผํ๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ฌด ๊ธฐ๋ฅ์ด ์๊ธฐ ๋๋ฌธ์ ๋ฒํผ์ด ํด๋ฆญ๋์์ ๋ ํจ์๋ฅผ ์คํํ๋ผ๋ ์ฝ๋๋ฅผ ๋ฃ์ด์ค์ผํ๋ค.
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
74
75
76
77
78
79
80
81
|
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();
PrintWriter out =response.getWriter();
String json ="{\"saved\":"+saved+"}";
out.println(json);
out.flush();
//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 |
์คํ๊ฒฐ๊ณผ:
ํํ์ด์ง์์ ์ฌ์ฉ์ ์ถ๊ฐ ์ฑ๊ณต ์คํจ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ธฐ ๋๋ฌธ์ userRegResult.jsp๊ฐ ํ์๊ฐ ์์ด์ง๋ค.
์ธ๋ถ ์ธํฐ๋ท์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ ธ์์ ์๋ฐ์ ๋ถ์ด๋ฃ๊ธฐ
2
3
4
๋ค์ด ๋ฐ์ ํ์ผ์ ํด๋น ํดํค์ง์ WEB-INF์ lib ์ ์ํฌํธํด์ค๋ค.
json๊ฐ์ฒด ์์ฑ์๋ฅผ ์ฌ์ฉํ์ฌ json map ๋ฉ์๋๋ฅผ ์ฝ๊ฒ ์ธ ์ ์๊ฒ ๋๋ค.
์ฌ์ฉ์ ์ ๋ณด ์ญ์ ๋ ajax ๋ฐฉ์์ผ๋ก ์ญ์ ํ๊ธฐ
userDatail.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="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"></script>
<script>
function deleteUser(num)
{
if(!confirm("์ ๋ง๋ก ํ์ฌ ์ด์ฉ์ ์ ๋ณด๋ฅผ ์ญ์ ํ๊ฒ ์ต๋๊น?")) return;
var obj = {"cmd":"delete","num":num};
$.ajax({
url:'userc',
method:'post',
data: obj,
cache : false,
dataType: 'json',
success:function(res){
if(res.delete){
alert('์ด์ฉ์ ์ ๋ณด ์ญ์ ์ฑ๊ณต!');
location.href = "userc?cmd=list";
}else{
alert('์ฌ์ฉ์ ์ ๋ณด ์ญ์ ์คํจ');
}
},
err: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>
<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 |
userController class
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
|
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;
import org.json.simple.JSONObject;
@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();
PrintWriter out =response.getWriter();
//String json ="{\"saved\":"+saved+"}";
JSONObject jsobj = new JSONObject();
jsobj.put("saved",saved);
out.println(jsobj.toJSONString());
out.flush();
//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);
JSONObject jsobj = new JSONObject();
PrintWriter out =response.getWriter();
jsobj.put("delete",delete);
out.println(jsobj.toJSONString());
out.flush();
//getServletContext().getRequestDispatcher("/userDelete.jsp").forward(request, response);
}else {
System.err.println("์ค๋ฅ๊ฐ ๋ฐ์๋์์ต๋๋ค.");
}
}
}
|
cs |
์คํ ๊ฒฐ๊ณผ:
button์ submit ๊ธฐ๋ฅ์ ๋ค์ ์จ์ form์ ์ ์กํ๊ธฐ ์ ์ form ๋ฐ์ดํฐ ์ ํจ์ฑ ๊ฒ์ฌ ์ํํ๊ธฐ
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
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
|
<%@ 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>
<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 savedUser()
{
//ํผ์ ์
๋ ฅ๋ ์ด์ฉ์ ์ ๋ณด๋ฅผ ๋น๋๊ธฐ์ ์ก ์์ฒญ์ผ๋ก ์ ๋ฌํ๊ณ
//์๋ต์ ํ ํ์ด์ง์์ ๋ฐ๋ก ๋ฐ์์ ์ฑ๊ณต ์คํจ ์ฌ๋ถ๋ฅผ alert๋ก ํ์ํ๋ค.
//์ด์ฉ์๊ฐ ํ์ธ์ ๋๋ฅด๋ฉด ๋ชฉ๋ก ํ์ด์ง๋ก ์ด๋ํ๋ค.
//ํผ์ ์๋ ๊ฐ๋ค์ ๋ฝ์์ ๋น๋๊ธฐ ์์ฒญ์ผ๋ก ์ ๋ฌํ๋ค.
//#์ id ์
๋ ํฐ
/*var cmd = $('#cmd').val();
var num = $('#num').val();
var email = $('#email').val();*/
var serData = $('#userRegForm').serialize();
var num = $('#num').val();
$.ajax({
url:'userc', //url์ ๋ง๊ฒ ์ค์ผํ๋ค.
method:'post',// url, method, data์ ์๋ฒ์ ๋ํ ์์ฒญ์ด๋ค.
data: serData,
cache : false,
dataType: 'json', //text๊ฐ ์๋ json์ผ๋ก ํ๋ฉด var jsobj = JSON.parse(res); ์ด ์ฝ๋๋ฅผ ํ ํ์๊ฐ ์์ด์ ธ์ ๊ฐ์ํ๋๋ค.
success: function(res){ //์์์ ์จ ์์ฒญ์๋ํ ์๋ฒ์ ์๋ต์ด ์ฌ๊ธฐ๋ก ๋ค์ด์จ๋ค.
alert(res.saved? '์ฌ์ฉ์ ์ถ๊ฐ ์ฑ๊ณต':'์๋ฌ'); //res์์์ saved๋ฅผ ๋ฃ์ด์ค์ผํ๋ค.
if(res.saved){
location.href = 'userc?cmd=detail&num='+num;
}
},
error : function(xhr,status,err){
//xhr : XMLHTTPRequest(๋น๋๊ธฐ์์ฒญ์ ์ํ ๊ฐ์ฒด)
// status :์๋ต ์ํ์ฝ๋(200:์ ์, 500:์คํ์ค๋ฅ, 400:url ์์ฒญ ์ค๋ฅ)
alert(err);
}
});
}
function formCheck(){
var num = $('input[name=num]').val();
var name = $('input[name=name]').val();
var phone = $('input[name=phone]').val();
var email = $('input[name=email]').val();
if(num==''|| name==''|| phone==''|| email==''){
alert('๋ชจ๋ ํญ๋ชฉ ์
๋ ฅ์ ํ์์
๋๋ค.');
return false;
}
alert('์ ์์ ์ผ๋ก ์
๋ ฅํ์ฌ ํผ์ ์ ์กํฉ๋๋ค.');
return false;
}
</script>
</head>
<body>
<div id="main">
<h3>์ฌ์ฉ์ ์ ๋ณด ๋ฑ๋ก</h3>
<form id = 'userRegForm' action="userc" method="post" onsubmit="return formCheck();">
<input type="hidden" name="cmd" value="reg">
<div><label>๋ฒ ํธ</label><input id ='num' 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>
<!-- <div><button type="button" onclick="savedUser();">์ ์ฅ</button></div> -->
</form>
</div>
</body>
</html>
|
cs |
์คํ๊ฒฐ๊ณผ:
์ ์ฅ ๋ฒํผ์ ๋๋ฅด๋ฉด submit์ด ์คํ๋๊ณ ๋ธ๋์ฐ์ form์ ๋ณด๋ด๊ธฐ ์ ์ formCheck() ํจ์๊ฐ ๋์๊ฐ๋ค.
์ด๋ label์ id์ ์ฃผ์ง ์๋๋ผ๋ ajax์ ๋ฐฉ์์ผ๋ก' input[ ]' ์ ์จ์ ๊ฐ์ฒดํ ํ ์ ์๋ค.
4๊ฐ์ง ์์ฑ์ค ๋น ๊ฐ์ด ์๋ค๋ฉด ๋ชจ๋ ํญ๋ชฉ์ ๋ค ์ ๋ ฅํ๋ผ๊ณ alert์ฐฝ์ ๋์ธ ์ ์๊ฒ ๋๋ค.
๋๊ธ