@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 으로 지정된 경로가 잘 작동하는 것을 확인하였다.
'개발 > 자바 Java' 카테고리의 다른 글
[Java][기타 언어들] Instanceof 에 대해서 (1) | 2019.03.13 |
---|---|
[Java] JAVA - JDK - JRE - Java EE - Java ME - Java SE - Java FX (0) | 2016.06.17 |
[JAVA] Double Float 형의 오차 (0) | 2016.06.11 |
[Java] (error) error : java.lang.UnsupportedClassVersionError (0) | 2016.06.07 |
[자바 Java] XML 값가져오기 (0) | 2016.05.01 |
[Java] String 문제. StringBuffer, StringBuilder 등 (0) | 2016.04.29 |
자바 와 서블릿 (0) | 2011.07.29 |
rs.getDate 와 rs.getTimestamp() 의 차이 (0) | 2011.02.17 |