아무거나

[JSP] FrontController 패턴과 Command 패턴 본문

Java & Kotlin/JSP & Servlet

[JSP] FrontController 패턴과 Command 패턴

전봉근 2019. 12. 21. 21:50
반응형

[JSP] FrontController 패턴과 Command 패턴

 

1. url-pattern : 긴 주소같은경우는 경로가 길며 보안상 문제가되므로 그것을 특정 단어로 서블릿 매핑을해서 매핑명으로 접근한다.

   [디렉토리 패턴 ex] : 디렉터리 형태로 서버의 해당 컴포넌트를 찾아서 실행하는 구조

   - http://localhost:8080/{contextPath}/Hello //  /Hello 서블릿

   - http://localhost:8080/{contextPath}/World //  /World 서블릿

   

   [확장자 패턴 ex] : 확장자 형태로 서버의 해당 컴포넌트를 찾아서 실행하는 구조

   - http://localhost:8080/{contextPath}/Hello.do  // *.do 서블릿

   - http://localhost:8080/{contextPath}/World.do  // *.do 서블릿

 

   * 하나의 *.do 서블릿으로만 이동 즉, *.do로 매핑되어있는 서블릿으로만 이동

     서블릿내에서 hello인지 world인지 구분한다.

 

2. FrontController 패턴

   - 클라이언트의 다양한 요청을 한곳으로 집중시켜, 개발 및 유지보수에 효율성을 극대화 한다.

     

     [이전 방식]

     요청1  --> 요청1 처리 서블릿 -->

     요청2  --> 요청1 처리 서블릿 --> DAO

     요청3  --> 요청1 처리 서블릿 -->

 

     * 이전에는 각각 으로 호출되었다.

 

     [FrontController 방식]

     요청1  -->                   

     요청2  --> 모든 요청을 처리하는 서블릿 --> DAO

     요청3  --> 

     

     * 분산되있는것을 하나로 뭉침으로 인하여 중복코드가 없어지며 개발하는데 집중할 수 있다.

 

3. Command 패턴

   - 클라이언트로부터 받은 요청들에 대해서, 서블릿이 작업을 직접 처리 하지 않고, 해당 클래스가 처리하도록 한다.

     -> 위의 2번 FrontController 방식에서 하나의 서블릿에서 각각의 조건절로 호출하는 경우를 나눠서 처리하기 위해 사용

 

     [이전 방식(FrontController 방식)]

     요청1  -->                   

     요청2  --> 모든 요청을 처리하는 서블릿 --> DAO

     요청3  -->      

 

     [Command 방식]

     요청1  -->                                       --> 요청1 처리 클래스(interface) -->

     요청2  --> 모든 요청을 직접 처리하는 않는 서블릿 --> 요청2 처리 클래스(interface) --> DAO

     요청3  -->                                       --> 요청3 처리 클래스(interface) -->

 

 

참고: https://www.inflearn.com/course/%EC%8B%A4%EC%A0%84-jsp-%EA%B0%95%EC%A2%8C/dashboard

반응형

'Java & Kotlin > JSP & Servlet' 카테고리의 다른 글

[JSP] 포워딩(Forwarding)  (0) 2019.12.21
[JSP] JSTL(JSP standard Tag Library)  (0) 2019.12.21
[JSP] EL(Expression Language)  (0) 2019.12.21
[JSP] 파일 업로드  (0) 2019.12.21
[JSP] 커넥션 풀  (0) 2019.12.21
Comments