애너테이션을 이용한 서블릿 매핑
애너테이션을 이용해 서블릿을 매핑하려면 @WebServlet을 이용하면 됩니다. 그리고 애너테이션이 적용되는 클래스는 반드시 HttpServlet 클래스를 상속받아야 합니다.
@WebServlet 사용 방법
| (서블릿 클래스 위에 선언) @WebServlet("/서블릿매핑이름"); </> <코드> 애너테이션을 이용한 서블릿 매핑 예 @WebServlet("/third") public class ThirdServlet extends HttpServlet { ... } |
애너테이션을 이용한 서블릿 매핑 실습
1. sec01.ex01 패키지를 선택하고 마우스 오른쪽 버튼을 클릭한 후 New > Servlet을 선택합니다.

2. 클레스 이름으로 ThirdServlet을 입력하고 Next를 클릭합니다.

3. 우선 기본 URL mapping 이름을 검색한 후 매핑 이름을 수정하기 위해 Edit...를 클릭합니다.

4. 서블릿 매핑 이름을 /third로 수정하고 OK를 클릭합니다.

5. 매핑 이름이 수정된 것을 확인한 후 Next를 클릭합니다.

6. Constuctors from superclass 옵션 체크박스의 체크를 해제한 후 오버라이딩할 생명주기 메서드를 추가합니다. 기본값으로 설정된 상태에서 init과 destory, doGetm doPost에 체크하고 Finish를 클릭합니다.

7. 애너테이션에 수정한 매핑 이름이 추가된 것을 확인할 수 있습니다.

8. serialVersionUID는 서블릿 클래스의 직렬화를 위해 이클립스에서 자동으로 생성된 상수인데 삭제해도 됩니다. 그리고 메서드 안에 자동으로 생성된 주석이나 기능은 삭제한 후 메시지 출력 기능을 추가합니다.
package sec01.ex01;
import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* Servlet implementation class ThirdServlet
*/
@WebServlet("/third")
public class ThirdServlet extends HttpServlet {
/**
* @see Servlet#init(ServletConfig)
*/
public void init(ServletConfig config) throws ServletException {
System.out.println("ThirdServlet init 메서드 호출");
}
/**
* @see Servlet#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("ThirdServlet doGet 메서드 호출");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("ThirdServlet destory 메소드 호출");
}
}
9. 이클립스에서 애너테이션을 이용하여 서블릿 매핑을 설정했으니 톰캣을 중지했다가 재실행한 다음 웹 브라우저에서 실행한 다음 웹 브라우저에서 서블릿 매핑 이름으로 요청해 보겠습니다.
- http://localhost:8090/pro05/third

애너테이션을 사용할 때는 매핑 이름이 이미 사용된 다른 매핑 이름과 중복되지 않도록 주의해야 합니다.
다음은 ThirdServlet.java의 /third라는 매핑 이름을 이미 사용 중인 /first로 직접 수정한 후 톰캣을을 재실행했을 때 오류 메시지가 출력되는 경우입니다.


'프로그래밍 언어 > 자바 웹' 카테고리의 다른 글
| 서블릿 응답과 요청 수행 API 기능 (0) | 2025.04.15 |
|---|---|
| 서블릿 기본 기능 수행 과정 (0) | 2025.04.12 |
| 서블릿 동작 과정 (0) | 2025.04.06 |
| FirstServlet을 이용한 실습 (0) | 2025.04.03 |
| 서블릿의 생명조기 메서드 (0) | 2025.04.03 |