자바에서 웹 개발을 하다보면 필수 지식인 서블릿에 대해서 이야기 해보자
Servlet = Server + Applet
- 서블릿은 자바의 서버기반에서 돌아가는 일종의 프로그램이다.
- 개발자가 순수 자바로 서버를 개발한다고 하면, 보통 서블릿 코드를 작성한다.
Servlet 코드랑 자바 코드랑 무슨 차이인데?
- 일반적인 자바코드는 JVM 위에서 작동
- 하지만, Servlet 코드는 JVM위에 Servlet Container라는 것을 두고 그 Container 안에서 실행된다.
- 컨테이너(Container)라 하면 보통, WAS 내에서 돌아간다.
- 보통 많이 쓰는 WAS는 Apache사에서 제작한 Tomcat이며, 이 안에는 서블릿 컨테이너가 내장되어 있다.
Servlet Class Hierarchy
구글에 정말 잘 나온 그림이 있어 가져와봤다.
가장 상위부터 살펴보자면
ServletConfig & Servlet : Interface
- 모든 서블릿의 근간이 되는 인터페이스
- Servlet 인터페이스에는 init(), service(), destory()등과 같은 라이프 사이클 메소드가 선언되어 있음.
- ServletConfig에는 getInitParamter(), getInitParamterNames()등이 있다.
GenericServlet & HttpServlet : Abstract Class
- 서블릿을 사용하기 위해 틀이 갖춰진 추상 클래스
- 이 추상 클래스를 상속받아 사용한다.
- GenericServlet과 HttpServlet의 차이는 프로토콜 제약 유무이다.
- GenerServlet은 프로토콜에 독립적으로 사용 가능(javax.servlet 패키지)
- HttpServlet은 HTTP 프로토콜에 특화되어 있음.(javax.servlet.http 패키지)
- 추상 메소드인 service()를 직접적으로 구현하는 단계에 있는 클래스
+) HttpServlet은 doGet, doPost, doPut 등 HTTP Method와 연관된 서비스를 만들 수 있다.
'Backend > JAVA' 카테고리의 다른 글
[JAVA] default 메소드에 대하여(모던 자바 인 액션) (0) | 2024.04.10 |
---|---|
[JAVA] 동작 파라미터화에 대하여(모던 자바 인 액션) (1) | 2024.03.13 |
[JAVA] Object 클래스와 Object 메소드(equals, hashCode, toString) (4) | 2023.11.06 |
[JAVA] JAVA 기본 용어 정리 (0) | 2023.07.31 |