-
JAVA WEB - 5Study 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)
: 자바를 사용하지 않고 제어문을 사용할 수 있도록 해주는 라이브러리
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.war4.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