자바 웹프로그래밍 2기 강의 11일차 내용을 정리한 포스팅입니다.

프로그래밍이 어려운 이유

  • 자신감이 부족한 기간이 많다 꾸준히

  • 중간 기간에 자료의 부족

  • 알아야할 지식이 폭발적으로 많아진다.

하나의 목표를 설정한 후 목표에 집중

  • 너무 학습해야할 지식이 많으니 목표의식을 명확히하고 해당 분야에 깊이있게 학습하고 다른 분야에 관심을 가지자

ContextLoaderListener

  • Servelt 초기화는 해당 servlet 하나하나의 초기화

  • ContextLoaderListener은 톰캣서버 전체의 초기화

DispatcherServlet URL 패턴


// web.xml 에 디펄트 서블릿, jsp 서블릿이 등록 되어있다.
// web.xml을 따로 생성하지 않으면 톰캣에 있는 web.xml이 설정된다.
// 외장형 톰캣은?
defaultServlet : 정적인 자원들을 서빙하던 서블릿이다.


// 정적 자원을 서블릿 필더에서 걸러 주었다.
@Override
public void init(FilterConfig filterConfig) throws ServletException {
   // DefaultServlet
   this.defaultRequestDispatcher = filterConfig.getServletContext().getNamedDispatcher("default");
}


// web.xml에 설정되어 있던 default Servlet을 재정의한다.
@WebServlet(name = "dispatcher", urlPatterns = "/", loadOnStartup = 1)


@WebServlet(name = "dispatcher", urlPatterns = "/*", loadOnStartup = 1)

서블릿 컨테이너 접근순서

  • 내가 만든 web.xml -> 톰캣의 web.xml

Front Controller 패턴

  • 모든 요청을 DispatcherServlet이 받아서 각 요청에 따른 실직적인 작업을 하위 컨트롤러로 위임하는 방식의 패턴

스프링은 어디까지 해주나

  • DispatcherServlet / RequestMapping / Servlet Filter 까지 구현해준다.

  • 개발자는 controller 구현에 집중하면 된다.

loadOnStartup

  • 해당 설정이 없으면 servlet 인스턴스만 만들어 놓고 사용자 요청이 있을경우 init 메서드를 호출한다.

  • 값이 낮을수록 우선순위가 높고 -> 동일하면 먼저 설정한 놈이 먼저 적용