JSP

프론트 컨트롤러 FrontController

보배 진 2025. 11. 27. 08:47

 

 

FrontController

 

Spring의 구조 중에 하나

 

웹 애플리케이션에서 모든 요청을 한 곳(하나의 진입점)에서 먼저 받는 구조
보통 JSP/Servlet 환경에서는 FrontControllerServlet 같은 서블릿이 그 역할을 한다

 

 

 

핵심 개념
모든 요청을 단일 진입점에서 처리
공통 작업을 한 곳에서 처리할 수 있음
→ 예: 인코딩, 인증 체크, 로깅, 에러 처리 등
이후 해당 요청을 적절한 Controller(또는 Handler)에 분배(dispatch)

 

 

 

 

ex) 카페를 갔다. 점원이 3명

손님이 아아 주문 하면 만들고 제공

1:1 매핑 -> 비효율적임

1명은 계산&서빙

1명은 커피 만들고

1명은 뒷정이

V : 사용자

 C : 직원

M : 키오스크

Spring은 효율적으로 해야겠다 함.

계산하고 서빙하는 사용자와 직접적으로 닿아있는 부분을 프론트 컨트롤러라고 한다

 

 

 

 


 

 

 

controller에서는 자바코드인데 자동완성도 안됨 => 불편하다

-> 그냥 자바에서 하자~

 

자바를 두 종류로 나눈다면

▪ POJO : DTO, DAO, Util

▪ not POJO : Servlet, 리스너, 필터

인데 어디서 작성을 할까?

 


컨트롤러.jsp를 컴파일하면 >> controller_jsp.java 파일이 되고 == 서블릿 파일이 된다

그래서 컨트롤러를 서블릿으로 만듦

 

 

 

 

 Controller.java 서블릿 파일을 생성했다

 

 

17~21, 31~34 내가 컨트롤러 서블릿을 만들 때 나옴

이 페키지에 서블릿이 있어 너 /Controller 하면 나한테 와 -> *.do로 끝나면 나한테 와로 변경

 

 

 

<!-- Controller 시작은 컨트롤러가 하기 때문에 자바영역(스크립틀릿)으로 이루어져 있다 -->
<!-- 스크립틀릿 : 자바 코드가 실행되는 영역 -->
<!-- Page가 아님 -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isELIgnored="false" %>
<%
	// controller가 시작하는 것
	// 이전 코드 >> response.sendRedirect("controller.jsp?command=MAINPAGE"); // get 방식
	// command에 파라미터에 MAINPAGE값 세팅

	// 이제 컨트롤러 서블릿으로 와야 하는데 jsp 부르고 있음
	// 서블릿을 부르는 설정이 있다
	response.sendRedirect("mainPage.do");
%>

인덱스에서는 이제 그냥 .do로 끝나면 되니까 

 

메인페이지 보여줘 컨트롤러야~

파라미터가 없어 속도가 빠름