본문 바로가기
개발/자바 Java

[Java] webservlet annotation

by 언제나초심. 2016. 6. 7.
반응형

@WebServlet({"/CalculatorController",""})

public class CalculatorController extends HttpServlet {

...

}



위와 같은 경우에 @WebServlet 이라는 annotation 이 생겼다. 프레임워크에만 있는 개념이라고 생각했는데, 


그냥 이클립스 최신 버전에서 톰캣도 최신버전으로 깔고, 일반 웹어플리케이션 만드는 과정인데도 annotation 이 생겼다. 


아마도 기본적으로도 사용이 되는 부분인 듯 하다. 




이클립스에서는 [New] - [Servlet] 해서 만들게 되면 자동으로 annotation 이 생겨 있다. 


@WebServlet("/CalculatorController")


이런 형태로 생기게 되는 것인데, 주소를 하나만 사용할 것이 아니라면 


위에서 예를 들었던 것처럼 하면 된다. 

@WebServlet({"/CalculatorController","","/TestCall"})



이것은 또한 

@WebServlet(urlPatterns={"/CalculatorController","","/TestCall"})


이것과 같은 얘기인 것으로 보인다. 마찬가지의 결과가 나타난다. 


자세한 내용은 모르겠고 WebServlet 에서는 다양한 옵션이 있는 것으로 보인다. 


바로 확인 가능한 것만 봐도 




* asyncSupported

* description

* displayName

* initParams

* largeIcon

* loadOnStartup

* name

* smallIcon

* urlPatterns

* value



이렇게 나온다. 


뭐 좀 더 검색을 해보면,



http://docs.oracle.com/javaee/6/api/javax/servlet/annotation/WebServlet.html


이런 설명 페이지가 나온다. oracle.com 의 문서이니까 아마도 맞겠지..


어쨌든, 관심있는건 url매핑 뿐이니까. 나머지는 시간이 되면 천천히 알아봐도 될 듯 하다. 




tomcat 7 버전 이상에서 쓰이는 듯 하다. 


server 에서 


/conf/web.xml 에서 보면



<web-app xmlns="http://java.sun.com/xml/ns/javaee"

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

  version="3.0">


위와 같은 내용을 오다가다 볼 수 있는데. web-app 3.0 이라는 것이 이 부분과 연관되어 있는 듯 싶다. 


일반적으로는 이상이 없다면, tomcat 7 에서는 annotation 으로 지정된 경로가 잘 작동하는 것을 확인하였다. 

반응형