웹 개발 기초 109

FirstServlet을 이용한 실습

사용자 정의 서블릿을 실제로 만들고 서블릿의 동작 과정을 실습해보자. 이클립스에서 서블릿을 만들고 실행하는 과정은 다음과 같다. 먼저 사용자 서블릿을 만들기 위해서는 아래 예시 코드와 같이 HttpServlet 클래스를 상속받아야 하고 3개의 생명주기 메서드, 즉 init(), doGet, destroy() 메서드를 오버라이딩하여 기능을 구현한다. // 사용자 정의 서블릿 작성 예시 코드 public class FirstServlet extends HttpServlet { @Override public void init() { ... } @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) { ... } @Overrid..

서블릿의 생명주기 메서드

서블릿도 자바 클래스이기 때문에 실행하게 되면 당연히 초기화 과정, 메모리에 인스턴스를 생성하여 서비스를 수행한 후 다시 소멸하는 과정을 거친다. 이런 단계를 거칠 때마다 서블릿 클래스의 메서드가 호출되어 초기화, 데이터베이스 연동, 마무리 작업을 수행한다. 이러한 각 과정에서 호출되어 기능을 수행하는 메서드들이 서블릿의 생명주기 메서드이다. 따라서 서블릿 생명주기 메서드란 서블릿 실행 단계마다 호출되어 기능을 수행하는 콜백 메서드를 말한다. 생명주기 단계 호출 메서드 특징 초기화 init() - 서블릿 요청 시 맨 처음 한 번만 호출됨 - 서블릿 생성 시 초기화 작업을 주로 수행함 작업 수행 doGet() doPost() - 서블릿 요청 시 매번 호출됨 - 실제로 클라이언트가 요청하는 작업을 수행함 종..

HttpServlet의 메서드와 기능

HttpServlet GenericServlet은 일반적인 여러 통신 프로토콜에 대한 클라이언트/서버 프로그램에서 서블릿 기능을 구현하는 클래스이다. HttpServlet은 이 GenericServlet을 상속받는다. HttpServlet은 이름에서 알 수 있듯 HTTP 프로토콜을 사용하는 서블릿 기능을 구현하는 클래스이고, 이 HttpServlet을 상속받게 되면 HTTP 프로토콜로 동작하는 웹 브라우저의 요청을 처리하는 서블릿을 만들 수 있다. HttpServlet 메서드의 기능들 메서드 기능 protected doDelete(HttpServletRequest req, HttpServletResponse resp) 서블릿이 DELETE request를 수행하기 위해 service()를 통해 호출됨 p..

서블릿 API 계층 구조와 기능

서블릿은 자바로 만들어졌기 때문에 클래스들 간의 계층 구조를 가짐. 서블릿 API는 Servlet과 ServletConfig 인터페이스를 구현해서 제공, GenericServlet이 Servlet, ServletConfig 인터페이스의 추상 메서드를 구현. 그리고 HttpServlet이 GenericServlet을 다시 상속받음. 서블릿 API 기능 서블릿 API 구성 요소 특징 서블릿 구성 요소 기능 Servlet 인터페이스 - javax.servlet 패키지에 선언되어 있음 - Servlet 관련 추상 메서드를 선언함 - init(), service(), destroy(), getServletInfo(), getServletConfig() 를 선언함 ServletConfig 인터페이스 - javax...

서블릿과 서블릿 컨테이너 이해하기

1. 서블릿 서버쪽에서 실행되면서 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 클래스이다. 서블릿은 자바로 작성되어 있으므로 자바의 일반적인 특징을 모두 가진다. 하지만 일반 자바 프로그램과는 다르게 독자적으로 실행되지는 못하고 톰캣과 같은 JSP/Servlet 컨테이너에서 실행된다는 점에서 차이가 있다. 2. 서블릿의 동작 과정 서블릿은 서버에서 실행되다가 웹 브라우저에서 요청을 하면 해당 기능을 수행한 후 웹 브라우저에 결과를 전송한다. 서버에서 실행되므로 보안과 관련된 기능도 훨씬 안정적으로 수행할 수 있다. 서블릿의 동작 과정을 순서대로 나타내면 다음과 같다. 클라이언트가 웹 서버에 요청하면 웹 서버는 그 요청을 톰캣과 같은 웹 애플리케이션 서버(WAS)에 위임한다. 그러면 WAS는 ..