뇌운동일지

MVC2_example 본문

얕고 넓은 it지식

MVC2_example

purpleduck 2020. 6. 3. 10:17

서블릿 

1. init( ) <= 처음 무조건 1회 실행 ( 초기화 메소드 ) 

2. doGet( ) <= get방식 요청 시 실행 

3. doPost( ) <= post방식 요청 시 실행 

4. execute( ) <= +a 유저가 추가한 메소드 

 

1,2,3은 오버라이딩 ( 상위 클래스가 가지고 있는 메소드를 하위 클래스가 재정의해서 사용 ) 

 

Map : key와 value로 저장함. key는 String, value는 Object 

HashMap을 선언한 것은 무엇인가를 저장한다는 의도 

 

Properties : key와 value로 저장되는 구조. key와 value 모두 String

 

반복을 돌릴 수 있는 것 : enumneration, iterator(최신) 

 

 

junit : 단위테스트, 임의의 실행파일 

 

view와 model을 개별로 만들어놓고, controller를 만들어서 다시 테스트 

 

throws절 : 예외가 발생하면 나를 사용하는 쪽에도 예외를 알려주는 역할 

( method안에 예외처리해야하는데 못한 것이 있다 ) 

 

오라클은 일부만 가져오는 키워드가 없으므로, 서브쿼리를 사용해야 함. 

subquery : 안쪽 쿼리의 결과를 바깥쪽 쿼리의 인자로 사용하는 것 

 

백앤드 개발 : 뒤에서 앞으로 오면서 

( DB -> DAO -> CMD ) 

CMD : command 패턴 ( 여러 개를 한꺼번에 실행 ) 

※ adapter 패턴 : A를 감싸서 B처럼 보이게 함 

 

HTML5/CSS : 모든 디자인을 stylesheet로 넘긴다 

 

jsp 파일 하나에서 이루어지던 일을 기능별로 나눔 -> 컴포넌트화 

( CBD 개발 ) 

 

DAO

- business logic 

- business method : 데이터를 가공하는 로직이 들어있는 것 

FC 와 Action 사이에 business layer를 넣는 방법도 있다 

 

========== Example ============

작업1) 입력 폼 띄우기 

1. DAO : X

2. Action : WriteFromAction (Interface CommandAction을 적용해서 requestPro를 재정의(Overriding))

3. view : writeAForm.jsp (폼구성) ( JavaScript를 이용한 유효성 검사 ) 

4. mapping : Command.properties         경로 = 액션클래스를 mapping 

 

작업2) 글 입력 처리 

1. DAO : insertArticle(B)

2. Action : WriteProAction

3. view : ① 엔코딩

           ② 받아서 빈에 저장

           ③ DAO 참조

           ④ bin 설정

           ⑤ 데이터 request 저장

           ⑥ 메시지 리턴 (writePro.jsp)

4. 매핑 :     경로:처리클래스 추가

 

작업3) 글목록 

1. DAO : 글갯수 -> getArticleCount

            글목록 -> getArticles(s,e) 

2. Action : ① 받는다 

              ② 페이징 관련 변수, 실행 

              ③ DAO, 실행 

              ④ 데이터 request 지정 

              ⑤ 이동 

3. view : list.jsp 

4. Mapping : CommandPro.properties에서 mapping code 추가 

 

작업4) 글보기

1. DAO : ① 조회수 증가

            ② 해당글 반환 

2. Action : ContentAction 

              ① 받는다 : 글번호, 페이지번호 

              ② DAO참조

              ③ bm 글 호출

              ④ 데이터 request에 저장 

              ⑤ view값 리턴 

3. view : content.jsp 

4. Mapping : 경로와 action class mapping 후, test 

 

작업5) 수정폼 

1. DAO : updateGetArticle(n) 

            ① 해당글 반환 

2. Action : UpdateFormAction( )

              ① 받는다 : 글번호, 페이지번호

              ② DAO참조

              ③ bm 실행 (business method)

              ④ view에서 사용할 데이터 request에 저장 

              ⑤ view이름 리턴 

3. view : updateForm.jsp ( el, jstl 이용해서 form구성 ) 

4. Mapping : 매핑 -> 경로와 액션클래스 

 

작업6) 글 수정 처리

1. DAO : updateArticle(B)

            ① 해당글 반환 

2. Action : UpdateProAction( )

              ① 엔코딩

              ② 받는다 -> 빈에 저장 

              ③ DAO 참조

              ④ bm실행 

              ⑤ 결과 -> request에 저장 

              ⑥ 뷰값 리턴 

3. view : updatePro.jsp 

4. Mapping  

 

작업7) 글 삭제 폼 

1. DAO : X

2. Action : DeleteFormAction( )

              ① 환경변수 받음. num, pageNum

              ② 저장 (request) 

              ③ 뷰 (폼페이지 이름)

3. view : deleteForm.jsp 

4. Mapping : path=Action 

 

작업8) 삭제처리

1. DAO : deleteArticle(n,p)

2. Action : DeleteProAction

              ① 엔코딩 (만약 암호가 한글일 경우를 대비해서)

              ② 받는다

              ③ DAO 참조

              ④ bm실행 

              ⑤ 결과 저장 

              ⑥ 뷰값 리턴 

3. view : deletePro.jsp

4. mapping

'얕고 넓은 it지식' 카테고리의 다른 글

UML  (0) 2020.06.04
url과 uri의 차이  (0) 2020.06.03
MVC2 (model2)  (0) 2020.06.02
온라인 웹에디터 - Liveweave  (0) 2020.04.08
웹 소소한 점  (0) 2020.04.03
Comments