Spring/SpringBoot

서블릿 객체의 생명주기 & web.xml

느리지만 꾸준하게 2022. 5. 6. 14:19

서블릿 컨테이너(톰캣)

 

 

 

 

톰캣은 자바 코드를 통해 최초의 요청을 받을 때 스레드를 받는다. -> 서블릿 객체를 만든다.(필요한 데이터 가져옴)

 

스레드는 동시접근을 허용하게 해준다. 

 

 

 

스프링은 클라이언트가 요청을 했을 때 서블릿 컨테이너가 동작을 무조건 한다. (URI 요청을 하기 때문에)

최초 요청이 오면 메모리 로딩을 해서 서블릿 객체를 하나 만들고 실행을 한다. 그리고 스레드가 20개이면 두번째 요청부터 스무번째 요청까지 쭉 요청이 되고 21번째 부터 no가 요청이 될 것이다. 그리고 마지막으로 최종적으로 만들어지는 것이 Request 객체와 Response 객체이다.(톰캣이 들고 있는 객체) 

 

web은 Request와 Response의 여행이다. Request와 Response가 종료가 되면 여행은 끝나게 된다.

이 문구를 가지고 web.xml을 공부해보자.

 

 

 
 
 
공부는 문서! 책! 타이핑! 생각! 의 여러가지 종류 => 생각!이 가장 중요 => 책 / 문서를 보고 판단

스프링을 만든것도 사람 => 이 사람이 왜 이렇게 만들었을까라는 생각!
 

web.xml

  • ServletContext의 초기 파라미터

초기 파라미터는 한번 설정을 해놓으면 어디에 서든지 동작할 수 있다.

 

 

  • Session의 유효시간 설정

몇일 있을 수 있는지 세션의 시간을 설정

 

 

 

 

 

 

  • Servlet/JSP에 대한 정의
  • Servlet/JSP 매핑

다는 a네 그럼 ~~로 가라. 매핑의 대략적인 개념

 

 

  • Mime Type 매핑

a가 들고올 데이터가 무엇인지 본다.(get방식은 select)

 

들고올 데이터가 무엇인지 알려주는 것이 Mime Type이다.

 

 

 

  • Welcome File list

a는 데이터가 없네 일단 광장으로 보내버린다.

 

 

 

 

 

 

  • Error Pages 처리

a는 파로 가라고 정해져있다. 이상한 주소는 이상한 광장으로 보내 즉 다 에러페이지로 던져.

 

 

 

 

  • 리스너 / 필터 설정

필터는 그림에서 총을 들고 온 사람은 성 안으로 들어오지 못하게 하는 것.

리스너는 대리인이다. 문지기 web.xml의 허락을 안구하고 그냥 성 안으로 특정인을 들여보내게 된다.

 

 

  • 보안

 

 

- 여기에서 Servlet/JSP 매핑시(web.xml에 직접 매핑 or @WebServlet 어노테이션 사용)에 모든 클래스에 매핑을 적용시키기에는 코드가 많이 복잡해서 FrontController 패턴을 사용한다.(tistory 참고하자.)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<출처:스프링부트 개념정리 with JPA 10강 - 서블릿 객체의 생명주기>

https://www.youtube.com/watch?v=wc-K2QurjSk&list=PL93mKxaRDidG_OIfRQ4nztPQ13y74lCYg&index=10 

 

<출처:스프링부트 개념정리 with JPA 11강 - web.xml>

https://www.youtube.com/watch?v=Q_c-1-cq6YA