[SERVER]JSP 게시판 프로젝트 흐름 정리

2025. 2. 27. 17:00·Server

JSP와 Servlet을 이용한 게시판 프로젝트의 전체적인 흐름을 정리해보았습니다.

학원 게시판 작업 공부를 진행하면서 서버와 클라이언트의 역할, 데이터 흐름을 이해했습니다.

1. 프로젝트 흐름

1️⃣ index.jsp에서 menubar.jsp를 include 한다.

  • index.jsp는 웹 애플리케이션의 메인 페이지 역할을 합니다.
  • <jsp:include page="menubar.jsp"/>를 사용하여 menubar.jsp를 포함시켜 네비게이션 메뉴를 구성합니다.

2️⃣ menubar.jsp에서 서블릿(Controller)로 요청한다.

  • menubar.jsp에서 게시판 목록을 보려면 <a href="list.bo">게시판</a> 같은 링크를 클릭하여 서블릿으로 요청합니다.
  • form 태그를 사용하여 로그인, 글쓰기 등의 요청을 보낼 수도 있습니다.

3️⃣ 서블릿(Controller)에서 Service를 호출하여 데이터 처리

  • 서블릿(Controller) 은 클라이언트의 요청을 받아 적절한 서비스(Service) 를 호출합니다.
  • Service에서는 비즈니스 로직을 처리하며, DAO를 호출하여 DB 작업을 수행합니다.

4️⃣ Service에서 DAO를 호출하여 SQL 실행

  • Service는 DAO를 호출하여 SQL을 실행하고, 데이터베이스에서 필요한 데이터를 가져옵니다.
  • JDBC를 이용해 DB 연결(Connection)을 생성한 후, SQL을 실행하고 결과를 반환합니다.

5️⃣ DAO에서 SQL을 실행하여 데이터를 가져오거나 수정한다.

  • SQL을 실행하는 곳은 DAO (Data Access Object) 입니다.
  • SELECT, INSERT, UPDATE, DELETE 등의 SQL을 실행하여 데이터를 조회하거나 수정합니다.

6️⃣ Service가 DAO의 결과를 받아 서블릿으로 전달

  • DAO에서 가져온 데이터를 Service가 받아 서블릿(Controller)으로 전달합니다.
  • 서비스는 필요한 경우, 데이터 가공 등의 작업을 수행할 수도 있습니다.

7️⃣ 서블릿이 데이터를 JSP로 forward하여 화면에 출력

  • 데이터를 조회하는 경우, JSP 페이지로 RequestDispatcher.forward()를 사용하여 포워딩합니다.
  • request 객체를 이용해 데이터를 JSP로 넘깁니다.

8️⃣ 데이터가 변경되는 경우, sendRedirect()를 사용하여 메인 페이지로 이동

  • 로그인, 글쓰기, 삭제 등의 작업이 완료된 후에는 sendRedirect()를 사용하여 새로운 요청을 보냅니다.
  • forward()와 달리, request 객체가 유지되지 않습니다.

2. 주요 개념 정리

✅ 페이징 처리

SELECT * FROM (
    SELECT ROWNUM AS RNUM, A.*
    FROM (
        SELECT * FROM BOARD WHERE STATUS='Y' ORDER BY BOARD_NO DESC
    ) A
) WHERE RNUM BETWEEN ? AND ?;

  • startRow와 endRow 값을 설정하여 해당 범위의 게시글만 조회합니다.
  • 예를 들어, 한 페이지에 10개씩 보여주면:
    • currentPage = 1 → 1~10번 게시글 조회
    • currentPage = 2 → 11~20번 게시글 조회

'Server' 카테고리의 다른 글

클라이언트-서버 구조의 흐름  (2) 2025.05.16
HTTP 란 무엇일까?  (2) 2025.05.14
[JSTL] JSTL 라이브러리 설치파일 및 적용방법  (0) 2025.02.24
[EL] EL이 무엇일까?  (0) 2025.02.24
[SERVER] GET 방식과 POST 방식이란?  (0) 2025.02.21
'Server' 카테고리의 다른 글
  • 클라이언트-서버 구조의 흐름
  • HTTP 란 무엇일까?
  • [JSTL] JSTL 라이브러리 설치파일 및 적용방법
  • [EL] EL이 무엇일까?
동준1234
동준1234
공부 기록
  • 동준1234
    dongjundev
    동준1234
  • 전체
    오늘
    어제
    • 분류 전체보기 (138)
      • 일상 (1)
      • 자격증 (7)
        • 정보처리기사 필기 준비 (6)
        • 정보처리기사 실기 준비 (0)
        • SQLD (1)
      • KPT 회고 (22)
      • SQL ORACLE (18)
      • project (3)
      • 백준 및 코딩테스트 공부 (6)
      • 4학년 캡스톤 디자인 및 전시회 (3)
      • 대학교 캡스톤 디자인 (6)
      • JAVA (49)
      • JDBC (1)
      • 네트워크 (1)
      • AI 머신러닝 (1)
      • Front-End (10)
      • Server (10)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
동준1234
[SERVER]JSP 게시판 프로젝트 흐름 정리
상단으로

티스토리툴바