일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- GRANT VIEW
- 한국건설관리시스템
- oracle
- 환경설정
- 추상메서드
- 생성자오버로드
- NestedFor
- 정수형타입
- 대덕인재개발원
- cursor문
- 인터페이스
- exception
- 오라클
- 사용자예외클래스생성
- Java
- abstract
- 집합_SET
- 컬렉션프레임워크
- 컬렉션 타입
- 다형성
- 메소드오버로딩
- 자동차수리시스템
- EnhancedFor
- 예외처리
- 참조형변수
- 어윈 사용법
- 자바
- 객체 비교
- 예외미루기
- 제네릭
- Today
- Total
거니의 velog
(9) 애너테이션을 이용한 서블릿 매핑 본문
* 앞서 살펴보았듯이 여러 서블릿을 web.xml에 설정할 경우 복잡해진다는 단점이 있다. 따라서 각 서블릿 클래스에 기호(@)를 이용해서 서블릿 표시를 해주면 훨씬 가독성이 좋아진다. 이처럼 소스 코드에 직접 기능을 설정하는 방법을 애너테이션(annotation)이라고 한다.
* 톰캣 7 버전부터는 서블릿 매핑을 web.xml 외에 애너테이션을 이용해 서블릿 클래스에 직접 설정할 수 있는 기능이 추가되었다. 두 가지 방법 다 많이 사용되지만 실제로는 애너테이션을 이용하는 방법을 많이 선호한다.
1. 애너테이션을 이용한 서블릿 매핑
* 애너테이션을 이용해 서블릿 매핑을 하려면 @WebServlet을 이용하면 된다. 그리고 애너테이션이 적용되는 클래스는 반드시 HttpServlet 클래스를 상속받아야 한다.
// (서블릿 클래스 위에 선언)
@WebServlet("/서블릿매핑이름");
</>
<코드> 애너테이션을 이용한 서블릿 매핑 예
@WebServlet("/third")
public class ThirdServlet extends HttpServlet {
// 애너테이션을 이용해서 만드는 서블릿 클래스는 반드시 HttpServlet을 상속받아야 한다.
}
2. 애너테이션을 이용한 서블릿 매핑 실습
* 지금부터 이클립스에서 애너테이션을 이용해 직접 서블릿을 생성해보자. 앞에서처럼 프로그래머가 서블릿 클래스를 직접 만든 후 자바 코드에 애너테이션을 붙여서 매핑할 수도 있지만 이클립스에서는 서블릿을 만들면서 애너테이션을 바로 적용할 수 있다.
1. sec01.ex01 패키지를 선택하고 마우스 오른쪽 버튼을 클릭 > New > Servlst을 선택한다.
2. 클래스 이름으로 ThirdServlet을 입력하고 Next를 클릭한다.
3. 우선 기본 URL mapping 이름을 선택한 후 매핑 이름을 수정하기 위해 Edit... 을 클릭한다.
4. 서블릿 매핑 이름을 /third로 수정하고 OK를 클릭한다.
5. 매핑 이름이 수정된 것을 확인한 후 Next를 클릭한다.
6. Constructors from superclass 옵션 체크박스의 체크를 해제한 후 오버라이딩할 생명주기 메서드를 추가한다. 기본값으로 설정된 상태에서 init과 destroy, doGet, doPost에 체크하고 Finish를 클릭한다.
7. 애너테이션에 수정한 매핑 이름이 추가된 것을 확인할 수 있다.
8. 이클립스에서 생성한 ThirdServlet 클래스에서 serialVersionUID는 서블릿 클래스의 직렬화를 위해 이클립스에서 자동으로 생성한 상수인데 삭제해도 된다. 그리고 메서드 안에 자동으로 생성된 주석이나 기능은 삭제한 후 메시지 출력 기능을 추가한다.
package sec01.ex01;
import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/third")
public class ThirdServlet extends HttpServlet {
public void init(ServletConfig config) throws ServletException {
System.out.println("ThirdServlet init 메서드 호출");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("ThirdServlet doGet 메서드 호출");
}
public void destroy() {
System.out.println("ThirdServlet destroy 메서드 호출");
}
}
9. 이클립스에서 애너테이션을 이용하여 서블릿 매핑을 설정했으니 톰캣을 중지했다가 재설정한 다음 웹 브라우저에서 서블릿 매핑 이름으로 요청해 보자.
- http://localhost:8090/pro05/third
* 지금까지 이클립스에서 서블릿을 생성하고 애너테이션을 어떻게 사용하는지 알아보았다. 애너테이션을 사용할 때는 매핑 이름이 이미 사용된 다른 매핑 이름과 중복되지 않도록 주의해야 한다.
'Java > Java_Servlet' 카테고리의 다른 글
(11) <form> 태그 이용해 서블릿에 요청하기 (0) | 2023.08.22 |
---|---|
(10) 서블릿의 세 가지 기본 기능 (0) | 2023.08.22 |
(8) 서블릿 동작 과정 (0) | 2023.08.22 |
(7) 서블릿이란? - 2 (0) | 2023.08.22 |
(6) 서블릿이란? - 1 (0) | 2023.08.21 |