개발 무지렁이

[Servlet] 웹브라우저와 서블릿(Servlet) 본문

Backend/Servlet & JSP

[Servlet] 웹브라우저와 서블릿(Servlet)

Gaejirang-e 2023. 4. 23. 13:55

Servlet이란



웹브라우저에서 동작하는 자바 프로그램을 말한다.

       ☕. Java 중심 문법
       java 소스안에 html, css, js를 그대로 사용할 수 있다.
       => 자바로 구현된 CGI

🍔 CGI: 서버서드파티(우리가 짠 로직)간 데이터 전송을 위한 통신규약

       Tistory's Card

HttpServlet 상속과 init, service, destroy


  🎨 Servlet 작성
  1) HttpServlet을 상속받는다.
  2) 반드시 public class로 선언한다.
  3) 브라우저에서 출력될 내용 or 비즈니스로직을 실행 (feat. method 재정의)
      - init(); 
          : 객체가 생성된후 최초 한번 호출, servlet에 관한 환경정보 설정
      - service(request, response);
          : 사용자요청(request)이 들어올때마다 호출
          : get방식이면 doGet 호출, post방식이면 doPost 호출
          : get과 post방식에서의 하는 일이 별차이 없으면 service로 overriding
           (overriding하므로써 더이상 method 호출방식을 분류하지 않는다, default: 요청방식에 따른 분류)
          - doGet(request,response);
          - doPost(request,response);

      - destroy();
          : 서블릿이 종료되어야 할때
📌. servlet은 중간다리 역할만, 마크업jsp에 넘긴다.

작성한 servlet문서브라우저에서 실행되기 위한 xml문서에서의 생성+등록


  1) 'web xml 문서'에 등록하는 방법 ('프로젝트 관련 설정'을 작성, WEB-INF/lib)
  2) '@annotation'방법, '@WebServlet'

멀티쓰레드서블릿 매핑


🌐. 웹은 멀티쓰레드.
: 사용자 한명한명은 쓰레드로 동작한다.
(service는 servlet당, 딱 한개만 만들어지고 공유)

⚠️. servlet은 사용자 요청이 들어올 때마다 생성하는 것보다는 미리 여러개 만들어 놓는다. // 사전초기화
urlPatterns에 따라 기능에 맞는 servlet을 매핑(mapping)시킨다.

@WebServlet(urlPatterns = "/lifeCycle", loadOnStartup=1);
Comments