ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA WEB - 5
    Study 2023. 2. 14. 12:20

    MVC


    ${} : EL(Expression Language) 표현언어 사용

     - servlet에서 request로 전달한 데이터를 jsp에서 참조할 때 사용

     - 원래는 ${} 안에 requestScope.[데이터이름]  형식이 정석이지만 참조하려는 데이터 명을 그대로 작성해도 된다.

      ex) ${requestScope.win}  ${win}

     

     

    가위바위보 알고리즘 

     가위 : 1, 바위 : 2, 보 : 3

     (you - com + 3) % 3으로 규칙 찾기

    이기는 경우

    you com result
    1 3 1
    2 1 1
    3 2 1


    지는 경우

    you com result
    1 2 2
    2 3 2
    3 1 2


    비기는 경우

    you com result
    1 1 0
    2 2 0
    3 3 0

     

    가위바위보 규칙을 JAVA 소스로 구현

    private String whoWinner(int you, int com) {
        switch((you - com + 3) % 3) {
        case 0:    return "무승부입니다.";
        case 1:    return "당신의 승리입니다.";
        default : return "당신의 패배입니다.";
        }
    }
    cs

    JSTL(Jsp Standard Tag Library)

     : 자바를 사용하지 않고 제어문을 사용할 수 있도록 해주는 라이브러리

      http://jakarta.apache.org

      1) Ex-Jakarta > Taglibs > Apache Standard Taglib > Standard 1.1 버전 선택

      2) binaries/ > jakarta-taglibs-standard-1.1.2.zip  다운로드 및 압축 해제

      3) 압축 해제한 폴더에서 lib 하위의 두 .jar 파일을 프로젝트의 WEB-INF 하위의 lib에 추가

      4) JSTL 사용하려는 jsp 파일 상단에 다음의 페이지 디렉티브를 작성한다.

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


    게시판 예제를 MVC로 변환

    client로부터 request를 직접 받는 FrontController(DispatcherServlet)와 Model(BoardDao)에서 처리한 DB 데이터를 받는 ActionController(BoardView, BoardInsert, BoardUpdate, ...) 구조로 Controller를 두 단계로 분리하여 MVC를 구축한다.

     - ActionController 들의 공통 부분을 추상 클래스(AbstarctController)로 만들고 이를 상속받는다.

     

    EL과 JSTL을 사용하여 jsp에 있는 자바 소스를 제거한다.

     

    요청 내용
    /BoardInsert.do 게시판 입력 폼을 출력
    /BoardInsertActon.do 게시판 입력 폼에서 넘어온 갑을 테이블에 INSERT
    /BoardList.do 게시판 리스트
    /BoardView.do 게시판 상세보기
    /BoardUpdate.do 게시판 수정 폼에 게시물 내용을 출력
    /BoardUpdateAction.do 게시판 수정 폼에서 넘어온 값을 테이블에 UPDATE
    /BoardDelete.do 게시물 입력 시 비밀번호 재입력 폼 출력
    /BoardDeleteAction.do 게시물의 글번호와 비밀번호 일치 시 게시물 DELETE

    → 게시물 삭제 후에는 다시 리스트로 GO~!

     

    ※ 서블릿을 사용하면 실제 파일 경로를 감출 수 있다.

     - jsp파일의 경로로 직접 접근하지 않으므로 보안 상 이점이 있다.

     

    의존성 제거

     - DispatcherServlet은 ActionController에 변화(추가, 수정, 삭제 등)가 발생할 때마다 이에 맞게 소스를 수정해줘야하기 때문에 DispatcherServlet은 ActionController에 의존적(= 의존 관계)이라고 할 수 있다.

     - 이러한 의존 관계는 소스 수정이 자주 발생하므로 이를 제거하는 것이 좋다.

     

     

     


    webdev_20230214.war
    4.90MB

    'Study' 카테고리의 다른 글

    JAVA WEB - 7  (0) 2023.02.16
    JAVA WEB - 6  (0) 2023.02.15
    JAVA WEB - 4  (0) 2023.02.13
    JAVA WEP - 3  (0) 2023.02.10
    JAVA WEP - 2  (0) 2023.02.10
Designed by Tistory.