ajax 문법이 어느역할을 하는지? 를 중점에 두고 보시면 좋을겁니다 !!

 

사용된 예제는

Spring이 아니고 DynamicWebProject 입니다. 통신방법 메소드 맵핑 하는 맥락은 비슷비슷하지만요~

 


ajax 공부를 하기위해 여러 블로그들을 돌아다니다 보면,  $.get , $.post ? .success() 등등.. 다양한 문법이 있는데

문법은 다 다르지만 작동은 다 될거에요 !!! 

 

ajax 문법 정의

$.ajax({

  (요청 정보 작성)

  (필수)type: get,post,delete ...    , HTTP Method (기본값 GET 이지만 그래도 명시해주는게 좋음)

  (필수)url: "http://localhost:8080/블라블라" , 요청을 보낼 주소

  data:  , 서버에 전송할 http의 body ( 보통 GET 요청은 data가 없다 )

  contentType:  , (기본값)" application / x - www - form - urlencoded "

  dataType: "text, html, xml, json ... " 서버에서 반환되는 데이터 형식을 지정합니다.

  (dataType 생략할 시 jQuery가 알아서 정함)

})

.done(function(result){

  요청 성공시 동작하는 콜백함수입니다!!

})

 

이렇게 틀을 먼저 만들고 내용을 채워나가는 걸 추천드립니다 ~

$.ajax({}).done(res=>{}).fail(error=>{})

 

getajax.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
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="getajax()">
    <input type="text" id="username" name="username" placeholder="username"/>
    <input type="password" id="password" name="password" placeholder="password"/>
</form>
<button onclick="getajax()">클릭</button>
</body>
 
<script>
function getajax(){
    var username = $("#username").val();
    var password = $("#password").val();
    console.log(username);
    console.log(password);
 
    var params = "username="+username;
    params += "&password="+password;
    
    $.ajax({
        //GET으로 key=value로 데이터를 전달하고 text/plain으로 응답받을 예정
        type:"GET",
        url:"http://localhost:8000/ajax/ajax1?" + params,
        //data: , get은 전송할 http의 body가 없음, 그래서 data필드가 필요없음
        //contentType: ,전송한 data가 없으니까 그 data를 설명한 필드도 필요없음
        dataType: "text" 
    })
    .done(function(result){ //ajax통신 완료후에 정상이면 실행
        alert(result);
        })
    .fail(function(){
        alert("통신실패");
        });
}
    
</script>
</html>
cs

get방식의 주소요청 (파라미터가 주소에 보인다)

31행 : url = http://localhost:8000/ajax/ajax1? + "username="+username + "&password="+password

 

 

Ajax1.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
package com.cos.ajax;
 
import java.io.IOException;
import java.io.PrintWriter;
 
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("/ajax1")
public class Ajax1 extends HttpServlet {
    private static final long serialVersionUID = 1L;
 
    public Ajax1() {
        super();
    }
 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        
        System.out.println("username: "+username);
        System.out.println("password: "+password);
        
        // ajax의 done함수 result 에 들어갈 내용
        PrintWriter out = response.getWriter();
        response.setCharacterEncoding("utf-8");
        
        StringBuffer sb = new StringBuffer();
        sb.append("username="+username+"\n");
        sb.append("password="+password);
        
        out.println(sb);
        out.flush();
    }
 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 
    }
 
}
 
cs

 

12행 : @WebServlet("/ajax1") : /ajax1 으로 끝나는 주소요청을 담당하는 java파일임을 알린다.

20행 : doGet(request, response) : get 요청일때 동작하는 함수

21, 22행 : 요청된 주소( url = http://localhost:8000/ajax/ajax1? + "username="+username +"&password="+password )의 파라미터 이름이 username, password인 값을 자바 변수로 정의한다

 

28행 : requset (요청)은 모두 파악했으니, 이제 response (응답)할 차례.

32, 33행 : 응답을 HTML로 하기때문에 그에 맞는 문법을 사용한다. ( HTML 태그가 사용가능하다 )

 

 

 

 

 

 

 

결과

 

결과 해석

 

ajax 문법 정의

$.ajax({

  (요청 정보 작성)

  (필수)type: get,post,delete ...    , HTTP Method (기본값 GET 이지만 그래도 명시해주는게 좋음)

  (필수)url: "http://localhost:8080/블라블라" , 요청을 보낼 주소

  data:  , 서버에 전송할 http의 body ( 보통 GET 요청은 data가 없다 )

  contentType:  , (기본값)" application / x - www - form - urlencoded "

  dataType: "text, html, xml, json ... " 서버에서 반환되는 데이터 형식을 지정합니다.

  (dataType 생략할 시 jQuery가 알아서 정함)

})

.done(function(result){

  요청 성공시 동작하는 콜백함수입니다!!

})

 

 

 

 

 

 

 

 

 

 

아직 미완성입니다

'AJAX' 카테고리의 다른 글

ajax 통신 개념정리  (0) 2021.03.27
(펌)HTTP 그리고 REST API 다가가기  (0) 2021.03.27

+ Recent posts