2020. 12. 13. 21:49ㆍBACK END/JAVA
2020/12/07 ~ 2020/12/18
미니쇼핑몰
- 새 프로젝트 만들기
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
'BACK END > JAVA' 카테고리의 다른 글
String.valueOf() vs toString() (0) | 2021.01.06 |
---|---|
Model2 - 미니쇼핑몰 예제(상품) (0) | 2020.12.16 |
Model2 - 미니쇼핑몰 예제(회원가입) (0) | 2020.12.14 |
Model2 - 미니쇼핑몰 예제(인터페이스) (0) | 2020.12.14 |
java 이론 총정리 (0) | 2020.11.04 |