web.xml파일에 선언한 <servlet>태그는 HttpServlet을 상속받고 있는 클래스를 web.xml에 등록할 때 사용한다.
그리고 web.xml파일에 <servlet>태그를 사용할려면 반드시 하위에 <servlet-name>과 <servlet-class>태그를 선언해야 한다.
<servlet-name>태그는 등록할려고 하는 서블릿에 이름을 부여하는 것이고
서블릿의 이름은 개발자가 지정해주는 것이다.
서블릿의 이름을 지정해주고 나면 이후에는 클래스 이름을 사용하면 안돼고 지정해준 이름을 사용해야 한다.
<servlet-class>태그는 등록하는 서블릿의 실제 클래스 이름을 지정한다.
![]() |
등록하는 서블릿의 위치.서블릿 이름 을 선언하면 된다. |
<servlet-class>에 작성한 주소로 웹서버가 서블릿 객체를 찾아 올바르게 서블릿에 관한 설정을 할 수 있다.
웹서버가 서블릿을 찾아갈 때 사용하는 정보이기 때문에 정확하게 작성해야 한다.
<servlet-mapping>태그는 web.xml에서 <servlet>태그로 등록한 서블릿을 실행 요청할때 사용할 URL을 지정하기 위해 사용한다.
이 태그는 <servlet>태그를 사용했을 때만 사용할 수 있고 <servlet>로 등록된 서블릿이 아니면 사용할 수없다.
<servlet-name>태그는 실행할 서블릿 이름을 지정한다.
이때 지정하는 이름은 반드시 <servlet>태그에서 등록한 서블릿 이름으로 지정해야 한다.
위의 사진으로 보면 web.xml파일의 6번줄에 선언한 이름을 16번에 사용해야한다.
만약 6번줄 처럼 <servlet>태그에서 등록하지 않은 이름으로 <servlet-name>을 설정하면 web.xml는 오류가 난다.
web.xml은 이정보를 가지고 <servlet>태그를 찾아 매핑한 다음 실제 서블릿 클래스와 연결된다.
<url-pattern>태그는 서블릿을 실행할 때 사용할 URL을 지정한다.
URL을 지정할 때 전체 URL정보를 모두 지정하는게 아니라 'http://서버주고:포트번호/웹 애플리케이션이름' 은 생략하고 그 다음인.~만 입력하면된다. 앞부분은 *로 작성하면 된다.
위사진의 web.xml파일을 보면 'http://서버주고:포트번호/웹 애플리케이션이름' 은 *로 대체하고 .do로 패턴을 선언했다.
위의 사진에선 7번줄에 작성한 경로에 위치한 서블릿의 이름을 6번줄에 ControlServlet로 선언했고
15번줄에 mapping태그에서 name을 통해 연결?하고 url패턴을 *.do로 선언해서
주소의 끝에 do를 쓰면 서블릿을 사용할 수 있도록 만들었다.
@WebServlet
@어노테이션은 자바에서 주석처럼 소스안에 @기호와 함께 사용된다.
컴파일러에게 정보를 알려주거나 자바 프로그램 실행에 관한 내용을 설정하는 용도로 사용된다.
어노테이션을 통해 접근하려면 서블릿의 클래스 선언부 앞에 @WebServlet(접근시 사용할 url)를 지정하면 된다.
사용하게 되면 javax.servlet.annotation.WebServlet; 클래스를 임포트해줘야 한다.