인프런 커뮤니티 질문&답변

asdf5184님의 프로필 이미지

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

서블릿 생성 시점과 역할 관련 질문입니다!

작성

·

1.7K

5

안녕하세요.
좋은 강의 정말 감사드립니다^^!
서블릿에 관련하여 궁금한 것이 생겨서 질문 드리고 싶습니다.
 
1. 서블릿 객체는 언제 생성되나요?
처음 스프링 부트가 띄워질 때 만들어 지는 것인가요? 아니면 url mapping이 되어서 서블릿 객체가 필요해지면 생성되나요?
그리고 스프링에서 사용하는 dispatcherservlet은 언제 생성되나요?
 
 
2. HttpServelet reqest 객체에 HTTP 요청 메시지 파싱해서 넣고 처리해주는게 서블릿 객체라고 배웠습니다.
그렇다면 HttpServelet response의 내용을 바탕으로 HTTP 응답 메시지를 생성하는 것도 서블릿이 하나요?
 
3. 서블릿의 요청 메시지 처리 작업은 언제 이루어지나요? was가 url에 맞는 서블릿 객체의 service()를 수행하는데, 저희가 만든 service에는 요청 메시지 파싱 작업이 없어보입니다! service를 부르기 전에 다른 메소드가 먼저 불리는 것인가요?
 
 
감사합니다!

답변 2

3

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. asdf5184님
 
1. 서블릿 객체는 언제 생성되나요?
처음 스프링 부트가 띄워질 때 만들어 지는 것인가요? 아니면 url mapping이 되어서 서블릿 객체가 필요해지면 생성되나요?
그리고 스프링에서 사용하는 dispatcherservlet은 언제 생성되나요?
-> 서블릿은 생성 시점은 서버 설정에 따라서 다릅니다. 로딩 시점에 생성할 수도 있고, 최초 요청 시점에 생성할 수도 있습니다.
서블릿 생성 시점 옵션으로 검색해보시면 원하는 답을 찾을 수 있을거에요.
 
 
2. HttpServelet reqest 객체에 HTTP 요청 메시지 파싱해서 넣고 처리해주는게 서블릿 객체라고 배웠습니다.
그렇다면 HttpServelet response의 내용을 바탕으로 HTTP 응답 메시지를 생성하는 것도 서블릿이 하나요?
-> request 객체를 만들어서 서블릿에 넘겨주는 것은 서블릿 컨테이너의 역할입니다. response도 마찬가지로 서블릿 컨테이너가 합니다. 그리고 서블릿 컨테이너가 서블릿을 호출해주는 것이지요.
 

 

3. 서블릿의 요청 메시지 처리 작업은 언제 이루어지나요? was가 url에 맞는 서블릿 객체의 service()를 수행하는데, 저희가 만든 service에는 요청 메시지 파싱 작업이 없어보입니다! service를 부르기 전에 다른 메소드가 먼저 불리는 것인가요?

-> 서블릿 컨테이너가 이런 부분을 처리하고 우리가 만든 서블릿 객체를 호출한다고 이해하시면 됩니다.

감사합니다.

asdf5184님의 프로필 이미지
asdf5184
질문자

상세한 답변 감사드립니다!^^

0

안녕하세요. 지나가다가 저도 고민했던 부분이라 생각을 공유해보고 싶습니다!

 

2. 웹 애플리케이션 서버에서 서블릿 객체를 받아 HTTP 응답 메시지를 생성하는 것이라고 생각했었습니다.

즉, 서블릿은 개발자가 만든 내용을 서블릿 객체로 만들고 가장 앞단에서 웹 애플리케이션 서버가 실제 브라우저에게 전송할 HTTP 응답 메시지를 만들어 응답하는게 아닌가 생각했어요 저의 의견이었습니당

 

ps

저와 비슷한 고민들을 하실 것 같아서 같이 스터디하면 어떨까 하여 인프런 스터디 공고 공유드립니다~

관심 있으시면 연락주세요!!😁

asdf5184님의 프로필 이미지
asdf5184
질문자

의견 공유해주셔서 감사드립니다!!ㅎㅎ 스터디는 죄송합니다ㅠㅠ 제가 생활이 유동적이라 시간을 맞추기 어려울 것 같습니다. 답변 달아주셔서 감사드립니다! 

혹시 정답을 알아 내신다면 답글 달아주실 수 있을까요?

asdf5184님의 프로필 이미지
asdf5184
질문자

네!ㅎㅎ

asdf5184님의 프로필 이미지
asdf5184
질문자

ldb4946님, 댓글 알람이 가는지 모르겠네요! 답변 달아주셔서 확인 부탁드립니다!

asdf5184님의 프로필 이미지

작성한 질문수

질문하기