마트철수

[060] FrontController 그리고 Spring 시작 본문

KB IT's Your Life/교육

[060] FrontController 그리고 Spring 시작

마트스 2024. 8. 1. 15:34

 

2024.08.01(목)
 
JSP, Selvlet 5일차

드디어 Spring에 들어갔다!

템플릿을 만들어두고, 다음주부터 제대로 배울 예정이다.

 

이번주는 JSP 이해부터 ..

 


 
JSP, selvlet
 

PART01 시작하기

  • CH01.1 웹 애플리케이션 개요 
  • CH01.2 웹 애플리케이션  프로젝트

PART02

  • CH02.3 JSP 문법

PART03

  • CH03.1 HTML5 Form 태그화 서블릿
  • CH03.2 필터

PART04

  • CH04.1 서블릿 고급 - 세션, 쿠키
  • CH04.2 요청 포워딩, 리다이렉트

PART05

  • CH05 EL, JSTL
  • FrontController

 

ch06 FrontController

 

  • 모든 요청을 받고, 요청의 종류에 따라 작업을 분기하는 Dispatecher Sevlet
  • MVC 패턴에서 제일 앞 단에 위치
  • ~.jsp를 통해서 다이렉트로 JSP에 접근하지 못하게 막아야함 → 이제 Servlet을 통해서만 호출 가능

자카르트 프로젝트 만들고, jsp에 바로 접근할 수 없도록 폴더 이동

 

FrontControlerServlet

  • 컨트롤러: 실제 요청을 처리하고 흐름을 제어하는 역할
  • 각 메서드는 Command 인터페이스와 일치하게 작성

  • value 뒤 코드가 중요함 → 모든 요청을 받아주겠다
    @WebServlet(name = "frontControllerservlet", value = "/")
  • (1) 디렉토리 기반(/board) (2) 확장명 기반(*.do)
  • CLI에서 Menu의 역활을 하는 서블렛
  • GET, POST 요청을 받아와서 init으로 초기화
    public class FrontControllerServlet extends HttpServlet {
    
        Map<String, Command> getMap;
        Map<String, Command> postMap;
    
        public void init(){
            getMap = new HashMap<>();
            postMap = new HashMap<>();
        }
  • 사용자 요청 식별 방법
    • url 구성 => context명은 제외하고, 식별값 부분만 요청해서 가져온다
    • 아래와 같이 context명을 추출한다(이미지)
      http://서버IP번호:포트번호/context명/경로(식별값)

substring을 사용하면 context명을 추출할 수 있다

Command

  • 상속받는 클래스는 모두 execute를 구현해야함
  • 리턴값을 String

HomeController

  • view 이름: index; → /views/index.jsp
public class HomeController {
    public String getIndex(HttpServletResponse response, HttpServletRequest request) throws IOException{
        return "index";
    }
}

 

 

※ 요청이 오면 4가지 방법으로 해결할 수 있다.

  1. getParameter() → DTO 객체
  2. 서비스로직 실행
  3. 결과 scope 저장
  4. forward/redirect
Spring

 

개발 환경 구축

 

Spring 프로젝트 생성 → 매번 annotation 설정 변경해줘야함

 

 

Spring 기본 templat-StringLegacy 만들어두기
(복습)

 

 

'KB IT's Your Life > 교육' 카테고리의 다른 글

[062] 스프링 MVC의 Controller  (1) 2024.08.05
[061] 알고리즘: 백트래킹  (1) 2024.08.02
[059] EL과 JSTL  (0) 2024.07.31
[058] 세션, 쿠키, 포워딩  (0) 2024.07.30
[057] JSP 그리고 HTML5 Form 태그화 서블릿  (0) 2024.07.29