Java 프레임워크 만들기 - JSP

이클립스 다이나믹 웹 모듈 2.5 서블릿 만들기 - Eclipse Dynamic Web Module 2.5 Servlet

carrotweb 2021. 4. 3. 20:53
728x90
반응형

Dynamic Web Module은 동적(다이나믹) 웹 페이지 콘텐츠 생성을 위해 Java Servlet API에 대한 지원 합니다.

Dynamic Web Module 2.5 버전은 Java 1.5 버전 이상과 Servlet API 2.5 버전(servlet-api-2.5.jar) 이상 필요합니다. 그리고 Tomcat 6 버전 이상에서 구동됩니다.

(Dynamic Web Module 버전에 따라 Java 버전과 Servlet API 버전이 변경되어야 합니다.)

"pom.xml"의 "servlet-api"의 버전은 "2.5"이상이어야 합니다.

<dependencies>
	<dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>servlet-api</artifactId>
		<version>2.5</version>
		<scope>provided</scope>
	</dependency>
</dependencies>

 

메이븐 프로젝트(Maven Project)를 생성하면 기본적으로 Dynamic Web Module 버전은 2.5, Java 버전은 1.5로 설정됩니다. Java 버전은 JDK 버전에 맞게 수정하셔야 합니다.

 

1. Project Explorer의 test2 프로젝트에서 오른쪽 버튼을 클릭하여 컨텍스트 메뉴 [Properties]를 클릭합니다.

Properties창에서 Project Facets(프로젝트 패싯)를 선택하면 Dynamic Web Module의 버전이 "2.5"로 되어있습니다.

2. Project Explorer의 test2 프로젝트에서 오른쪽 버튼을 클릭하여 컨텍스트 메뉴 [New > Servlet]를 클릭합니다.

 

3. Create Servlet창이 나타납니다. Servlet를 생성하기 위해 "Java package"와 "Class name"를 입력합니다.

"Java package"에는 test2 프로젝트의 "Group Id"인 "com.home.project"와 프로젝트명을 결합하여 입력합니다. "com.home.project.test2"을 입력합니다.

패키 지명은 클래스 파일들이 저장되는 곳으로 다른 패키지들과 구분되는 고유 값이어야 합니다.

"Class name"은 서블릿명입니다. "TestServlet25"을 입력합니다.

입력하고 "Next >"버튼을 클릭합니다. 또는 "Finish"버튼을 클릭해서 완료할 수 있습니다.

서블릿 설명, 파라미터 설정, 웹 경로를 설정합니다.

"Description"은 서블릿에 대한 설명을 입력합니다.

"URL mappings"의 "/TestServlet25"를 선택하고 "Edit..."버튼을 클릭한 후 "Pattern"를 "/testservlet25"로 입력합니다. 웹 경로를 소문자로 변경하였습니다. 변경하지 않아도 됩니다. "OK"버튼을 클릭합니다.

"Next >"버튼을 클릭합니다. 또는 "Finish"버튼을 클릭해서 완료할 수 있습니다.

서블릿의 인터페이스, 메서드들을 선택하여 클래스를 생성할 수 있습니다. 기본 설정으로 클래스를 생성하였습니다. "Finish"버튼을 클릭합니다.

 

 

4. test2 프로젝트의 "Java Resources"에서 "src/main/java"에 "com.home.project.test2" 패키지가 생성되고 "TestServlet25.java" 파일이 생성됩니다.

 

또한, "src > main > webapp > WEB-INF"의 "web.xml"에서 "<servlet>", "<servlet-mapping>"이 추가된 것을 확인할 수 있습니다.

<servlet>
  <description>Dynamic Web module 2.5 Servlet Test</description> : 서블릿 설명(생략 가능)
  <display-name>TestServlet25</display-name> : 서블릿 명(생략가능)
  <servlet-name>TestServlet25</servlet-name> : 서블릿 클래스명
  <servlet-class>com.home.project.test2.TestServlet25</servlet-class> : 서블릿 클래스의 풀패키지
</servlet>
<servlet-mapping>
  <servlet-name>TestServlet25</servlet-name> : 서블릿 클래스명
  <url-pattern>/testservlet25</url-pattern> : 웹 경로 매핑
</servlet-mapping>

 

5. Servers탭에서 Tomcat8을 선택하고 "start"버튼(start the server)을 클릭합니다.

 

6. 웹 브라우저에서 "http://localhost:8080/testservlet25"입력합니다.

실행은 정상적으로 되었지만 뭔가 출력이 되지 않은 것처럼 보입니다.

그 이유는 서블릿 클래스의 "doGet"메서드에 "ContextPath"를 출력하게 되어 있어서입니다.

현재 "ContextPath"가 "/"으로 되어있어 출력할 내용이 없는 겁니다.

 

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	// TODO Auto-generated method stub
	response.getWriter().append("Served at: ").append(request.getContextPath());
}

샘플 코드는 수정해서 테스트하셔도 됩니다. 여기는 "ContextPath"를 변경하여 처리하겠습니다.

7. Servers탭에서 Tomcat8을 클릭하고 Tomcat서버 설정 화면("Overview"탭)에서 Modules탭을 클릭합니다. 그리고 Web Modules에서 "test2"를 선택하고 "Edit..."버튼을 클릭하여 Edit Web Module창에서 "Path"를 "/"에서 "/test2"로 변경하고 "OK"버튼을 클릭하고 저장합니다.

 

8. Servers탭에서 Tomcat8을 선택하고 "start"버튼(start the server)을 클릭합니다. 웹 브라우저에서 "http://localhost:8080/test2/testservlet25"입력합니다.

728x90
반응형