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

초코우유님의 프로필 이미지
초코우유

작성한 질문수

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

Hello 서블릿

http 요청을 보낼때마다 request, response 객체의 주소값이 변하지 않는 이유?

작성

·

491

4

안녕하세요 강의 정말로 잘 듣고 있습니다!

정말 별거 아닌 질문일 수 있는데 궁금해서 질문 남겨봅니다.

 

서블릿에서 Request 객체와 Response 객체는 HTTP 요청이 들어올때마다 새로 생성한다고 했는데, 왜 요청을 줄때마다 같은 주소값이 찍히는건가요?

한번 요청 - 응답 하고나면 끝이고 다시 페이지 새로고침을 하면 새로운 HTTP 요청이 가서 새로운 response, request 객체가 생성되야 하는게 아닌지 궁금합니다!!

그냥 WAS에 구현체가 싱글톤으로 있어서 요청이 올때마다 덮어써서 보내주는 방식?? 그런건가요?

 

스프링, HTTP 지식이 부족해서 나온 너무 이상한 질문이었을지도 모르겠네요 ㅠㅠㅠ..

 

답변 1

10

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

안녕하세요. 초코우유님 좋은 질문입니다.

톰캣의 경우 성능 최적화를 위해서 객체를 계속 생성하지 않고, 완전히 사용이 끝나면 RequestFacade 객체를 초기화해서 사용합니다. 그러니까 이미 생성된 객체를 재사용하는 것이지요.

그런데 정말로 동시에 요청이 들어오면 다른 객체를 생성해서 사용합니다.

컨트롤러 코드에 Thread.sleep(5000);을 넣어서 로그를 남겨보시면 다른 객체가 사용되는 것을 확인하실 수 있습니다.

감사합니다.

초코우유님의 프로필 이미지
초코우유
질문자

감사합니다 :D

감사합니다

초코우유님의 프로필 이미지
초코우유

작성한 질문수

질문하기