패캠 JAVA 11일차
자바 웹프로그래밍 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 메서드를 호출한다.
-
값이 낮을수록 우선순위가 높고 -> 동일하면 먼저 설정한 놈이 먼저 적용