Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Sts
- java
- js
- 교보문고 따라하기
- 로그인과 장바구니 구현
- 프로그래머스
- json
- jakarta.mail
- ajax
- Spring MVC
- 일단_해보는거야
- jsp
- MySQL
- Spring
- 다중 카테고리 구현
- jquery
- 세션
- Oracle
- 이메일로 인증코드 전송 구현
- Level 1
- 스프링
- SESSION
- 오라클
- 코딩
- 인증코드로 비밀번호 변경 구현
- 자바
- MVC
- 고객센터 구현
- jsp 프로젝트
- 대분류/중분류/소분류
Archives
감 잃지말고 개발하기
[JSP] [MVC] [게시판] MVC 패턴으로 게시판 구현하기 01. 기본 설정 및 프로젝트 패키지 구조 본문
목표
♠ Eclipse Dynamic Web Project에서 MVC 패턴으로 게시판을 구현할 수 있다.
개발 환경
Eclipse-jee-2022-03
Apache Tomcat 9.0.58
MySQL8.0
프로젝트 패키지 구조
프로젝트명 : MVCboard
1. src 폴더 하단
패키지 명 | 설명 |
controller | 웹 브라우저의 모든 요청 URL을 받아들이고 이와 함께 전달되는 요청 파라미터를 받아 제어하는 서블릿들이 정의되어 있는 패키지. 게시판 프로젝트의 모든 웹 요청은 Servlet 역할을 수행하는 BoardFrontController 클래스로 요청하게 하여 전체 요청이 이 클래스 내에서 제어되도록 한다. |
action | 컨트롤러에서 전송된 각 웹 브라우저의 요청을 파악해 처리하는 클래스가 정의되어 있는 패키지. 컨트롤러 클래스에서 전송된 각 요청에 필요한 기능(로직)을 수행하는 Action 클래스 객체의 execute() 메서드가 호출된다. 각 요청을 처리하는 Action 클래스들을 다형성을 이용해 동일한 타입으로 참조하기 위해 각 Action 클래스들이 구현할 Action 인터페이스를 설계한다. |
svc | 각 웹 브라우저의 요청을 처리하는 비즈니스 로직이 구현된 클래스가 정의되어 있는 패키지. 이 Service 클래스를 거쳐 DB작업이 이루어지도록 한다. |
dao | MySQL DB에 존재하는 데이터들을 SQL 구문을 이용해 다루는 클래스, 즉 DAO(Data Access Object)가 존재하는 패키지. |
db | DB 관련해서 공통적으로 수행해야 하는 기능들을 정의한 패키지. # JdbcUtil.java : DB에 연결을 담당하는 메서드, DB 작업을 처리한 후 사용한 자원을 해제시켜 주는 메서드 등 DB 작업을 할 때 공통적으로 필요한 기능들을 정의한다. |
vo | Value Object. 애플리케이션에서 하나의 데이터(하나의 객체)로 다루어져야 할 정보들을 저장하는 클래스들이 존재하는 패키지. # BoardBean.java : 게시판글 정보 하나를 저장하는 클래스이다. # PageInfo.java : 페이징 처리 관련 정보를 저장하는 클래스로, 게시판 목록 페이지에서 페이지 처리를 위해 사용한다. # ActionForward.java : 포워딩 정보를 저장하는 클래스이다. 컨트롤러 역할을 하는 서블릿에서 웹 브라우저의 각 요청을 받아서 처리한 후 최종적으로 뷰 페이지로 포워딩 처리할 때 이동할 뷰 페이지의 URL과 포워딩 방식(디스패치나 리다이렉트)이 필요한데, 이 두 정보를 편리하게 다루기 위한 클래스이다. |
2. WebContent 폴더 하단
파일 명 | 설명 |
qna_board_write.jsp | 게시판 글을 작성하는 페이지로 파일을 등록할 수 있다. |
qna_board_list.jsp | 게시판 전체 목록을 보여주는 페이지이며 게시글 작성하는 링크가 들어있다. 게시글 제목을 누르면 상세 페이지로 이동한다. |
qna_board_view.jsp | 게시글 상세 페이지로, 게시글 삭제 및 수정, 댓글을 달 수 있는 링크가 걸려있다. |
qna_board_modify.jsp | 게시글을 수정하는 페이지이다. |
qna_board_delete.jsp | 게시글을 삭제하는 페이지로, 비밀번호를 입력하면 삭제처리된다. |
qna_board_reply.jsp | 댓글을 다는 페이지이다. |
URL 설정
아래 이미지처럼 URL은 http://localhost:포트번호/board/boardList.do 형식으로 만들 것이다.
이를 위해 톰캣 서버 파일인 server.xml에서 <Context> path 속성값을 '/'로 수정한다.
참고로 이 path의 값은 Request.getContextPath()의 값과 동일하다.
※ Context path 설정 참고
https://persimmon-ary-stepbystep.tistory.com/27