Server

AJAX STEP 10 - 게시판 목록 보기

2023. 5. 18. 10:49
728x90

★게시판 목록 보기

 

■ 필요 파일

Ex14.java
ex14.jsp

Ex14Data.java

 

■ 데이터베이스

select * from tblProduct;

create table tblProductCopy
    as select * from tblProduct;
    
insert into tblProductCopy select * from tblProductCopy;

 

■ 소스코드

  • Ex14.java
package com.test.ajax;

import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.RequestDispatcher;
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("/ex14.do")
public class Ex14 extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

		//Ex14.java
		AjaxDAO dao = new AjaxDAO();
		
		Map<String, Integer> map = new HashMap<String,Integer>();
		map.put("begin", 1);
		map.put("end", 10);
		
		List<Ex13DTO> list = dao.listProduct2(map);
		
		req.setAttribute("list", list);

		RequestDispatcher dispatcher = req.getRequestDispatcher("/WEB-INF/views/ex14.jsp");
		dispatcher.forward(req, resp);
	}

}

 

  • Ex14Data.java
package com.test.ajax;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;

@WebServlet("/ex14data.do")
public class Ex14Data extends HttpServlet {

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

		//Ex14Data.java
		//ex14.jsp의 n을 받아오는 역할
		int n = Integer.parseInt(req.getParameter("n"));
		
		AjaxDAO dao = new AjaxDAO();
		
		Map<String, Integer> map = new HashMap<String,Integer>();
		map.put("begin", n);
		map.put("end", n+9);
		
		List<Ex13DTO> list = dao.listProduct2(map);
		
		JSONArray arr = new JSONArray();
		
		for (Ex13DTO dto : list) {
			
			JSONObject obj = new JSONObject();
			obj.put("seq", dto.getSeq());
			obj.put("name", dto.getName());
			obj.put("price", dto.getPrice());
			obj.put("color", dto.getColor());
			
			arr.add(obj);
			
		}
		
		resp.setCharacterEncoding("UTF-8");
		resp.setContentType("application/json");
		
		PrintWriter writer = resp.getWriter();
		
		writer.print(arr);
		
		writer.close();
		
	}

}

 

  • ex14.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="https://me2.do/5BvBFJ57">
<style>

</style>
</head>
<body>

	<h1>게시판</h1>
	
	<table>
		<tr>
			<th>번호</th>
			<th>제품명</th>
			<th>가격</th>
			<th>색상</th	>		
		</tr>
		<c:forEach items="${list}" var="dto">
		<tr>
			<td>${dto.seq}</td>
			<td>${dto.name}</td>
			<td>${dto.price}</td>
			<td>${dto.color}</td>
		</tr>
		</c:forEach>
	</table>
	
	<div style="text-align: center;">
		<input type="button" value="게시물 더보기" id="btn">
	</div>



<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
<script>

	let n = 11;

	$('#btn').click(()=>{
		
		//10개 더 가져오기 > 화면 출력
		
		$.ajax({
			
			type: 'POST',
			url: '/ajax/ex14data.do',
			data: {
				n: n
			},
			dataType: 'json',
			success: (result)=>{
				
				$(result).each((index, item)=>{
					
					$('table tbody').append(
						`
						
							<tr>
								<td>\${item.seq}</td>
								<td>\${item.name}</td>
								<td>\${item.price}</td>
								<td>\${item.color}</td>
							</tr>
					
						`
					);
					
				});
				
				n += 10;
				
// 				console.log(result.length);

				if (result.length == 0) {
					alert('더 이상 게시물이 없습니다.');
					$('#btn').attr('disabled', true);
				}
				
			},
			error: (a,b,c)=>console.log(a,b,c)
			
		});
		
	});

</script>
</body>
</html>

 

 

■ 실행 결과

실행 결과

 

728x90
저작자표시 비영리 변경금지 (새창열림)

'Server' 카테고리의 다른 글

게시판 개발 STEP 1 - Ajax, Json, Oracle, JDBC etc..  (0) 2023.05.31
AJAX STEP 11 - Map  (0) 2023.05.18
AJAX STEP 9 - 상품 목록 페이지  (0) 2023.05.17
AJAX STEP 8 - 일기장 AJAX  (0) 2023.05.17
AJAX STEP 7 - 테이블 저장 AJAX  (0) 2023.05.17
'Server' 카테고리의 다른 글
  • 게시판 개발 STEP 1 - Ajax, Json, Oracle, JDBC etc..
  • AJAX STEP 11 - Map
  • AJAX STEP 9 - 상품 목록 페이지
  • AJAX STEP 8 - 일기장 AJAX
IT의 큰손
IT의 큰손
IT계의 큰손이 되고 싶은 개린이의 Log 일지
IT의 큰손
Developer Story House
IT의 큰손
전체
오늘
어제
  • 분류 전체보기 (457)
    • 정보처리기사 필기 (18)
    • 정보처리기사 실기 (12)
    • 정보처리기사 통합 QUIZ (12)
    • 빅데이터 (11)
    • 안드로이드 (11)
    • 웹페이지 (108)
    • 자바 (49)
    • SQLD (3)
    • 백준 알고리즘 (76)
    • 데이터베이스 (41)
    • 깃허브 (2)
    • Library (14)
    • Server (31)
    • 크롤링&스크래핑 (3)
    • Spring (23)
    • Vue.js (13)
    • React (27)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Developer Stroy House

인기 글

태그

  • html
  • 자바
  • 정보처리기사
  • 개발자
  • 정보처리기사필기
  • jquery
  • 프론트엔드
  • IT자격증
  • React
  • it
  • 정보보안전문가
  • 웹개발자
  • 백엔드
  • jsp
  • 알고리즘
  • JavaScript
  • 백준
  • 개발블로그
  • css
  • DBA
  • 코딩테스트
  • 데이터베이스
  • ajax
  • IT자격증공부
  • 앱개발자
  • IT개발자
  • DB
  • java
  • 웹페이지
  • 웹개발

최근 댓글

최근 글

Designed By hELLO
IT의 큰손
AJAX STEP 10 - 게시판 목록 보기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.