• DBCP 방식
  • 댓글 기능, 자료실 (업로드, 다운로드)
  • request, session 객체 공유 설정
  • Controller 클래스 : Java Servlet
  • Service, DTO, DAO 클래스, Model (Service + DAO)
  • View (화면 인터페이스) : EL, JSTL 사용

 

 

프로그램 구조

 

Java Resources
> src
Controller  BoardFrontController.java Controller 클래스
model BoardBean.java DTO 클래스
dao BoardDAO.java DAO 클래스
service Action.java Action 인터페이스
ActionForward.java ActionForward 클래스
BoardAddAction.java 글작성
BoardListAction.java 글목록
BoardDetailAction.java 글내용 (상세페이지)
BoardReplyAction.java 댓글 폼
BoardReply.java 댓글작성
BoardModifyAction.java 글수정 폼
BoardDeleteAction.java 글삭제 폼
BoardDelete.java 글삭제
WebContent board qna_board_write.jsp 글작성 폼
qna_board_list.jsp 글목록 출력
qna_board_view.jsp 글내용 출력
qna_board_reply.jsp 답변글 폼
qna_board_modify.jsp 글수정 폼
qna_board_delete.jsp 글삭제 폼
file_down.jsp 다운로드
boardupload   첨부파일 저장위치
WEB-INF
> lib
cos.jar
jstl-1.2jar
ojdbc6.jar
라이브러리
META-INF context.xml 커넥션 풀
sql board.sql DB
  index.jsp 인덱스

 

 

 

 

MVC 구조

 

 

 

 


 

 

 

 

 

새로운 다이나믹 프로젝트 생성

이름은 model2board, finish를 누르기 전에 web.xml 파일 생성에 체크를 한다.

 

index.jsp 파일을 생성한다.

추후 모든 기능 구현이 완료되면 게시판 목록으로 바로 이동할 수 있게 location 객체를 사용할 예정

 

 

 

라이브러리와 커넥션 풀에 필요한 파일을 각 위치에 복사-붙여넣기 한다.

sql 폴더 하위에는 db 생성을 위한 board.sql 파일을 생성해둔다.

 

 

 

 

 

 

뷰 페이지를 생성할 board,

첨부파일을 저장할 boardupload를 WebContent 폴더 하위에 생성한다.

 

 

 

db저장을 위한 테이블 model2를 생성했다.

 

 

 

 

 

 

 

 

DTO 클래스를 생성한다.

 

 

 

 

 

 

 

 

 

DAO 클래스를 생성한다.

이 클래스는 db 연동에 대한 내용을 처리하게 되고 여러가지 메소드들을 이어서 작성할 예정이다.

 

 

 

 

 

 

 

 

 

 

 

Controller 클래스를 서블릿으로 생성한다.

생성하면 어노테이션의 기본값이 클래스명으로 되어 있다.

이 값을 확장자가 .do로 끝나는 요청을 받을 수 있도록

*.do로 수정한다.

 

 

 

 

doGet 메소드와 doPost 메소드는 기본으로 생성되어 있다.

이 메소드들은 문서의 값 전달 방식이 get인지 post인지에 따라 실행되는 메소드가 갈린다.

어떤 메소드가 실행되고 있는지 쉽게 알기 위해 System.out.println으로 콘솔창에 메시지를 출력하도록 한다.

 

 

 

 

doGet의 위쪽에 doProcess 메소드를 생성한다.

이 메소드는 doGet(), doPost() 메소드의 공통적인 작업을 처리하게 된다.

 

이렇게 되면 controller 클래스는 크게 세 가지 메소드 (doGet, doPost, doProcess) 로 구성되어 있고,

doProcess에 내용을 추가해 나갈 예정이다.

 

 

 

 

doGet 메소드와 doPost 메소드 안에

doProcess를 호출하는 코드를 한줄씩 추가한다.

 

 

 

 

doProcess() 에 다음과 같은 내용을 추가한다.

에러가 발생한 지점을 알 수 있도록 콘솔창에도 출력한다.

 

 

 

 

 

미리 레이아웃을 만들어둔 글쓰기 폼을 열어보면 콘솔창에 다음과 같이

문서 전달방식, 경로, 프로젝트 명이 출력된다.

 

 

 

 

 

 

 

 

 

Action.java를 인터페이스로 생성한다.

Action은 여러 서비스 클래스의 부모 인터페이스로 사용할 예정이다.

 

 

 

 

 

추상 메소드를 생성한다.

오류가 뜨는 것은 ActionForward 클래스를 아직 만들지 않아서이다.

 

 

 

 

 

service 패키지 하위에 ActionFoward.java 클래스를 생성한다.

포워딩 방식과 파일명을 설정하고 getters setters 메소드를 생성한다.

redirect를 boolean을 만들었기 때문에 추후 true / false 여부에 따라 포워딩 방식을 선택하게 된다.

 

 

 

 

controller의 doProcess() 메소드로 돌아와

Action 객체와 ActionForward 객체를 생성하고 초기값을 null 로 지정한다.

 

그리고 만약 연결이 잘 되어 forward 값이 null 이 아니게 된다면

포워딩을 진행하는 조건문을 작성한다.

 

forward 값이 true로 들어온다면 redirect 방식으로,

false로 들어온다면 dispatcher 방식으로 포워딩 하게 된다.

 

 

 

 

 

 

그리고 ActionForward 객체와 조건문 사이에 조건문을 추가하여

앞으로 클라이언트의 요청을 받게 된다.

 

'JSP > model 2' 카테고리의 다른 글

MVC 게시판 (3) - 글목록  (1) 2022.09.21
MVC 게시판 (2) - 글작성  (0) 2022.09.21
MVC 회원관리 (5) - 회원 탈퇴  (0) 2022.09.20
MVC 회원관리 (4) - 회원정보 수정  (0) 2022.09.20
MVC 회원관리 (3) - 로그인 폼  (0) 2022.09.19

+ Recent posts