본문 바로가기

[Ajax] Ajax 적용하기 - jQuery.load() : GET방식

인포꿀팁 발행일 : 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
<%@ 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;
/*         var num1=$("#num1").val();
        var num2=$("#num2").val();
        var oper=$("#oper").val();
        
        query="num1="+num1+"&num2="+num2+"&oper="+encodeURIComponent(oper);
         */
        query=$("form[name=myForm]").serialize(); // name 속성을 이용하여 위의 작업을 일괄처리해줌
         
        url="ex1_ok.jsp?"+query;
        
        $("#resultLayout").load(url);// AJAX-GET 방식
    });
});
</script>
</head>
<body>
 
<h3>AJAX-jQuery.load() : GET 방식</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
<%@ 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

 

기본의 자바스크립트를 이용하여 get/post/xml/json으로 전송했던 것보다 jquery를 이용하게 되면 매우 짧은 코드로 작성할 수 있다.

 

작성 방법

jQuery 선택자를 통해 사용자 요청 이벤트르 받아서

serialize() 메소드를 통해 직렬화 작업한다.

해당 url주소를 load(url) 메소드로 실행하면 선택자로 지정한 곳에 해당 결과가 출력된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$(function(){
    $('#btnSend').click(function(){
        var query, url;
/*         var num1=$("#num1").val();
        var num2=$("#num2").val();
        var oper=$("#oper").val();
        
        query="num1="+num1+"&num2="+num2+"&oper="+encodeURIComponent(oper);
         */
        query=$("form[name=myForm]").serialize(); // name 속성을 이용하여 위의 작업을 일괄처리해줌
         
        url="ex1_ok.jsp?"+query;
        
        $("#resultLayout").load(url);// AJAX-GET 방식
    });
});
cs

댓글