서블릿과 서블릿컨테이너 그리고 WAS
73
작성한 질문수 2
[질문 내용]
HttpServletRequest 역할
HTTP 요청 메시지를 개발자가 직접 파싱해서 사용해도 되지만, 매우 불편할 것이다. 서블릿은 개발자가 HTTP 요청 메시지를 편리하게 사용할 수 있도록 개발자 대신에 HTTP 요청 메시지를 파싱한다. 그리고 그 결과를 HttpServletRequest 객체에 담아서 제공한다.
pdf보면 위 내용처럼 HTTP 요청 메시지를 파싱하고 그 결과를 Request 객체를 만드는게 서블릿이라고 적혀있는데
WAS와 서블릿을 구분해서 공부를 하던 도중 개념이 헷갈려서 https://jakarta.ee/specifications/servlet/5.0/apidocs/jakarta/servlet/http/httpservletrequest
공식문서를 찾아봤는데
The servlet container creates an HttpServletRequest object and passes it as an argument to the servlet's service methods (doGet, doPost, etc).
요청 객체와 파싱은 서블릿 컨테이너가 한다고 나와있습니다.
찾아보니까 서블릿과 서블릿 컨테이너는 같은 의미는 아닌거 같고 그럼 여기서 말하는 서블릿 컨테이너는 WAS 같은건가요?
아니면 서블릿 = 서블릿 컨테이너 라고 개념을 익혀도 괜찮은건가요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 홍기현님.
서블릿과 서블릿 컨테이너, 그리고 WAS의 개념에 대해 혼란을 겪고 계신 것 같습니다. 이것들은 웹 애플리케이션에서 중요한 역할을 하지만, 그 차이와 각자의 역할이 명확히 이해되지 않으면 헷갈리기 쉽습니다.
우선, 기본 개념을 간단히 설명드리겠습니다:
서블릿(Servlet): 자바 기반의 웹 어플리케이션을 쉽게 만들 수 있게 해주는 기술입니다. 서블릿은 웹 요청을 받아들이고 그에 대한 응답을 생성하는 데 필요한 비즈니스 로직을 처리합니다.
서블릿 컨테이너(Servlet Container): 서블릿의 실행 환경을 제공합니다. 주요 역할은 HTTP 요청을 받아 HttpServletRequest 객체로 변환하고, 서블릿의 라이프 사이클을 관리하며, 응답을 클라이언트로 전송하는 것입니다. Tomcat 같은 서블릿 컨테이너가 여기에 해당됩니다.
WAS(Web Application Server): 웹 서버와 애플리케이션 서버의 결합으로 볼 수 있습니다. 이는 HTTP 요청을 처리하는 웹 서버 역할과, 동적 페이지 생성을 위한 서블릿 컨테이너를 제공하는 등 복합적인 역할을 수행합니다.
이러한 설명을 바탕으로, 질문에서 언급하신 “서블릿 컨테이너”는 일반적으로 WAS의 구성 요소로 이해하시면 됩니다. 즉, 서블릿 컨테이너는 서블릿의 관리와 실행을 담당하는 부분이며, WAS는 더 많은 기능을 포함한 더 큰 개념입니다. 서블릿은 서블릿 자체만을 의미하며, 서블릿 컨테이너는 서블릿의 실행 환경을 제공합니다.
아래의 유사한 질문과 답변에서 좀 더 많은 정보를 얻으실 수 있습니다:
- 서블릿과 서블릿 컨테이너의 역할에 대한 질문입니다.
- 서블릿 컨테이너, was가 헷갈립니다.
- WAS와 서블릿 컨테이너의 역할
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
0
HTTP 요청 메시지를 개발자가 직접 파싱해서 사용해도 되지만, 매우 불편할 것이다. 서블릿은 개발자가 HTTP 요청 메시지를 편리하게 사용할 수 있도록 개발자 대신에 HTTP 요청 메시지를 파싱한다. 그리고 그 결과를 HttpServletRequest 객체에 담아서 제공한다.
그럼 위의 서블릿이라는 말보다는 서블릿 컨테이너를 넣어주는게 더 정확한 표현이겠네요?
0
안녕하세요. 홍기현님
생각하신 내용이 맞습니다 🙂
참고로 서블릿, 서블릿 컨테이너라를 단어를 엄격하게 구분해서 잘 사용하지는 않기 때문에 문맥에 맞추어 이해하는 것이 필요합니다 🙂
감사합니다.
servlet과 container에 대한 질문입니다
0
25
1
api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?
0
64
1
jsp 의존성 수정 요청
0
79
2
요즘 웹 서버가 주로 사용되는 이유는 SPA 구조 때문일까요 ?
0
143
1
save() 메서드 문의
0
67
1
절대 경로로 templates/basic 하위 파일 열면 css 적용 안되는 현상
0
101
1
request-body-json
0
83
2
MVC 패턴의 적용 단위
0
97
1
RequestMapping을 이용한 핸들러, 어댑터
0
119
2
save 후 결과화면
0
89
2
jsp를 이용한 view
0
97
1
application.properties에 debug 추가해도 결과가 똑같습니다.
0
178
1
수업 코드 제공 관련 문의
0
97
2
RequestMappingHandlerAdapter의 Controller 호출 과정
0
100
3
파일 오픈 시
0
70
1
스프링 배치 관련
0
78
1
@RequestParam의 defaultValue가 blank 값도 처리하는 지 여부
0
112
1
postman으로 /request-body-json-v1 호출시 500 error
0
96
1
프론트엔드와 백엔드의 mvc, rest api에 대한 질문
0
79
1
모델의 역할과 계층 분리에 대한 이해 차이 + 추가질문
0
111
1
console log 출력 관련 질문입니다.
0
75
1
애플리케이션이 실행 되지 않습니다 ㅠㅠㅠ
0
139
1
html 변경하는 부분 적용 문제
0
103
1
한글 깨짐
0
76
2





