개발기록/Java

Ajax 예제

100'S 2022. 1. 19. 22:52

 

Ajax 예제

 

1. 버튼 클릭 시 특정 값을 서버에 전송하기

- jsp 파일

 

<li> 
    버튼 클릭 시 특정 값을 서버에 전송하기 <br>
    이름 : <input type="text" name="myName" id="myName" />
    <button id="nameBtn">이름 보내기</button>

    <script>
        $('#nameBtn').click(function(){
            // jQuery 에서는 총 3개의 Ajax 함수를 제공한다
            // $.get("요청할 주소 URL", {전달할 키 : 값}, 리턴할 함수);
            // $.post("요청할 주소 URL", {전달할 키 : 값}, 리턴할 함수);
            // $.ajax();  <-- 공통함수
            $.ajax({
                url : "test1.do", // 전송할 주소 URL
                data : { name : $('#myName').val() }, // 서버에 전달할 값
                type : "get",
                success : function(data) {
                        console.log("이름 전송 성공");
                }, error : function(requeset, status, error) {
                    console.log("request : " + request);
                    console.log("status : " + status);
                    console.log("error : " + error);
                }, complete : function(){
                    console.log("complete는 무조건 실행");
                }
            });
        });
    </script>
</li>

 

 

- java 파일

 

/**
 * Servlet implementation class TestServlet1
 */
@WebServlet("/test1.do")
public class TestServlet1 extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public TestServlet1() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		
		String name = request.getParameter("name");
		System.out.println("사용자 이름 확인 : " + name);
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 

2. 버튼 클릭시 서버에서 보낸 값을 사용자가 확인하기

- jsp

<li> 
    버튼 클릭했을 때 서버에서 보낸 값을 사용자가 확인하기 <br />
    <button id="getServerTextBtn">서버가 보낸 값 확인</button>

    <p id="p1" style="width : 300px; height : 100px; border : 3px solid red"></p>

    <script>
        $('#getServerTextBtn').click(function(){
            $.ajax({
                url : "test2.do",
                //url : "test15.do", // 에러발생 여부 확인
                type : "get",
                success : function(data){
                    $('#p1').text(data);
                }, error : function() {
                    $('#p1').text("에러발생!");
                }
            });
        });
    </script>
   </li>

 

- java

/**
 * Servlet implementation class TestServlet2
 */
@WebServlet("/test2.do")
public class TestServlet2 extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public TestServlet2() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setCharacterEncoding("UTF-8");
		response.getWriter().print("서버에서 가져온 값입니다.");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}
}

3. 서버로 값 전달 후 그 결과를 문자열로 받아오기

- jsp

<li>
    서버로 값 전달 후 그 결과를 문자열로 받아오기 <br />
    <h3>두 값을 더한 결과를 받아오기</h3>
    첫번째 숫자 : <input type="number"  id="firstNum" /> <br />
    두번째 숫자 : <input type="number"  id="secondNum" /> <br />
    <button id="plusBtn"> 두 수 더하기 </button>

    <p id="p2"></p>
    <script>
        $('#plusBtn').click(function(){
            $.ajax({
                url : "test3.do",
                data : {
                    firstNum : $('#firstNum').val(),
                    secondNum : $('#secondNum').val()
                }, type : "get",
                success : function(data){
                    $('#p2').text(data);
                }, error : function(){
                    $('#p2').text("에러발생이다");
                }
            });
        });
    </script>
</li>

 

- java

/**
 * Servlet implementation class TestServlet3
 */
@WebServlet("/test3.do")
public class TestServlet3 extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public TestServlet3() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		int firstNum = Integer.parseInt(request.getParameter("firstNum"));
		int secondNum = Integer.parseInt(request.getParameter("secondNum"));
		int result = firstNum + secondNum;
		response.getWriter().print(result);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}
}

4. JSON 객체를 전달하고 결과 확인하기

- jsp

<li>
    JSON 객체를 전다랗고 결과를 확인하기 <br />
    내 버킷리스트 작성하기 <br />
    1) <input type="text" id="mem1" /> <br />
    2) <input type="text" id="mem2" /> <br />
    3) <input type="text" id="mem3" /> <br />
    4) <input type="text" id="mem4" /> <br />
    5) <input type="text" id="mem5" /> <br />
    <button id="memTest">버킷리스트 보내기</button>	

    <script>
        $('#memTest').click(function(){

            var jsonData = new Object();

            jsonData.mem1 = $('#mem1').val();
            jsonData.mem2 = $('#mem2').val();
            jsonData.mem3 = $('#mem3').val();
            jsonData.mem4 = $('#mem4').val();
            jsonData.mem5 = $('#mem5').val();

            console.log(jsonData);

            $.ajax({

                url : "test4.do",
                data : jsonData,
                type : "get",
                success : function(data){

                    console.log("성공했다");

                }, error : function(){

                    console.log("실패했따");

                }

            });
        });	
    </script>
</li>

 

- java

@WebServlet("/test4.do")
public class TestServlet4 extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public TestServlet4() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		request.setCharacterEncoding("UTF-8");
	
		String mem1 = request.getParameter("mem1");
		String mem2 = request.getParameter("mem2");
		String mem3 = request.getParameter("mem3");
		String mem4 = request.getParameter("mem4");
		String mem5 = request.getParameter("mem5");
		
		System.out.println(mem1 + "은 우리조");
		System.out.println(mem2 + "은 우리조");
		System.out.println(mem3 + "은 우리조");
		System.out.println(mem4 + "은 우리조");
		System.out.println(mem5 + "은 우리조");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}
}

5. 서버로 기본 데이터 전송하고, 서버에서 객체 받아오기

- jsp

<li>
    서버로 기본 데이터 전송하고, 서버에서 객체 받아오기 <br />
    사용자 번호를 전달하고, 그 번호에 맞는 사용자 받기 <br />
    <br />
    사용자 번호 : <input type="text" id="userNo" /> <br />
    <button id="getUserInfo"> 사용자 정보 조회 </button>
    <p id="p3"></p>
    <script>
        $('#getUserInfo').click(function(){
             $.ajax({
                url : "test5.do",
                data : {userNo : $('#userNo').val() },
                type : "get",
                success : function(data){

                    console.log(data);
                    // data.id / data.id /   data.name  

                    $('#p3').text(data.userNo + "/"+ data.name + "/" + data.id );

                }, error : function(){

                    $('#p3').text("에러 발생했다야");
                }
             });					
        });
    </script>
</li>

 

- java

/**
 * Servlet implementation class TestServlet5
 */
@WebServlet("/test5.do")
public class TestServlet5 extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public TestServlet5() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		List<UserVO> userList = new ArrayList<>();
		
		userList.add(new UserVO(1, "조정석", "test01"));
		userList.add(new UserVO(2, "유준상", "test02"));
		userList.add(new UserVO(3, "김남길", "test03"));
		userList.add(new UserVO(4, "박상면", "qwer"));
		userList.add(new UserVO(5, "지진희", "test04"));
		userList.add(new UserVO(6, "대장금" , "test05"));
		userList.add(new UserVO(7, "임금님" , "test06"));
		userList.add(new UserVO(8, "이방원" , "qwert"));
		userList.add(new UserVO(9, "태종" , "kdh1"));
		userList.add(new UserVO(10, "다니엘" , "zerous1318"));
		
		int userIdx = Integer.parseInt(request.getParameter("userNo"));
		
		UserVO result = userList.get(userIdx);
		
		JSONObject resultObj = new JSONObject();
		
		response.setContentType("application/json;  charset=UTF-8");
		
		resultObj.put("userNo", result.getUserNo());    // ---> { key : value }
		resultObj.put("name", result.getName());
		resultObj.put("id", result.getId());
		
		response.getWriter().print(resultObj.toJSONString());
				
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

6. 기본값 전달하고 해당 유저가 없는 경우 모든 회원 정보 가져오기

- jsp

<li>
    기본값 전송하고, 만약 해당 유저가 없는 경우 모든 회원 정보 가져오기 <br />
    사용자 번호 입력하여 서버에 정보를 요청하고, 없을 경우 리스트를 반환 하는 <br />
     코드를 작성해 보자 ^0^ <br />
     <br />
     사용자 번호 : <input type="number"  id="userNo2" /> <br />
     <button id="getUserInfo2">사용자 조회</button> <br />
     <p id="p4"></p>
     <script>

        $('#getUserInfo2').click(function(){

            $.ajax({
                url : "test6.do",
                data : { userNo : $('#userNo2').val() },
                type : "get",
                success : function(data){
                    // console.log(data);

                    for( var i in data.list){
                        var user = (data.list)[i];

                        var text = $('#p4').html();

                        text += user.userNo + " : ";
                        text += user.id + " : ";
                        text += user.name + " <br> ";

                        $('#p4').html(text); 					
                    }

                    console.log("성공이다 *0* ");

                }, error : function(){

                    console.log("실패다 =0=");
                }
            });
        });	
     </script>
</li>

-java

/**
 * Servlet implementation class TestServlet6
 */
@WebServlet("/test6.do")
public class TestServlet6 extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public TestServlet6() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		List<UserVO> userList = new ArrayList<>();
		
		userList.add(new UserVO(1, "조정석", "test01"));
		userList.add(new UserVO(2, "유준상", "test02"));
		userList.add(new UserVO(3, "김남길", "test03"));
		userList.add(new UserVO(4, "박상면", "qwer"));
		userList.add(new UserVO(5, "지진희", "test04"));
		userList.add(new UserVO(6, "대장금" , "test05"));
		userList.add(new UserVO(7, "임금님" , "test06"));
		userList.add(new UserVO(8, "이방원" , "qwert"));
		userList.add(new UserVO(9, "태종" , "kdh1"));
		userList.add(new UserVO(10, "다니엘" , "zerous1318"));
		
		int userIdx = Integer.parseInt(request.getParameter("userNo")) - 1;
		
		response.setContentType("application/json; charset=UTF-8");
		
		JSONObject result = new JSONObject();
		UserVO selectedUser = null;
		JSONObject userInfo = new JSONObject();
		JSONArray userArray = new JSONArray();
		
		if( userIdx > -1 && userIdx < userList.size() ) {
			
			selectedUser = userList.get(userIdx);
			
			userInfo.put("userNo", selectedUser.getUserNo());
			userInfo.put("id", selectedUser.getId());
			userInfo.put("name", selectedUser.getName());
			
			userArray.add(userInfo);
			
		} else {
			
			for( UserVO u : userList ) {
				
				userInfo = new JSONObject();
				
				userInfo.put("userNo", u.getUserNo());
				userInfo.put("id", u.getId());
				userInfo.put("name", u.getName());
				
				userArray.add(userInfo);
			}
		}
		
		result.put("list", userArray);
		
		response.getWriter().print(result.toJSONString());
				
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

7. 여러 값을 전송하고, 서버에서 리스트를 불러오는 방법

- jsp

<li>
    여러 값을 전송하고, 서버에서 리스트를 불러오는 방법 <br />
    사용자 번호(번호, 번호,  번호) : <input type="text" id="userNo3" /> <br />
    <button id="getUserInfoBtn3">사용자 정보 조회</button><br />
    <textarea id="ta1" cols="30" rows="10" style="border:3px solid red;"></textarea>		

    <script>
        $('#getUserInfoBtn3').click(function(){
            $.ajax({
                url : "test7.do",
                data : { userNoList : $('#userNo3').val() },
                type : "get",
                success : function(data){
                    console.log(data);

                    var resultStr = '';

                    for( var i in data.list ){
                        var user = data.list[i];

                        resultStr += user.userNo + " / ";
                        resultStr += user.name + " / ";
                        resultStr += user.id + "\n";
                    }

                    $('#ta1').val(resultStr);


                }, error : function(){
                    console.log("실패");
                }
            });
        });
    </script>
</li>

-java

/**
 * Servlet implementation class TestServlet7
 */
@WebServlet("/test7.do")
public class TestServlet7 extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public TestServlet7() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		List<UserVO> userList = new ArrayList<>();
		
		userList.add(new UserVO(1, "조정석", "test01"));
		userList.add(new UserVO(2, "유준상", "test02"));
		userList.add(new UserVO(3, "김남길", "test03"));
		userList.add(new UserVO(4, "박상면", "qwer"));
		userList.add(new UserVO(5, "지진희", "test04"));
		userList.add(new UserVO(6, "대장금" , "test05"));
		userList.add(new UserVO(7, "임금님" , "test06"));
		userList.add(new UserVO(8, "이방원" , "qwert"));
		userList.add(new UserVO(9, "태종" , "kdh1"));
		userList.add(new UserVO(10, "다니엘" , "zerous1318"));
		
		String userIdx = request.getParameter("userNoList");
		String[] idxList = userIdx.split(",");
		int idx = -1;
		
		JSONObject result = new JSONObject();
		UserVO selectedUser = null;
		JSONObject userInfo = null;
		JSONArray userArray = new JSONArray();
		
		for( String no : idxList ) {
			
			idx = Integer.parseInt(no) -1;
			selectedUser = userList.get(idx);
			
			if( selectedUser != null ) {
				userInfo = new JSONObject();
				userInfo.put("userNo", selectedUser.getUserNo());
				userInfo.put("id", selectedUser.getId());
				userInfo.put("name", selectedUser.getName());
				
				userArray.add(userInfo);
			}
		}
		
		result.put("list", userArray);
		
		response.setContentType("application/json; charset=UTF-8");
		response.getWriter().print(result.toJSONString());
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

8. 기본값 전송하고 map 객체로 받아오기

- jsp

<li>
    기본값 전송하고 이번엔 Map객체로 받아오기! <br />
    사용자 번호 : <input type="text"  id="userNo4" /> <br />
    <button id="getUserMapBtn"> 정보 조회 하기 </button> <br />
    <textarea  id="ta2" cols="30" rows="10" style="border: 3px solid blue;"></textarea>

    <script>
        $('#getUserMapBtn').click(function(){
            $.ajax({
                url : "test8.do",
                data : { userNoList : $('#userNo4').val() },
                type : "get",
                success : function(data){

                    console.log(data);

                }, error : function(){
                    console.log("오타 찾아라!!!");
                }
            });
        });
    </script>
</li>

-java

/**
 * Servlet implementation class TestServlet8
 */
@WebServlet("/test8.do")
public class TestServlet8 extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public TestServlet8() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		List<UserVO> userList = new ArrayList<>();
		
		userList.add(new UserVO(1, "조정석", "test01"));
		userList.add(new UserVO(2, "유준상", "test02"));
		userList.add(new UserVO(3, "김남길", "test03"));
		userList.add(new UserVO(4, "박상면", "qwer"));
		userList.add(new UserVO(5, "지진희", "test04"));
		userList.add(new UserVO(6, "대장금" , "test05"));
		userList.add(new UserVO(7, "임금님" , "test06"));
		userList.add(new UserVO(8, "이방원" , "qwert"));
		userList.add(new UserVO(9, "태종" , "kdh1"));
		userList.add(new UserVO(10, "다니엘" , "zerous1318"));
		
		String userNoList = request.getParameter("userNoList");
		String[] userIdx = userNoList.split(",");
		int idx = -1;
		
		JSONObject result = new JSONObject();
		UserVO selectedUser = null;
		JSONObject userMap = null;
		
		for( String no : userIdx ) {
			
			idx = Integer.parseInt(no) - 1;
			selectedUser = userList.get(idx);
			
			if( selectedUser != null ) {
				
				userMap = new JSONObject();
				
				userMap.put("userNo", selectedUser.getUserNo());
				userMap.put("name", selectedUser.getName());
				userMap.put("id", selectedUser.getId());
				
				result.put("user" + idx, userMap);
			}
		}
		
		response.setContentType("application/json; charset=UTF-8");
		response.getWriter().print(result.toJSONString());
				
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

9. 서버에서 받아온 사용자 정보로 표 구성하기

- jsp

<li>
    서버에서 받아온 사용자 정보로 표 구성하기 <br />
    <button id="userTableBtn">사용자 정보 불러오기</button> <br />
    <table id="userTb" border="1">
        <thead>
            <tr>
                <th>번호</th>
                <th>이름</th>
                <th>아이디</th>
            </tr>
        </thead>
        <tbody>
        </tbody>
    </table>
    <script>
        $('#userTableBtn').click(function(){
            $.ajax({
                url : "test9.do",
                type : "get",
                success : function(data){

                    console.log(data);
                    var $tableBody = $('#userTb tbody');

                    $.each(data.list, function(idx, value){
                        var $tr = $('<tr>');
                        var $noTd = $('<td>').text(value.userNo);
                        var $nameTd  = $('<td>').text(value.name);
                        var $idTd  = $('<td>').text(value.id);

                        $tr.append($noTd);
                        $tr.append($nameTd);
                        $tr.append($idTd);

                        $tableBody.append($tr);
                    });

                }, error : function(){

                    console.log("오타 찾아라");	
                }
            });
        });
    </script>
</li>

-java

/**
 * Servlet implementation class TestServlet9
 */
@WebServlet("/test9.do")
public class TestServlet9 extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public TestServlet9() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		List<UserVO> userList = new ArrayList<>();
		
		userList.add(new UserVO(1, "조정석", "test01"));
		userList.add(new UserVO(2, "유준상", "test02"));
		userList.add(new UserVO(3, "김남길", "test03"));
		userList.add(new UserVO(4, "박상면", "qwer"));
		userList.add(new UserVO(5, "지진희", "test04"));
		userList.add(new UserVO(6, "대장금" , "test05"));
		userList.add(new UserVO(7, "임금님" , "test06"));
		userList.add(new UserVO(8, "이방원" , "qwert"));
		userList.add(new UserVO(9, "태종" , "kdh1"));
		userList.add(new UserVO(10, "다니엘" , "zerous1318"));
		
		JSONArray result = new JSONArray();
		JSONObject userInfo = null;
		
		for (UserVO u : userList) {
			userInfo = new JSONObject();
			userInfo.put("userNo", u.getUserNo());
			userInfo.put("name", u.getName());
			userInfo.put("id", u.getId());
			
			result.add(userInfo);
			
        }
		JSONObject result2 = new JSONObject();
		result2.put("list", result);
		
		response.setContentType("application/json; charset=UTF-8");
		response.getWriter().print(result2.toJSONString());
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

10. select 태그를 사용하여 가져온 데이터 조회하기

- jsp

<li>
    select 태그를 사용하여 가져온 데이터 조회하기 <br />
    사용자 이름 : <input type="text"  id="userName" />
    <button id="selectNameBtn">이름으로 조회</button> <br />

    <select  id="selectList"></select>
    <script>
        $('#selectNameBtn').click(function(){
            $.ajax({

                url : "test10.do",
                data : { userName : $('#userName').val() },
                type : "post",
                success : function(data){

                    console.log(data);

                    var $select = $('#selectList');

                    $select.find("option").remove();

                    for( var i = 0; i < data.list.length; i++ ){

                        var name = data.list[i].name;
                        var selected = (name == $('#userName').val()) ? "selected" : "";

                        $select.append("<option value='" + data.list[i].userNo  
                                                + "' " + selected + ">" + name + "</option>" );
                        // <option value='5' selected>홍길동</option>

                    }

                }, error : function(){

                    console.log("오타 찾기 - 카멜케이스 확인!!");
                }
            });
        });
    </script>
</li>

 

- java

/**
 * Servlet implementation class TestServlet10
 */
@WebServlet("/test10.do")
public class TestServlet10 extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public TestServlet10() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		List<UserVO> userList = new ArrayList<>();
		
		userList.add(new UserVO(1, "조정석", "test01"));
		userList.add(new UserVO(2, "유준상", "test02"));
		userList.add(new UserVO(3, "김남길", "test03"));
		userList.add(new UserVO(4, "박상면", "qwer"));
		userList.add(new UserVO(5, "지진희", "test04"));
		userList.add(new UserVO(6, "대장금" , "test05"));
		userList.add(new UserVO(7, "임금님" , "test06"));
		userList.add(new UserVO(8, "이방원" , "qwert"));
		userList.add(new UserVO(9, "태종" , "kdh1"));
		userList.add(new UserVO(10, "다니엘" , "zerous1318"));
		
		JSONObject result = new JSONObject();
		JSONArray userArray = new JSONArray();
		JSONObject userInfo = null;
		
		for( UserVO u : userList ) {
			
			userInfo = new JSONObject();
			userInfo.put("userNo", u.getUserNo());
			userInfo.put("name", u.getName());
			userInfo.put("id", u.getId());
			
			userArray.add(userInfo);
		}
		result.put("list", userArray);
		response.setContentType("application/json; charset=UTF-8");
		response.getWriter().print(result.toJSONString());	
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

11. GSON 라이브러리를 이용한 리스트 받기

- jsp

<li>
    GSON 라이브러리를 이용한 리스트 받기 <br />
    <button id="gsonTestBtn1">gson으로 리스트 받기</button> <br />
    <table id="gsonTb" border="1">
        <thead>
            <tr>
                <th>번호</th>
                <th>이름</th>
                <th>아이디</th>
            </tr>	
        </thead>
        <tbody>				
        </tbody>
    </table>
    <script>
        $('#gsonTestBtn1').click(function(){
            $.ajax({
                url : "test11.do",
                type : "get",
                success : function(data){

                    // console.log(data);
                    var $tBody = $('#gsonTb tbody');

                    $.each(data, function(idx, value){
                        var $tr = $('<tr>');
                        var $noTd = $('<td>').text(value.userNo);
                        var $nameTd  = $('<td>').text(value.name);
                        var $idTd  = $('<td>').text(value.id);

                        $tr.append($noTd);
                        $tr.append($nameTd);
                        $tr.append($idTd);

                        $tBody.append($tr);
                    });

                }, error : function(){

                    console.log("실패, 오타 찾기");
                }
            });
        });
    </script>
</li>

 

- java

/**
 * Servlet implementation class TestServlet11
 */
@WebServlet("/test11.do")
public class TestServlet11 extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public TestServlet11() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		List<UserVO> userList = new ArrayList<>();
		
		userList.add(new UserVO(1, "토마스", "test01"));
		userList.add(new UserVO(2, "김범", "test02"));
		userList.add(new UserVO(3, "조정석", "test03"));
		userList.add(new UserVO(4, "지오디", "qwer"));
		userList.add(new UserVO(5, "현빈", "test04"));
		userList.add(new UserVO(6, "원빈" , "test05"));
		userList.add(new UserVO(7, "조나단" , "test06"));
		userList.add(new UserVO(8, "마동석" , "qwert"));
		userList.add(new UserVO(9, "조진웅" , "kdh1"));
		userList.add(new UserVO(10, "이방원" , "zerous1318"));
		
		response.setContentType("application/json; charset=UTF-8");
		new Gson().toJson(userList, response.getWriter());
		
		// new Gson().fromJson(userList, response.getWriter()); -- 값 가져올때?
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

12. GSON을 사용하여 MAP 반환하기

- jsp

<li>
    gson을 사용하여 map 반환하기 <br />
    <button id="gsonMapBtn">Map 가져오기</button> <br />
    <select  id="gsonMapSelect"></select><br />
    <script>
        $('#gsonMapBtn').click(function(){
            $.ajax({
                url : "test12.do",
                data : { userName : $('#userName').val() },
                type : "get",
                success : function(data){

                    console.log(data);

                    var $select = $('#gsonMapSelect');
                    $select.find("option").remove();

                    for( var i in data ){

                        var $option = $('<option>');
                        $option.val(data[i].id);
                        $option.text(data[i].name);

                        $select.append($option);

                      //	var name = data[i].name;
                       //	var selected = (name == $('#userName').val()) ? "selected" : "";

                        // $select.append("<option value='" + data[i].userNo  
                        //						+ "' " + selected + ">" + name + "</option>" );
                        // <option value='5' selected>홍길동</option>
                    }

                }, error : function(){

                    console.log("에러다");
                }
            });
        });
    </script>
</li>

 

- java

/**
 * Servlet implementation class TestServlet12
 */
@WebServlet("/test12.do")
public class TestServlet12 extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public TestServlet12() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		Map<String, UserVO> userMap = new HashMap<>();
		
		userMap.put("user01", new UserVO(1, "다니엘헤니", "user01"));
		userMap.put("user02", new UserVO(2, "솔라", "user02"));
		userMap.put("user03", new UserVO(3,"조정석", "user03"));
		userMap.put("user04", new UserVO(4, "펭수", "user04"));
		userMap.put("user05", new UserVO(5, "남주혁", "user05"));
		userMap.put("user06", new UserVO(6, "서강준","user06"));
		userMap.put("user07", new UserVO(7, "야오치" , "user07"));
		userMap.put("user08", new UserVO(8, "타요", "user08"));
		userMap.put("user09", new UserVO(9, "카피추", "user09"));
		userMap.put("user10", new UserVO(10, "이정재", "user10"));
		
		response.setContentType("application/json; charset=UTF-8");
		new Gson().toJson(userMap, response.getWriter());
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 

Vo

import java.io.Serializable;

public class UserVO implements Serializable {
	
	// 사용자의 정보를 담는 클래스
	// 사용자 번호
	// 이름
	// 아이디
	private int userNo;
	private String name;
	private String id;
	
	
	// 2. 생성자
	public UserVO() {
		super();
	}

	
	public UserVO(int userNo, String name, String id) {
		super();
		this.userNo = userNo;
		this.name = name;
		this.id = id;
	}
	
	
	// 3. 기능 메소드 - 게터 & 세터
	
	@Override
	public String toString() {
		return "UserVO [userNo=" + userNo + ", name=" + name + ", id=" + id + "]";
	}
	
	
	public int getUserNo() {
		return userNo;
	}
	
	public void setUserNo(int userNo) {
		this.userNo = userNo;
	}
	
	public String getName() {
		return name;
	}
	
	public void setName(String name) {
		this.name = name;
	}
	
	public String getId() {
		return id;
	}
	
	public void setId(String id) {
		this.id = id;
	}
}

'개발기록 > Java' 카테고리의 다른 글

서블릿 예제2  (0) 2022.01.19
서블릿 예제1  (0) 2022.01.19
서블릿 리스너 ( Servlet Listner)  (0) 2022.01.13
Filter와 Wrapper  (0) 2022.01.13
HttpServletRequest, HttpServletResponse 개념 이해  (0) 2022.01.13