Model2 - 미니쇼핑몰 예제(프로젝트 생성 순서)

2020. 12. 13. 21:49BACK END/JAVA

2020/12/07 ~ 2020/12/18

 

미니쇼핑몰

 

ShoppingLab.pdf
2.11MB

 

 

 

- 새 프로젝트 만들기

JspModelRaw.zip 압축 해제,

JspModel2 생성 후 필요 파일 참고하기

 

- Webcontent > 폴더 생성

common, member, board, images, css, js

 

- 관련 라이브러리 추가

WEB-INF > lib 폴더에 images 복붙

 

- 최초의 시작 파일 (jsp)

WebContent > start.jsp 생성

 

- 서블릿 파일 (controller)

mypkg > common > FrontController.java 생성

서블릿맵핑 및 초기화 파라미터 셋팅하기

 

- 패키지 구성

- mypkg.common > 1)SuperClass > 2)SuperController > 3)Validator

 

1) SuperClass(C)

- 여러 Controller에서 반복적으로 이루어지는 항목들을 정의하고,

  각종 Controller들을 상속해주는 수퍼클래스가 되어 편리성을 위함

- SuperController와 validator 상속받는 클래스

- 메소드 오버라이딩 : doGet(), doPost(), validate()

- 메소드 설명 : validate()

① 목적 : 유효성 검사를 위한 메소드, 일반Controller에서 validate() 호출할 예정

② 내용 : 해당 컬럼(변수)에 대한 유효성 검사를 체크한 후에 만약 문제가 있으면,

    request영역에 "err" + 변수의 이름으로 바인딩합니다. 종착지.jsp파일에서 이 내용을 출력해줌

③ 예시 : 메소드구현(mypkg.board>BoardInsertController.java ), 종착지.jsp(board>boInsertForm.jsp)

public class BoardInsertController extends SuperClass{ 
      private Board bean = null ;

      @Override

      public boolean validate(HttpServletRequest request) { 
            final String PREFIX = "err" ; 
            boolean isCheck = true ; 

            if( bean.getSubject().length() < 3 || bean.getSubject().length() > 10 ){ 
            request.setAttribute( PREFIX + "subject", "제목은 3글자 이상 10글자 이하이어야 합니다.");

            isCheck = false ; 
            }

            return isCheck ;

      }

      @Override

      public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, 

      IOException {

            super.doGet(request, response);

            String gotopage = "board/boInsertForm.jsp";

            super.GotoPage(gotopage);

            }

      @Override... doPost는 생략...    

}

 

- 메소드 생성 : doProcess(), setErrorMessage(), GotoPage()

      ① doProcess() : get, post 상관없이 무조건 호출되도록 함

      ㄴ this.session = request.getSession() ;      

      ② setErrorMessage() : req영역에 "errmsg"으로 오류메세지 바인딩, common.jsp파일 하단에 보여줌

      ㄴ this.request.setAttribute("errmsg", message) ;

      ③ Gotopage() : dispatcher객체를 사용하여 특정 페이지로 이동함

      ㄴ RequestDispatcher dispatcher = this.request.getRequestDispatcher(url) ;

      ㄴ try{ dispatcher.forward(this.request, this.response); } catch ~ 

      

 

2) SuperController(I)

- 컨트롤러 인터페이스, 모든 콘트롤러들의 상위 개념

- 요청(request)들어오면 특정 콘트롤러의 동작을 수행해주는 인터페이스

- 모든 비즈니스 로직을 처리해주는 추상메소드(doGet, doPost)를 정의해둠

 

3) Validator(I)

- 유효성 검사를 위한 메소드(Validate)를 정의해둠

 

- mypkg.utility 

> Myutility.java 생성

: 자주 사용하는 기능들을 유틸리티 형태로 만들어놓은 클래스

 

- common > common.jsp & main.jsp 생성

* common.jsp :

1) 자바의 유틸 패키지 import

ㄴ < %@ page import="java.util.*" %>

2) jstl을 위한 taglib import 

ㄴ<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

ㄴ<%@ taglib prefix="c" uri="http://"java.sun.com/jsp/jstl/fmt" %>

ㄴ<%@ taglib prefix="c" uri="http://"java.sun.com/jsp/jstl/functions" %>

 

- mypkg.common

> MainController 구현

 

------ start.jsp -> FrontController -> MainController > main.jsp 순으로 생성함

 

- common > main.jsp에서 common.jsp를 include함

<%@ include file = "common.jsp" %>

 

- mypkg.bean > 각각의 bean클래스 생성

      Member.java(회원)

      Board.java(게시물)

      Product.java(상품)

      Order.java(주문)

      OrderDetail.java(주문상세)

> 날짜 컬럼은 String, 숫자 컬럼은 int로 처리할 예정

> 변수생성, getter, setter, 매개변수 없는 생성자, toString() 구현

 

- mypkg.dao > SuperDao.java 생성

SuperDao는 모든 다오의 수퍼클래스로,

앞으로 필요 시 Member/Board/Product ... 등의 dao클래스 생성할 예정임.

 

- 단위 업무 처리 시 할일

1) todolist.txt 파일에서 해당 라인 주석 해제

2) 해당 컨트롤러 파일 생성

3) 종착지 jsp파일 생성

 


상품 목록 보기
p.110~112

1. todolist.txx > prList 주석 풀기

todolist) ProductListController.java

 

2. java파일 생성

mypkg.product) ProductListController.java