스프링 MVC 강의를 다시 복습해보며, 정리시작...
서블릿?
- WAS에서 들어오는 요청에 대해 적절한 로직을 실행 후, 응답해주는 작은 프로그램(클래스)
- 서블릿들은 서블릿 컨테이너에서 서블릿의 생성 + 호출 + 생명주기 관리가 된다.
- 서블릿 객체들은 싱글톤으로 관리 (하나의 객체로 계속 재사용)
- 공유 변수 사용 주의! (생성 후, 모든 요청에 대해 계속 재사용하니까...)
- 동시 요청을 위한 멀티 쓰레드 처리를 지원 (서블렛 컨테이너에서 지원)
서블릿 컨테이너?
- 서블릿 컨테이너에서 서블릿의 생성 + 호출 + 생명주기 관리.
- 요청이 오면, 쓰레드가 적합한 서블릿을 연결시켜준다.
WAS의 동작 예시
- 웹 브라우저 ➡️ localhost:8080/req... 로 요청
- 요청에서 온 데이터로 request 객체 생성 후, 서블렛에 request 객체 전달
- 서블렛은 받은 request 객체의 데이터를 가지고, 로직 수행
- 로직 수행 결과로 response 객체 생성 ➡️ 웹 브라우저에 전달
즉, request 와 response 객체는 요청이 올때마다 새로 생성되지만(요청과 함께 오는 데이터들은 계속 바뀌니까), 서블렛은 싱글톤 패턴으로 하나의 객체를 계속 사용함.
서블렛 코드 예시
@WebServlet(name = "testServlet", urlPatterns = "/test")
public class testServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse res) {
//1. req 데이터 꺼냄
//2. 필요한 기능 수행
//3. 필요 시, 결과를 res에 담아 브라우저에 전달
}
}
강의 출처
https://www.inflearn.com/course/lecture?courseSlug=%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1
'스프링' 카테고리의 다른 글
[Query Dsl] 연관관계가 없는 엔티티들 조인하기 (0) | 2024.02.20 |
---|---|
[Query Dsl][JPQL] 서브쿼리 주의사항 (from문에서는 불가능) (0) | 2024.02.20 |
롬복(lombok) 생성자 애너테이션 정리 (0) | 2023.03.20 |
Spring Security - 스프링 시큐리티 정리 (0) | 2023.03.15 |
[SPRING] BindingResult 정리. (0) | 2021.12.27 |