MVC패턴 - 프론트 컨트롤어, 절대경로와 상대경로

전영덕·2023년 4월 29일
0

JSP

목록 보기
15/16

MVC패턴인데 컨트롤러 부분이 JSP파일이아니라 java파일이 될것임

webapp밑에 a.jsp
com.codingbox.servlet밑에 B.java
webapp밑에 c.jsp

DBMS부분은 걷어내고 a.jsp -> B.java ->c.jsp 순서대로 했음

DBMS연결을 위해서는 com.codingbox.mybatis 패키지가 필요함
그리고 sql문을 날리기 위해 com.codiungbox.sql 패키지가 필요함

com.codiungbox.sql 안에 파일을 test.xml로 이름을 바꿨다.
설정파일내에서 바꾸어야할 필요가있다.
config.xml에서 로 바꾸어야한다.

이러면 DB커넥션을 맺을 준비가 되었다.
다시 a.jsp로간다.
계산기 부분을 주석처리하고 다른 폼하나 만들었다.
디비버로가서 테이블 하남나든다
test라는 테이블

이클립스가서 insertServlet.java파일 만든다
test.xml을 수정했다.

  • 프론트 컨트롤러 사용 전
  • 프론트 컨트롤러 사용 후

클라이언트에서 front controller가 공통로직을 먼저 받아서 컨트롤러 A,B,C에게 전달함

1. 프론트 컨트롤러

  • 프론트 컨트롤러가 도입된 이후부터는 공통의 로직을 관리하는 서블릿을 만들어 처리하도록 했다.
  • 프론트 컨트롤러 서블릿 하나로 클라이언트의 요청을 받는다.
  • 프론트 컨트롤러가 클라이언트의 요청에 맞는 컨트롤러를 찾아 호출해 준다.
  • 컨트롤러에 대한 공통 로직에 대한 처리가 가능하다.
  • 프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 된다.
    (신규 프로젝트를 MVC1모델로 하는 곳은 없다. 혹시나 있다면 가서는 안되는 회사일 정도이다.)

fc폴더랑 그 밑에 doing.jsp파일 만들었다.

자바 파일로 DoFrontController.java
do1.jsp, do2.jsp, do3.jsp
여기에서 do1.jsp가아니라 Do1.java로 컨트롤러를 만들어 줄것이다.
Do2.java, Do3.java도 1이랑 같게 헀다.

갑자기UMS라는 이름의 Dynamic Web Project를 만들었다.
설정 똑같이 해주었다.
포트번호는 8079라고 일단 했다.
디비버로 가서 "USER"라는 테이블 만들었다.
쌍따옴표가 없는 USER는 예약어이기 때문에 단순 문장으로 쓰기 위해서는 쌍따옴표를 붙혀 사용한다.
혹시나 DB가 바뀔수도 있는데 DB가 바뀐다는 것은 엄청 큰 일이기 때문에 이렇게 쌍따옴표를 사용하는 것을 제공한다.

이클립스로 돌아와서 UMS에서 웹앱 아래에 index.jsp파일과 app > user > joinview.jsp파일을 만듦
필터 패키지 복붙해오자. 근데 이렇게 복붙하다보면 css가 깨지는 경우가있다고 한다.( 프로젝트 하면서 바로 겪음. 이유를 몰라서 힘들었지)
com.codingbox.app.user
그아래에 UserFrontController.java만듦
com.codingbox.app.Action
아래에 Action.java라는 인터페이스를 만듦

그리고 ActionFOrward.java만들어서
생성자 있는 것, 없는것 각각 만듦

UserJoinAction.java

com.codingbox.app.user.dao패키지를 만듦
그아래에 UserDTO만듦 . 디비버 보고서 변수만들고 게터셋터함

필터로 가서 웹필터가 @WebFilter("*.us")로 바꾸자
com.codingbox.app.dao패키지를 만들고 UserDAO.java

test.xml파일을 f2눌러서 user이라고 바꾸자
역시 mybatis.config에서 파일명 바꾸기
alias추가해주었다.

디비버 가서 INSERT INTO "USER" values('admin', 'admin123', '홍길동', '01012345678', '서울시');하나 추가해주고
추가된것 확인하기.

loginview.jsp만들기
index.jsp에 추가하기 :

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

2. 상대경로, 절대경로

https://aljjabaegi.tistory.com/187

0개의 댓글