2.1 서블릿 시작하기
- 서블릿은 JVM 기반에서 웹 개발을 하기 위한 명세이자 API다
- 서블릿은 Java EE에 포함된 스펙 중 하나로 자바에서 HTTP 요청과 응답을 처리하기 위한 내용들을 담고있다.
2.1.1 서블릿 설정
- 그래들(Gradle)을 이용해 서블릿을 이용한 개발 환경을 설정할 수 있다.
- 그래들은 메이븐(Maven), 엔트와 같은 빌드 도구다.
- JAR파일은 build.gradle 파일에 추가하면 사용할 수 있다.
2.2 서블릿 내부 동작
2.2.1 서블릿의 생명주기
- 서블릿은 자신만의 생명주기를 가지고 있고, 웹 어플리케이션 컨테이너에서 콘텍스트가 초기화되면 생명주기가 시작된다.
- 서블릿의 생명주기는 초기화, 서비스, 소멸의 3단계로 구성되어 있다.
초기화 : 로드한 서블릿의 인스턴스를 생성하고 리소스를 로드, 클래스 생성자의 초기화 작업과 동일한 역할
서비스 : 클라이언트의 요청에 따라 호출한 메소드를 결정
소멸 : 서블릿 언로드, 언로드는 런타임 오류가 발생하거나 서블릿 컨테이너가 종료되었을 때 발생
2.1.1.1 그래들을 이용한 서블릿 설정
- 필요한 라이브러리를 mvnrepository.com 에서 다운받아 build.gradle 파일에 추가한다.
2.2.1.1 서블릿 초기화와 init 메소드
- init 메소드는 초기화를 담달하는 역할을 수행하는 메소드다.
- HttpServlet은 추상 클래스인데 일반적으로 서블릿을 만들 때는 HttpServlet을 상속받아서 만든다.
- init 메소드는 초기화에 대응되는 메소드이므로 한 번만 호출이 된다.(그 결과 init call이 한 번만 출력된다)
- URL 매핑은 WebServle 어노테이션(annotation)으로 작성한다.
톰캣으로 실행했더니
위와 같은 결과가 출력되었다.
- 초기화 시점에 init 메소드가 호출되므로 브라우저를 새로고침해도 출력결과가 반복되지 않는다.
- 서블릿 3.0 이후 버전부터는 XML 없이 서블릿과 URL을 매핑할 수 있다.
기존 web.xml 파일의 일부분을 URL과 매핑하려면
이와 같은 방식을 사용해야 했다.
XML과 동일한 역할을 하도록 어노테이션의 name속성을 추가해준다.
name과 urlPatterns을 지정해준다. Patterns의 s는 복수형으로 하나의 서블릿을 다수의 URL에 매핑할 수 있다. 여러개를 지정할 때는 콤마를 사용해 구분한다.
init메소드의 한 번만 초기화 되는 성격을 이용해 초기화 시 파라미터를 전달하고 싶은 경우 servletConfig를 사용한다.
위 소스코드처럼 servletConfig.getInitParameter를 이용해 web.xml 또는 WebInitParam 어노테이션의 정보를 서블릿 초기화 시 전달 할 수 있다.
'Spring Boot > 스프링 부트로 배우는 자바 웹 개발' 카테고리의 다른 글
스프링 XML 설정 (0) | 2018.07.25 |
---|---|
세션 (0) | 2018.07.12 |
필터와 쿠키 (0) | 2018.07.12 |
서블릿 활용 (0) | 2018.07.11 |
개발 환경의 변화와 자바 (0) | 2018.07.09 |
댓글