Dev log - 61, Java #15, Servlet #5, JSP #2

박강산·2022년 7월 1일
0

Java

MVC 패턴

  • UI 개발자와 비즈니스 개발자와의 분업 개발 제공
  • 동시 사용자 증가에 따른 시스템 확장성 제공
  • Low coupling(결합도), High cohesion(응집도) 을 통한 시스템 유지 보수의 편리성 제공

모델 2 아키텍쳐

  • 썬 마이크로시스템의 베스트 가이드 라인
  • MVC 패턴 구현을 위한 베스트 컴포넌트
    ex)
    Model : (P) Java, Java Beans, EJB / (S) DAO, DTO
    View : HTML, JSP, XML / (S) Servlet
    Controller : Servlet / (S) JSP

컨트롤러의 주요 역할

  • 서블릿에 의해 구현될 컨트롤러는 다음과 같은 역할을 처리
    1. 클라이언트의 요청 파라메터 정보를 구함
    2. 요청 파라메터에 대한 유효성 검증 및 데이터 변환 작업을 처리
    3. 요청 처리에 필요한 비즈니스 오퍼레이션을 호출
    4. 요청 처리 결과에 따라 클라이언트에게 보여줄 뷰를 선택

Java Servlet

서블릿 커뮤니케이션

  • 서블릿은 다른 서블릿과의 커뮤니케이션이 일반 객체와 달리 제약적
    1. 사용자가 서블릿 객체를 직접 생성하지 않음
    2. 기본적으로 특정 서비스를 위해 하나의 서블릿 인스턴스를 생성함
    -> 요청 처리를 다른 자원으로 위임할 수 있는 방법이 필요

RequestDispatcher

  • 서블릿에서 다른 페이지로 포워드 할 수 있는 메소드를 제공

  • 클라이언트로부터 최초에 들어온 요청을 JSP/Servlet 내에서 원하는 자원으로 요청을 보내는 역할을 수행하거나, 특정 자원에 처리를 요청하고 처리 결과를 얻어오는 기능을 수행하는 클래스

출처: https://dololak.tistory.com/502

Scope (객체 범위)

  • Scope는 다른 서블릿과 공유해야 할 데이터를 임시적으로 저장할 수 있는 기능을 제공함
    (page, request, session, application)
  1. page 영역

    • 한 번의 클라이언트 요청이 오면, 하나의 JSP 페이지가 응답하고, 이 때 하나의 JSP 페이지 내에서만 객체를 공유하는 영역 (JSP에서만 존재)

    • <% %> 안에 변수를 사용하면, page 스코프에 정의된 객체이기 때문에 이 변수는 해당 JSP 파일 내에서만 유효

  2. request 영역

    • 요청을 받아서 응답하기까지 객체가 유효한 영역

    • Servlet에서 forward 또는 include를 사용하면, request 영역이 됨
      ex)
      Servlet에서는 reqeust.setAttribute("이름", 객체); 로 전달,
      JSP에서는 Obejct ob j = request.getAttribute("이름"); 으로 받음
      이 request 객체가 request 영역

  3. session 영역

    • 하나의 브라우저 당 1개의 session 객체가 생성, 같은 브라우저 내에서 요청되는 페이지들은 같은 객체를 공유하게 됨, 이를 세션 영역이라고 함

    • requset.getSession() 메서드를 호출하여 세션 영역의 객체를 얻을 수 있고, 세션이 종료되면 객체는 반환됨

  4. application 영역

    • 하나의 애플리케이션 당 1개의 application 객체가 생성, 같은 애플리케이션 내에서 요청되는 페이지들은 같은 객체를 공유하게 됨, 이를 애플리케이션 영역이라고 함

    • request.getServletContext() 메서드를 호출하여 애플리케이션 영역의 객체를 얻을 수 있고, 애플리케이션이 종료되면 객체는 반환됨

출처 : https://victorydntmd.tistory.com/155

JSP 실습 보충

  • 서블릿
    request.setAttribute("userName", userName);
    RequestDispatcher dispatcher = request.getRequestDispatcher("success.jsp");
    dispatcher.forward(request, response);

  • JSP
    String userName = (String)request.getAttribute("userName");

profile
안녕하세요. 맡은 업무를 확실하게 수행하는 웹 개발자가 되기 위하여 끊임없이 학습에 정진하겠습니다.

0개의 댓글

관련 채용 정보