본문 바로가기

[Ajax] Ajax 적용하기 - jQuery.ajax() 방식-GET/POST

인포꿀팁 발행일 : 2020-12-07

ex.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
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page trimDirectiveWhitespaces="true" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/jquery/js/jquery.min.js">
</script>
<script type="text/javascript">
$(function(){
    $('#btnSend').click(function(){
        var query, url;
 
        query=$("form[name=myForm]").serialize(); // name 속성을 이용하여 위의 작업을 일괄처리해줌
        url="ex4_ok.jsp";
        $.ajax({
            type:"post",
            url:url,
            data:query, // data: 키값 키값
            //성공시
            success:function(data){
                $("#resultLayout").html(data);
            },
            //실패시
            error:function(e){
                console.log(e.responseText);
            }
            
        });
    });
});
</script>
</head>
<body>
 
<h3>AJAX-jQuery.ajax() : GET/POST 방식</h3>
<form name="myForm">
 
<p>
    <input type="text" name="num1" id="num1">
    <select name="oper" id="oper">
        <option value="+">더하기</option>
        <option value="-">빼기</option>
        <option value="*">곱하기</option>
        <option value="/">나누기</option>
    </select>
    <input type="text" name="num2" id="num2">
    <button type="button" id="btnSend"> = </button>
</p>
 
</form>
 
<hr>
 
<div id="resultLayout"></div>
 
</body>
</html>
cs

 ex_ok.jsp => 결과 처리 페이지

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<%@page import="java.net.URLDecoder"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page trimDirectiveWhitespaces="true" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%
    request.setCharacterEncoding("utf-8");
    int num1 = Integer.parseInt(request.getParameter("num1"));
    int num2 = Integer.parseInt(request.getParameter("num2"));
    String oper = request.getParameter("oper");
    String result="";
    
    switch(oper){
    case "+" : result=String.format("%d+%d=%d", num1,num2, num1+num2); break;
    case "-" : result=String.format("%d-%d=%d", num1,num2, num1-num2); break;
    case "*" : result=String.format("%d*%d=%d", num1,num2, num1*num2); break;
    case "/" : result=String.format("%d/%d=%d", num1,num2, num1/num2); break;
    }
%>
<%=result %>
 
 
cs

 

ajax() 사용하기

1) 사용자 요청 정보 받기

query=$("form[name=myForm]").serialize() 를 통해 요청정보 직렬화 한다.

 

2) 결과 처리할 페이지 url 정보도 저장한다.

 

3) $.ajax({ })에 정보를 기입한다.

  • type : get / post 여부
  • url : 결과 처리할 페이지
  • data : 직렬화된 값
  • success : 성공시 실행될 쿼리문
  • error : 실패 실행될 쿼리문
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$(function(){
    $('#btnSend').click(function(){
        var query, url;
 
        query=$("form[name=myForm]").serialize(); // name 속성을 이용하여 위의 작업을 일괄처리해줌
        url="ex4_ok.jsp";
        $.ajax({
            type:"post",
            url:url,
            data:query, // data: 키값 키값
            //성공시
            success:function(data){
                $("#resultLayout").html(data);
            },
            //실패시
            error:function(e){
                console.log(e.responseText);
            }
            
        });
    });
});
cs

댓글