톰캣이 하는일에 대한 고찰(servlet/jsp)

현이·2022년 9월 26일
0

고찰

목록 보기
5/6

Servlet Flow

ide로 build를 하면 war파일이 생겨요.

빌드된 war파일을 톰캣에 올리고, 톰캣을 시작하면 서버가 실행되요.

Servlet 생명주기

클라이언트가 url요청을 보내면 Servlet은 바로 호출이 되지 않아요.

요청이오면 우선 Tomcat이 요청을 받아요.

<처리 순서>

1. tomcat이 메모리를 뒤져서 해당 Servlet이 메모리에 있는지 확인후, 없다면 
Servlet 클래스가 로딩되어 요청에 대한 Servlet 객체가 생성되요
2. init() 메서드를 호출하여, Servlet을 초기화 해줘요. (최초 1회)
3. service() 메서드를 호출해서 Servlet이 브라우저의 요청을 처리할 수 있도록 해요.
4. service() 메서드는 특성 요청을 처리하는 메서드(doGet,doPost)를 호출해요.
5. destroy() 메서드를 호출하여 Servlet 객체를 제거해요.

요청을 받은 톰캣은 최초 한번 서블릿 객체를 만들고, class.forName() 메서드로
받은 주소의 uri 값으로 해당하는 메서드를 찾아서 호출합니다.

JSP FLOW

클라이언트의 요청

클라이언트가 .jsp파일(정적 파일)에 대한 요청을 하면, 이 또한 Tomcat이 요청을 받아요.

그리고 <%%> 안에 있는 코드를 제외한 나머지 모든 html코드를 java 코드로 변환을 시켜요.

그리고, servlet 객체에 service() 메서드에서 파라미터로 받은 response 객체에서

outputStream을 가져온다음, 자꾼 자바코드를 클라이언트로 보내줘요.

JSP의 3가지 꼼수

jsp는 3가지 꼼수를 사용해요.
꼼수1. <% %> -> 안에코드는 그대로 Java코드로 변환
꼼수2. <%= %> -> 익스프레션이라 부르고, 무조건 결과만 나오면 된다.
꼼수3. <%@ %> -> 디렉션이라 부르고, jsp파일에 제일위에 있다.

Servlet 과 JSP의 차이

jsp는 결국 서블릿코드로 바뀐다.

간단하게,

서블릿은, 자바코드를 베이스로해서 out키워드로 html을 집어넣는것이고,

jsp는, html코드안에 java코드를 넣어서 톰캣이 jsp컴파일러를 통해 컴파일한 jsp파일을 서블릿객체에 전달해요.

결국 둘다 클라이언트에게는 outputStream으로 html코드를 전송하는 것이죠.

profile
의미있는 고찰

0개의 댓글