본문 바로가기
프로그래밍/2016.09~ 2017.03 수업

[1110] @WebServlet의 역할

by Luhie 2016. 11. 10.


서블릿은 웹서버에서 가장 작은 단위 프로그램으로써 

get, post 등 여러가지 요청을 할 수있고 주로 액션을 처리하며

톰캣이 종료될때까지 실행 된다.

jsp는 서블릿을 편하게 만들 수 있게 해놓은 것이며 jsp내장 객체를 내가 임의로 변경 불가능 하다.


서블릿을 생성하게되면 @WebServlet이 있는데 이것이 하는 역할을 알아보자.


서블릿을 요청하는 방법으로는 톰캣에 있는 web.xml을 통해 요청 할 수 있다.


web.xml을 프로젝트를 만들때 다음을 넘기다 보면 맨 마지막에 

Generate web.xml deployment descriptor를 체크해 만들 수 있고.



이때 만들지 않았더라면 만들려는 

프로젝트 우클릭 ->Java EE tools -> Generate Deployment Descriptor Stub

을 통해 생성 가능하다


3.1 버전을 사용하고 있고. 

<servlet>태그 안에

<servlet-name>서블릿의 객체 명칭을 어떻게 할 것인지 정하고, 

<servlet-class>어떠한 클래스를 등록해서 객체를 만들것인지 정해준다.


<servlet-mapping>안에 

<servlet>위에서 정한 서블릿의 명칭을 

<url-pattern>객체의 주소를 정해준다.


서블릿 자체를 맵핑하지 않고 사용을 하려면 

<servlet>태그안에

<load-on-startup> 숫 자 </load-on-startup>

톰캣이 실행되면서 서블릿의 객체가 자동으로 생성된다.

숫자는 다수의 서블릿을 설정할때 숫자가 큰 순서대로 객체를 생성해 준다.


이러한 일들을 해주는 것이 @WebServlet("/helloServlet") 

helloServlet이란 이름으로 배포를 하고 톰캣이 실행될때 web.xml파일에 방금 위에서 맵핑한 정보가 생성된다.(단점 톰캣 부팅속도가 느리다. 서블릿이 뭐가 있는지 알수가 없다.)


http://localhost/프로젝트 명/맵핑된 주소/

404 서블릿이 없다

405 요청 방식이 잘못되었다.