본문 바로가기

JSP

JSP(08.05) - Servlet, Tomcat

 

JSP

JSP(Java Server Pages)는 HTML 코드 안에 Java 코드를 삽입하여 웹페이지를 동적으로 구성할 수 있게 한다.
HTML 태그 내에서 <% 자바영역 %> 로 둘러싸인 스크립트 영역에 Java 문법을 적용하는 방식으로 작동한다.

  • 이 JSP 파일을 서블릿 클래스로 변환하고 실행시켜주는 역할을 하는 프로그램이 Tomcat과 같은 서블릿 컨테이너이다.
  • Servlet을 사용해 웹을 만들 경우 화면 인터페이스 구현이 어렵다는 단점을 보완하기 위해 만든 스크립트 언어이다.

 

Servlet

  • servlet이란 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램을 말한다. 자바 서블릿은 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종이다.
  • 서블릿은 자바 웹 애플리케이션을 개발하기 위해 필요한 server-side 프로그램이고, 클라이언트에게 요청을 받아 비즈니스 로직을 수행한 뒤 동적 웹 페이지를 응답해주는 역할을 한다.

JSP는 HTML 문서 안에 Java코드를 포함하는 반면, servlet은 자바코드안에 HTML을 포함하고 있다는 점에서 차이가 있다.

 

Servlet Container

  • 서블릿을 관리하고 실행시키는 또 다른 프로그램으로 Servlet Engine, Web Container이라고 불린다.
  • 서블릿 컨테이너는 개발자가 자바 웹 애플리케이션을 개발할 때 비즈니스 로직 작성에만 전념할 수 있도록, 요청이 올 때마다 웹 서버에서 반복적으로 처리해야하는 작업을 대신 수행한다. => 톰캣

 

Servlet 생명주기

  • servlet에 여러가지 메서드가 있지만, servlet의 시작과 끝 등을 다루는 주요 메서드
  1. .init() - 서블릿 객체를 사용하기 위해 선행되어야 하는 초기화 작업을 수행
  2. .service(request, response) - 호출된 서블릿 객체의 비즈니스 로직을 수행

   3. .destroy() - 서블릿 컨테이너가 서블릿 객체를 종료

 

 

생성자는 서블릿이 생성될 때 호출, init은 서블릿이 초기화될 때 호출, service는 서블릿이 호출될 때 호출

서버를 실행하고, 브라우저에서 url을 호출하면, WAS는 서블릿 요청을 받아서 해당 서블릿이 메모리에 있는지 여부를 확인, 있으면 바로 service()를 호출하고, 없으면 생성자부터 init()을 호출하게 된다.

 

Servlet 동작 과정

개발자가 서블릿 소스 코드 작성 -> 컴파일러가 소스 코드를 컴파일 -> 서블릿 컨테이너에 서블릿 클래스를 등록하고 url을 매핑

Tomcat

  • tomcat은 WEB/WAS의 기능을 가진 java application
  • tomcat은 Java EE 기반으로 생성
  • tomcat(WAS)는 자바로 만들어진 JSP와 Servlet을 구동하기 위한 서블릿 컨테이너 역할을 수행