서블릿, JSP, MVC 패턴

최주영·2024년 2월 5일
0

✅ 순수 서블릿 개발
-> 뷰 화면(HTML)을 서블릿(자바 클래스) 안에서 개발하다 보니, HTML을 만드는 작업이 자바 코드에
섞여서 지저분하고 복잡하다는 단점이 생겨서 템플릿 엔진 중 하나인 JSP 가 생김

✅ JSP
JSP를 사용하면서 따로 JSP파일을 만드니, JSP 파일 안에서 HTML 코드 안에 중간중간 동적으로
필요 부분만 자바 코드를 적용하니 HTML 작업은 깔끔하게 진행이 가능해졌다
하지만 이 방법도 불편하다 생각하여 결국 비즈니스 로직은 서블릿처럼 다른곳에서 처리하고
JSP는 목적에 맞게 화면을 그리는 일에 집중하기 위해 MVC 패턴 이 등장하였다

✅ MVC 패턴
MVC1 패턴 처럼 컨트롤러에서 비즈니스 로직을 처리할 수 있지만,
컨트롤러가 너무 많은 일을 담당하기 때문에 서비스 계층을 별로도 만든 MVC2 패턴이 등장함
컨트롤러는 비즈니스 로직이 있는 서비스를 호출하는 것을 담당한다.


✅ MVC 적용

  • 서블릿을 -> 컨트롤러 로 사용
  • JSP -> 로 사용
  • HttpServletRequest 객체 -> 모델로 사용

--> request.setAttribute() request.getAttribute() 로 데이터를 보관 조회 함

  • WEB-INF 밑에 있는 JSP들은 외부에서 호출해도 호출되지 않음 (무조건 컨트롤러를 거쳐서 이동)

forward

  • 서버 내부에서 일어나는 호출로 이동한 URL로 요청정보를 그대로 전달
  • 사용자가 최초로 요청한 정보가 다음 URL에서도 유효함

ex) 조회 및 검색 때 사용

        String viewPath = "/WEB-INF/views/new-form.jsp";
        RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath); // jsp로 이동할 경로 찾기
        dispatcher.forward(request,response);// 서블릿에서 jsp 호출
        // 다른 서블릿이나 JSP로 이동할 수 있는 기능 (서버 내부에서 다시 호출이 발생)

redirect

  • 실제 클라이언트에 응답이 나갔다가, 클라이언트가 redirect 경로로 다시 요청
  • 최초로 보냈던 요청정보는 유효 X
    ex) 로그인, 회원가입, 글쓰기

두개 비교 사이트 : https://doublesprogramming.tistory.com/63

profile
우측 상단 햇님모양 클릭하셔서 무조건 야간모드로 봐주세요!!

0개의 댓글