오늘부터는 수업 리뷰의 방향성을 기존과 다르게 작성해보고자 한다.

 

지금까지는 앞으로 제작할 프로젝트에 앞서 필요한 기술 스택을 배우는 과정이었기에

필요한 기술들을 나열식으로 정리하여 포스팅 했다.

 

나열식이었기 때문에 부가적인 설명을 붙이지 않고 글을 작성하더라도

이후에 이해하는 데 크게 어려움이 없었다

 

하지만 오늘부터 본격적으로 프로젝트를 염두에 둔 수업이 진행되었고

모든 모듈을 나열식으로 올리는 것에 있어서 비효율성을 느꼈기 때문에

수업중에 중요한 포인트만 집어서 올리고자 한다.

What I learn today

JSP/Servlet을 활용한 MVC 패턴을 중점으로 수업이 진행되었다.

 

기본적인 CRUD기능을 구현하는 것이 수업의 목표였다.

 

MVC 패턴

개발자가 될 나의 평생의 동반자, MVC패턴이다.

 

Model, View, Controller의 구조로 나누어 프로그램을 만드는 것이다.

Controller를 통해 Model을 조작하고, View를 통해 결과물을 return하는 형식이다.

 

지금까지 배운것에 대입해보면

Servlet(controller)으로 DTO(Model)을 조작해 JSP(View)로 출력해냈다.

 

오늘 수업에서 가장 중요한 것은 MVC 구조체를 어떻게 구성하는지였다.

Context 첫 페이지에서 이벤트가 발생하면 데이터를 Servlet으로 보내 model를 조작하고

최종본은 jsp를 통해 출력하게끔 만들었다.

 

가장 기본적인 select문의 경우

1.EmpListServlet 실행 (Controller)

2.service, dao를 통해 DB에서 데이터 가져오기

3.가져온 데이터를 list에 담아 list.jsp로 보내줌 (Model)

4.jsp에서 list에 담겨진 데이터를 활용하여 데이터 출력 (View)

 

이런 구조를 띄고 있으며 다른 CRUD 동작의 경우

1. page에서 이벤트 발생하면 해당 Servlet이 동작하게끔 만듬 (Form.action)

2. Servlet에서 service, dao를 통해 DB에 필요한 동작 진행

3 -1 받아온 데이터를 통해 새로운 갱신이 필요하면 RequestDispatcher를 통해 forward로 jsp에 데이터 전달

3 -2 새로 데이터를 받아올 필요가 없는 경우(데이터 삭제, 삽입, 업데이트는 DB에 바로 적용)는 sendRedirect를 통해 jsp창 실행 시켜줌

4. jsp에서 최종 출력

hidden

폼의 화면에 보이지 않고 form이 전송될 때 name/value로 전송만 시켜주는속성

 

retrieve 작업에서 사용했는데 화면에 구현된 요소이외에 name, value 중에서 전달하고 싶은 요소가 있다면

<input type="hidden" name="empno" value="<%=empno %>" >

이러한 코드를 통해 값을 전달해 줄 수 있음

 

servlet에서 똑같이 getParameter(name)으로 인자값 출력 가능

Map, List

1개 이상의 파라미터를 넘겨줄 때 항상 Map과 List를 어떻게 활용할지 생각해봐야 한다.

+ Recent posts