記錄

servlet LifeCycle 본문

Web/JSP

servlet LifeCycle

surhommejk 2017. 11. 28. 13:39

웹 서버

요약 사용자에게 웹(Web)을제공하기 위한 서버로, 웹에서 사용자가 서비스를 요청하는 경우 네트워크를 통해 HTML로 구성된 웹페이지를제공한다.



웹 애플리케이션 서버

웹 애플리케이션 서버(Web Application Server, 약자 WAS)는 인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어(소프트웨어 엔진)이다. 웹 애플리케이션 서버는 동적 서버 콘텐츠를 수행하는 것으로 일반적인 웹 서버와 구별이 되며, 주로 데이터베이스 서버와 같이 수행이 된다. 한국에서는 일반적으로 "WAS" 또는 "WAS S/W"로 통칭하고 있으며 공공기관에서는 "웹 응용 서버"로 사용되고, 영어권에서는 "Application Server" (약자 AS)로 불린다.









cf) Java는 멀티쓰래드를 통해 request를 처리하기 때문에 서버 부하가 다른 언어에 비해 적게 걸리는 장점이 있다. 위 빨간색 필기 그림은 다수의 request시 다수의 객체가 생성되어 이를 대응하는 것을 설명(왼쪽)하는 것이고 반면 Java는 JVM을 통해 멀티쓰래드로 각 request에 대응하는 모습(오른쪽)을 나타내고 있다






※ service()가 있으면 doGet()과 doPost()가 실행되지 않고 service()만 실행이 된다






※ service()가 있으면 doGet()과 doPost()가 실행되지 않고 service()만 실행이 된다(강조하고자 반복)

참고 - @PostConstruct : 객체가 생성된 뒤 = 생성(Construct) 뒤(Post)

@PreDestroy : 객체가 소멸하기 전 = Pre(전) Destroy 




@WebServlet("/Te")
public class Test extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public Test() {
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println("doGet이 실행");
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    }

    @Override
    public void init() throws ServletException {
        System.out.println("init이 실행");
    }

    @Override
    public void destroy() {
        System.out.println("destroy가 실행");
    }

    @PostConstruct // 어노테이션을 함으로써 PostConstruct로 쓸 메소드를 선언 및 정의가 가능
    public void First() {
        System.out.println("Post Construct가 실행");
    }

    @PreDestroy // 어노테이션을 함으로써 PreDestroy로 쓸 메소드를 선언 및 정의가 가능
    public void Last() {
        System.out.println("Post Construct가 실행");
    }

}


※ init과 destroy는 Override이고 PostConstruct와 PreDestroy는 어노테이션을 통해서 메소드 명을 마음대로 정할 수 있다


Comments