ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스프링에서 jsp랑 서블릿 역할
    java/스프링공부 2020. 7. 9. 11:52
    728x90

    내 딴에서 한번 정리를 해보자면

    기본적으로 스프링은 Model2 디자인패턴 형식을따른다.

     

    MVC패턴 Model2 기능
    Model 서비스클래스 or 자바빈 ~ 비지니스 로직을 처리하는 모든 것이 모델에 속한다. 컨트롤러부터 특정 로직에 대한 처리 요청(게시판 글쓰기, 회원 가입 등)이 들어오면 이를 수행하고 수행 결과를 컨트롤러에 반환한다.
    (request 객체나 session객체에 저장하기도 함)
    View JSP페이지 ~ 클라이언트에 출력되는 화면을 말한다. 모델1과는 달리 로직 처리를 위한 코드가 내포되어있지 않다. 요청 결과의 출력 뿐만 아니라 컨트롤러에 요청을 보내는 용도로도 사용된다.
    (request객체나 session객체에 저장된 정보를 토대로 화면 출력)
    Controller Servlet
    ~ MVC패턴(Model2)모든 흐름제어츨 맡는다. 브라우저로 요청이 들어오면 어떤 요청이 들어오는지 분석하여 이 요청을 처리하기 위한 모델을 사용하여 처리한다. 사용한 모델로 부터 처리결과를 받으면 추가로 처리하거나 가공해야 할 정보가 있다면 처리 후 request객체나 session객체에 저장하고, View(JSP페이지)를 선택하여 Foward나 redirect하여 클라이언트에 출력한다.

    이렇게 MVC 패턴을 사용하는게 모델2기법

    JSP파일은 결국 서블릿으로 변환이 되어 실행된다. JSP파일이 Servlet으로 변환되는 과정은 오직 한번만 일어나므로 같은 페이지에 수많은 사용자의 요청이 있더라도 처리속도는 거의 떨어지지 않게 된다.

     

    결론) 스프링에서는 서블릿을 사용한다. view단에서 jsp를 사용하지만 결국 컨트롤러를 통해서 서블릿으로 변환되어 실행됨. 그래서 결국 jsp랑 서블릿 둘다 할줄 알아야됨.....

    그리고 스프링 MVC에서 내 생각대로 정리 하자면 프로젝트가 돌아가는 순서를 정리하자면

    (스프링 + mybatis 기준)

    mapper -> DAO -> Service -> Controller -> View

    Dao에서 mybatis랑 연동되어 db에서 데이터를 가져오고 그걸 service에서 처리함

    service에서 가져온 데이터와 처리해야할 비즈니스 로직이 일어난후 그 결과가 Cotroller에 전달

    Controller는 요청받은 url에 따라 service호출 밑 View로 객체 반환

    Vo는 모델 

    이렇게 이해하고있다.

    728x90
Designed by Tistory.