LANGUAGE/JSP

[ jsp&servlet ] MVC(모델2) 게시판 만들기

Elin J 2021. 6. 1. 18:13

 

 

웹 어플리케이션

= 비즈니스 로직(실제 업무 처리) + 프리젠테이션 로직(화면 처리 부분)

 

 

 

💡 Model2 기반의 mvc패턴

 - Model : 데이터베이스와 연동하는 비즈니스 로직을 통해 얻어온 데이터를 저장하는 용도

   View : 사용자와의 인터페이스로 주로 JSP페이지 사용

   Controller : 모델과 뷰 사이의 흐름을 제어하는 역할, 

                   요청받으면 어떤 로직으로 수행할지 결정하고 처리후에 뷰 선택

 

 - 재사용성과 가독성(읽기 쉽게)을 높이려는 기법

    => 유지보수와 확장 용이

    => 개발자와 디자이너의 역할과 책임 구분 명확

    => 컴포넌트의 재사용성이 높아짐

 - 프로젝트의 규모가 커질수록 , 유지보수가 필요할수록 모델2 방식 추천 

 - 개발자의 높은 스킬 요구,,

 

  - 프로그램에서 가장 중요한것이 비즈니스 로직, 즉 컨트롤러의 역할

      => 필요한 비즈니스로직을 처리하는 모델(DAO) 호출

      =>  setAttribute 메소드를 사용하여 결과값을 속성에 저장

      => 저장된 결과값은 뷰인 JSP에서 사용합니다.

      =>  JSP로 포워딩

 

 

 

      💡 Model1

            장점) 방식은 고도의 스킬 필요X, 코드가 직관적 =>  생산성 측면에서 효율적

            단점) 개발의뢰 받으면 개발이 쉬워서 개발비 절약 할 수 있지만

                   => 비즈니스로직과 프젠 로직이 뒤섞여있어 유지보수 어려움 (유지보수 비용도 비싸짐)

                   => 개발자와 디자이너가 협업하는데 있어 혼란 초래

 

 

 

 

 

게시판 관리 프로그래밍을 위한 파일

 

[ JSP페이지 ] --화면처리

  boardList.jsp

  boardWrite.jsp

  boardView.jsp

  boardUpdate.jsp

  boardCheckPass.jsp   --> 수정/삭제 자격 있는지 비번 확인 위한 비번입력 페이지

  checkSuccess.jsp  --> 수정/삭제 위한 페이지

 

 

[ 서블릿 파일 = Controller ★ ] --모델과 뷰간의 흐름 제어

  BoardServlet.java       --> 받은 요청에 해당하는 Model과 View를 호출

  ActionFactory.java     --> 커맨드(commond)패턴으로 작업 처리를 위한 명령 처리 클래스 필요

 

 

 

[ 클래스 파일 = Model ] -- 실제 업무 처리 

  Action.java      --> 명령처리 클래스의 슈퍼클래스

  BoardListAction.java     --> 게시글 전체 정보를 DB에서 얻어옴

  BoardWriterFormAction.java   --> 게시글 등록 페이지로 이동

  BoardWriteAction.java   --> 입력한 게시글정보를 DB에 추가

  BoardViewAction.java    --> 게시글의 상세정보 보여줌

  BoardCheckPassFormAction.java   --> 게시물 수정/삭제 자격있는지 비번 확인페이지 이동

  BoardCheckPassAction.java   --> 게시글 비밀번호가 일치하는지 비교

  BoardUpdateFormAction.java   -->게시글 수정페이지로 이동

  BoardUpdateAction.java   --> 입력한 정보로 DB에 게시글 정보 수정

  BoardDeleteAction.java    --> 데이터베이스에 게시글 정보 삭제

 

 

[ 자바스크립트 = 유효성 체크 ] 

  board.js   

       --> 폼에 입력된 정보가 올바른지 판단하는 자바스크립트

 

[ VO 클래스 = 게시글 정보 저장 ]

  ProductVO.java 

       --> 게시글 정보를 저장하는 클래스

 

[ DAO 클래스 = 데이터베이스의 board테이블 처리 ]

  BoardDAO.java   

        --> 데이터베이스 연동해서 작업하는 데이터베이스 처리 클래스

 

 

////////////////////////////////////////////////////////////////////////////////////////////////////