앞 절에서는 서블릿 기능과 각 생명주기 메서드 기능을 알아보았다. 이번에는 사용자 정의 서블릿을 실제로 만들어서 서블릿의 동작 과정을 실습해 보겠다.
다음은 서블릿을 만들고 실행하는 과정이다.

5.4.1 사용자 정의 서블릿 만들기
실제 웹 프로그래밍에서 사용되는 사용자 정의 서블릿은 HttpServlet 클래스를 상속받아서 만든다.
그리고 3개의 생명주기 메서드, 즉 init(), doGet(), destroy() 메서드를 오버라이딩해서 기능을 구현한다.


5.4.3 첫 번째 서블릿 만들기


우리가 만든 서블릿은 HttpServlet을 상속받고 3개의 생명주기 메서드를 차례로 구현한다. 각 메서드는 호출 시 메시지만 출력한다.
소스 코드를 작성했으니 이제 첫 번째 서블릿을 어떻게 실행하여 동작시키는지 알아보자.
5.4.4 서블릿 매핑하기
브라우저에서 서블릿 이름으로 요청하는 방법은 다음과 같다. 프로젝트 이름 뒤에 패키지 이름이 포함된 클래스 이름 전부를 입력한다.

pro05 프로젝트를 톰캣에 추가한 후 패키지 이름까지 포함된 서블릿 클래스 이름인 sec01.ex01.FirstServlet으로 요청해야 한다. 그런데 클래스 이름이 길어지면 입력하기가 불편해짐. 그리고 일반적으로 클래스 이름을 보면 그 클래스가 어떤 기능을 하는지 짐작할 수 있는데, 브라우저에서 버젓이 클래스 이름으로 입력하면 보안에도 좋지 않다. 따라서 지금은 이런식으로 사용하지 않고 서블릿 클래스 이름에 대응되는 서블릿 매핑 이름으로 실제 서블릿을 요청한다.

실제 서블릿 매핑을 보면 <servlet> 태그와 <servlet-mapping> 태그의 하위 태그에 <servlet-name> 태그가 공통으로 있다.
<servlet-name> 태그의 값 aaa가 <servlet>과 <servlet-mapping> 태그를 연결시켜 준다.
그러면 웹 브라우저에서 <url-pattern> 태그의 /first로 요청할 경우 aaa 값을 가지는 <servlet> 태그를 찾아 실제 서블릿인 sec01.ex01.FirstServlet을 실행한다.

그럼 지금부터 서블릿 매핑 형식을 실제 프로젝트에 적용해 보겠다.
1. pro05 프로젝트의 WebContent > WEB-INF 폴더를 클릭한 후 web.xml을 선택하여 연다.

2. web.xml에 <web-app> 태그의 하위 태그를 지우고 다음과 같이 서블릿 매핑을 작성한다.




'스프링 부트 > 자바 웹을 다루는 기술' 카테고리의 다른 글
| 5.6 애너테이션을 이용한 서블릿 매핑 (1) | 2024.01.17 |
|---|---|
| 5.5 서블릿 동작 과정 (1) | 2024.01.17 |
| 5.3 서블릿의 생명주기 메서드 (0) | 2024.01.17 |
| 5.2 서블릿 API 계층 구조와 기능 (0) | 2024.01.17 |
| 5.1 서블릿이란? (0) | 2024.01.17 |