* 서블릿은 JVM기반에서 웹 개발을 하기위한 API
- 자바를 실행하기 위해 JRE(Java Runtime Environment)가 필요한 것 처럼, 서블릿을 실행하기 위해서는 웹 애플리케이션 컨테이너가 필요하다.
- 서블릿은 HTTP요청과 응답을 처리하기 위한 내용을 담고 있다(JavaEE에 포함되어있음)
1. 서블릿 설정(Gradle이용)
- 그래들은 메이븐, 엔트와 같은 빌드도구로 자바에서 라이브러리를 편리하게 추가할 수 있는 도구라 생각하면 된다.
- JAR파일은 build.gradle 파일에 추가하면 사용할 수 있다.
2. 서블릿 생명주기
- 서블릿은 자신만의 생명주기를 갖고있으며 다음과 같다.
* 초기화단계 : 로드한 서블릿의 인스턴스를 생성하고 리소스를 로드하는 등, 클래스 생성자의 초기화 작업과 동일한 단계.
* 서비스단계 : 클라이언트의 요청에 따라 호출할 메소드를 결정.
* 소멸단계 : 런타임 오류가 발생하거나, 서블릿 컨테이너가 종료되었을 때 발생. 서블릿이 언로드 되어 결과가 정상적으로 표출되지 않음.
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
@WebServlet("/init")
public class InitServlet extends HttpServlet{
@Override
public void init() throws ServletException{
System.out.println("Init Called!");
}
}
이 경우 브라우저에서 localhost:8080/init을 접속하면 Init Called! 가 콘솔창에 출력된다. 초기화 시점에 init메소드가 출력되는 것으로 브라우저에서 F5를 여러번 클릭해도 결과가 반복되지 않는다.
@WebServlet(name="Init",urlPatterns={"/init"})
public class ---중략----
위처럼 name파라미터와 , urlPatterns를 지정해줄 수 있다.
'SpringBoot' 카테고리의 다른 글
IoC, DI, 컨테이너 (0) | 2021.02.17 |
---|---|
스프링 : 객체지향 프로그래밍 설계원칙 [SOLID] (0) | 2021.02.16 |
스프링프레임워크 ] 빈+컨테이너, IoC패턴 (0) | 2021.02.04 |
웹 애플리케이션 컨테이너 (0) | 2021.02.04 |
1] SpringBoot (0) | 2021.02.01 |