Annotation을 이용한 매핑

MIN·2023년 9월 17일
0

Servlet/JSP

목록 보기
4/21
post-thumbnail
이 글은 유튜버 뉴렉처님의 강의를 공부한 내용을 토대로 작성한 글입니다.
혹시 잘못된 내용이 있을 시 댓글로 알려주시면 감사하겠습니다 ^U^

🍭 Annotation이란?

Annotion @는 의미있는 주석이다.
원래 주석은 실행시 번역되지 않고 사라지는데 이 Annotation은 번역과정에서 사라지지 않는 metadata라고 할 수 있다.

🍭 web.xml로 매핑

지난번에 메모장을 직접 켜서 매핑을 했었는데 이번에는 이클립스를 통해 매핑을 해보겠다.
Java Resourtces 부분에 클래스 파일을 생성하여 코드를 작성한다.


public class MinJ2 extends HttpServlet{
	
	protected void service(HttpServletRequest requst, HttpServletResponse response) 
			throws ServletException, IOException {
	
		PrintWriter out = response.getWriter();
		
		out.println("Hi~ Servlet!");
	}

}

이제 이 클래스를 매핑해야 한다.
WEB-INF에서 web.xml을 수정해야 하는데 없다면 직접 폴더에서 복사하여 이클립스에 붙여넣으면 된다. (꼭 이클립스 내에서도 WEB-INF폴더 안에 넣어줘야함)

<servlet>
    <servlet-name>good</servlet-name>
    <servlet-class>com.newlecture.web.MinJ2</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>good</servlet-name>
    <url-pattern>/hello</url-pattern>
</servlet-mapping>

참고로 class부분에 패키지까지 모두 써줘야 한다.
이후에 실행하면 잘 된다^^


🍭 Annotation을 이용한 매핑

하지만 매번 이렇게 메모장에서 직접 타이핑할 수는 없는 노릇이다.
이때 편하게 매핑할 수 있는 방법이 바로 Annotation이다.

코드 윗줄에 @WebServlet 을 추가해준다.
위 Annotation의 의미는 접근시 사용할 URL이라는 뜻이다.
사용할 URL로 hello를 쳐보겠다.

@WebServlet("/hello")

@WebServlet("/hello")
public class MinJ2 extends HttpServlet{
	
	protected void service(HttpServletRequest requst, HttpServletResponse response) 
			throws ServletException, IOException {
	
		PrintWriter out = response.getWriter();
		
		out.println("Hi~ Servlet!");
	}

}

사용하려면 기존에 web.xml에 매핑해두었던 부분을 주석처리해주고
중요한 것은 metadata-complete="ture"를 "false"로 바꾸어야 한다.

저렇게 수정만 해주면 Annotation을 이용해 매핑을 할 수 있다.
기존 web.xml에 직접 타이핑을 쳐서 매핑하는 것보다 훨씬 수월하게 매핑이 가능하다.

profile
기초부터 시작하는 감쟈 ※ 소개글 확인해주세요!! ※

0개의 댓글