Ajax에서 servlet 접근해서 데이터 가져오기
배워 놓고도 너무 어려워서 참고용으로 코드만 업로드 하겠다...
Ajax 예제
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<button type="button">클릭</button>
<!-- html의 Ajax에서 서블릿 접근해서 데이터 가져오기 -->
<script type="text/javascript">
$(function() {
$("button").click(function() {
$.ajax({
url : "./hello", // ./ 현재경로표시
type : "get",
// data : "id=abc&pwd=123",
data : { id:"ABC", pwd:"456"}, // 이 값을 가지고 servlet으로 간다.
// 매우중요!!
success : function(data) { // Ajax 목적 : data를 얻기 위함
// alert('success');
// alert(data);
// alert(JSON.stringify(data));// 날린 데이터 확인
// 1개 데이터
// alert(data.str);
// 여러개 데이터
// alert(data.map.title); // 날린 데이터 확인
// alert(data.map.content);
// Dto데이터 날리기
// alert(data); // object날라옴
// alert(JSON.stringify(data)); // json데이터 날라옴
// alert(data.list);
alert(data.list[0].number); // 날린 데이터 확인
alert(data.list[0].name);
// for문과 foreach문 사용해서 데이터 전체를 뽑을 수 있다.
},
errer : function() {
alert('errer');
}
});
});
});
</script>
</body>
</html>
java MemberDto 예제
package dto;
public class MemberDto {
private int number;
private String name;
public MemberDto() {}
public MemberDto(int number, String name) {
super();
this.number = number;
this.name = name;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Java Servlet 예제
package hello;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import dto.MemberDto;
import net.sf.json.JSONObject;
public class HelloServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("HelloServlet doGet()");
String id = req.getParameter("id"); // ajax는 파라미터가 보이지 않는다.
String pwd = req.getParameter("pwd");
System.out.println("id : " + id);
System.out.println("pwd : " + pwd);
// java로 넘긴건 JS로 넘기는게 어렵다... get.Attribute사용불가
String str = "World";
JSONObject jobj = new JSONObject();
// 문자열 전송
// jobj.put("str", str);
// 복수(여러개의)의 데이터 전송
HashMap<String, Object> map = new HashMap<String, Object>();
// map.put("title", "이것은 제목입니다");
// map.put("content", "이 글의 내용입니다");
// jobj.put("map", map);
// dto를 list로 전송
List<MemberDto> list = new ArrayList<MemberDto>();
list.add(new MemberDto(1001, "정수동"));
list.add(new MemberDto(1002, "홍두께"));
jobj.put("list", list);
resp.setContentType("application/x-json; charset=utf-8");
resp.getWriter().print(jobj); // 전송이 되는 부분
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("HelloServlet doPost()");
}
public void doProcess() {} // get, post 상관하기 싫을 때 사용
}
'IT > JavaScript' 카테고리의 다른 글
[JavaScript] 정규식 util 함수 만들어서 사용하기! (feat. JQuery) (0) | 2021.11.30 |
---|---|
[JavaScript] window객체 정의 / 메서드 (0) | 2021.10.13 |
[AJAX] Ajax에서 DB 취합 예시 (0) | 2021.06.16 |
[AJAX] Ajax에서 JSON 데이터 출력하기($.each() 함수 사용 예제) (5) | 2021.06.15 |
[AJAX] Ajax의 정의, Ajax 기본 문법 (0) | 2021.06.15 |