라이브러리는 도서관 아닌가요

JSP 3 - @WebServlet 어노테이션, 프로젝트 생성 본문

Java/JSP

JSP 3 - @WebServlet 어노테이션, 프로젝트 생성

veryhi 2022. 1. 4. 05:51

 

앞에 살펴본 귀찮고 반복적일 것 같은 내용이 있다.

 

이전 글: https://verycrazy.tistory.com/95?category=1033905

 

JSP 2 - Context, Servlet Class

앞 내용: https://verycrazy.tistory.com/93?category=1033905 JSP 1 - 웹 서버의 동작 (Web, WAS, Servlet) 실행 흐름 사용자 → request → 웹 서버 → WAS → web/server app의 코드 실행 → DB 결과 반환 → W..

verycrazy.tistory.com

 

동작 코드 수정 → 컴파일 → 매핑 따위의 배포 밑작업 → 톰캣 서버 재시작

 

위의 귀찮은 과정을 Eclipse나 intellij와 같은 통합 IDE를 통해 해결할 수 있다.

 

https://verycrazy.tistory.com/54

 

eclipse 설치 및 EE 차이

아래는 설치 링크 https://www.eclipse.org/downloads/ Eclipse Downloads | The Eclipse Foundation The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 415 open sour..

verycrazy.tistory.com

 

 

 

 

 

수정 전

순수 WAS에서는 아래의 코드의 컴파일을 마친 후,

 

public class 머시깽이클래스 extends HttpServlet{

     @Override

     public void service(~파라미터~){~블럭 내용~}

}

 

해당 머시깽이클래스.class 파일을 매핑 경로에 맞게 옮겨주어야 하는데,

 

이 귀찮은 작업을 어노테이션으로 해결할 수 있다.

 

 

 

 

 

수정 후

수정하면 이렇게 된다.

 

@WebServlet("사용자에게_받을_경로")

public class 머시깽이클래스 extends HttpServlet{

     @Override

     public void service(~파라미터~){~블럭 내용~}

}

 

어노테이션의 대상이 컴파일된 이후 해당 파일을 사용자에게_받을_경로와 매핑해준다.

 

경로는 value=""로 받을 수도 있다.

 

이때 서블릿의 이름을 명시적으로 지정하는 name="" 속성을 사용할 수도 있다.

 

 

 

 

 

 

 

 

 

 

* 서블릿 진행을 위한 프로젝트 생성

 

1. Dynamic Web Project로 생성

 

 

 

2. New Runtime... 클릭 ( * 당연히 tomcat 폴더가 어딘가에 다운 받아져 있어야 한다. )

 

 

 

3. 설치한 Tomcat의 버전에 맞춰 선택

 

 

 

4. Browse...를 클릭해 설치된 경로를 지정

 

 

 

5. Next → Next 후 WebContent로 변경

 

 

 

6. 프로젝트 자동 생성 완료

 

 

 

7. 테스트: Servlet으로 생성 - Package 이름, Class 이름 지정 - 필요한 method stubs만 지정

 

 

 

8. 테스트: 내용 추가

 

# src/main/java/add/Add.java

package hi;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/hi")
public class Hi extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.getWriter().println("Hi");
	}

}

 

# WebContent/hi.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<a href="/jspTestProject/hi"><button>say hi</button></a>
</body>
</html>

 

 

 

9. 테스트: localhost:8080/jspTestProject/hi.html로 접근

 

당연히 WebContent 바로 아래에 hi.html이 있어야 한다.

 

실행 결과: [say hi] 버튼을 누르면 hi가 나온다.

 

 

 

 

Comments