
오리무중 내 인생 ,, 어쩌다보니 내배캠 단기 심화 과정까지 오게되었다 ,,
첫 번째 TIL 화이팅
클라이언트와 서버가 웹에서 데이터를 주고받기 위해 사용하는 프로토콜
Stateless(무상태) 프로토콜자바 진영에서 HTTP 요청을 받아 처리하고 HTTP 응답을 만들어주는 객체
예를 들어 GET 요청은 HttpServlet의 doGet() 메서드가 처리한다.
즉, 요청 처리 담당
💻 예제코드
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(
HttpServletRequest req,
HttpServletResponse resp
) throws IOException {
resp.getWriter().print("Hello");
}
}
@WebServlet : 특정 URL 요청을 어떤 Servlet 클래스가 처리할지 연결해주는 어노테이션HttpServletRequest : 클라이언트가 서버로 보낸 HTTP 요청 정보를 담고 있는 객체HttpServletResponse : 서버가 클라이언트에게 보낼 HTTP 응답을 만들기 위한 객체Servlet을 실행하고 관리해주는 환경으로 대표적으로 Tomcat이 있다.
HttpServletRequest, HttpServletResponse 객체 생성doGet();)클라이언트가 HTTP 요청을 보내면 서블릿 컨테이너가 요청을 받은 뒤,
해당 요청을 처리할 서블릿을 찾아 실행한다.
Client
↓
HTTP Request
↓
Tomcat(Servlet Container)
↓
Servlet 찾기, 실행
↓
HTTP Response
✨ Servlet은 개발자가 아닌 Servelt Container가 Servlet의 실행과 생명주기를 관리한다.
스프링 부트에서 서블릿 관련 어노테이션이 붙은 클래스를 찾아
Tomcat같은 서블릿 컨테이너에 등록해주는 어노테이션
💻 예제코드
@SpringBootApplication
@ServletComponentScan
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
스프링 부트가 해당 패키지와 하위 패키지를 스캔하면서
@WebServlet@WebFilter@WebListener가 붙은 클래스를 찾아 서블릿 컨테이너에 등록한다
브라우저 요청
↓
서버에서 HTML + JavaScript 전달
↓
브라우저에서 JavaScript 실행
↓
API를 통해 필요한 데이터 요청
↓
화면 렌더링
⚙️ 동작 방식
브라우저 요청
↓
서버에서 데이터 조회
↓
서버에서 HTML 생성
↓
완성된 HTML 전달
↓
브라우저에서 화면 표시