Page tree

이 문서는 Eclipse에서 dynamic web project 를 생성하는 절차를 정리한다.

사전 준비

  • Eclipse 실행에 필요한 JRE (JDK) 설치
  • Eclipse 다운로드 및 설치 (압축 해제)
  • Java 소스코드 컴파일에서 사용할 JDK 설치 (만약 Eclipse 실행에 필요한 Java 버전과 동일한 경우 불필요)

Eclipse 실행

준비한 Eclipse를 실행 합니다.

Step 1) 프로젝트 생성

1. File > New > Dynamic Web Project.

2. 프로젝트 이름 지정

  • 예) dynamic-web-app

3. 프로젝트 저장 위치 지정

  • 예) workspace\

4. Target runtime 지정

  •  희망하는 web runtime 지정
  • 예) Apache Tomcat v10.0

  • JRE 환경 추가: 설치된 Java 환경을 JRE 목록 추가

5. JRE 환경 지정

  • 선택 가능한 JRE 환경에서 사용할 JRE 지정

6. 소스 경로 지정

  • 소스코드의 위치 지정

Step 2) 외부 라이브러리 추가

JDK 이외의  라이브러리를 참조하는 경우 Eclipse 프로젝트에 라이브러리들을 추가한다.

1. Project 탐색 > 프로젝트 > New > Folder

2. 라이브러리 폴더 이름 지정

  • 예) libs

3. 라이브러리 다운로드

지정한 라이브러리 폴더에 참조하는 Java 라이브러리를 다운로드 한다. 

4. 라이브러리 추가

Project 탐색 > 프로젝트 > Build Path > Configure Build Path > Library 탭

  • 라이브러리를 선택하고 Add JARs... 버튼을 눌러 선택한 라이브러리를 프로젝트에 추가

Step 3) 소스 파일 추가

소스코드 폴더 하위에 소스 파일을 추가한다. 

Servlet 코드 추가 예)

1. Project 탐색 > 프로젝트 > New > Servlet

  • Java package 지정: 예) com.curvc.example
  • Class name: HelloServlet

HelloServlet.java
package com.curvc.example;

import com.google.gson.Gson;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * Servlet implementation class HelloServlet
 */
public class HelloServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // Create a simple JSON object using Gson
        Gson gson = new Gson();
        String json = gson.toJson("Hello, World!");

        // Set response content type
        response.setContentType("application/json");
        response.setCharacterEncoding("UTF-8");

        // Write the JSON to response
        response.getWriter().write(json);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

2. web.xml 수정

Servelet 3.0 이하의 경우 web.xml엣 servlet mapping을 추가한다.

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://jakarta.ee/xml/ns/jakartaee" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd" version="5.0">
  <servlet>
    <description></description>
    <display-name>HelloServlet</display-name>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>com.curvc.example.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <url-pattern>/HelloServlet</url-pattern>
  </servlet-mapping>
  <display-name>dynamic-web-app</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

Step 4) 로컬 환경에서 실행

1. Project 탐색 > Run As > Run on Server

2. 서버 환경 선택 (예: Apache)

3. 브라우저 창에서  http://localhost:8080/dynamic-web-example/HelloServlet 접속

4. JSON 회신 확인 

Project 구조

다음은 일반적인 dynamic 프로젝트의 폴더 구조를 나타낸다.

lua

MyWebProject/ ├── .classpath ├── .project ├── .settings/ ├── build/ ├── libs/ <-- External libraries │ └── gson-2.8.6.jar ├── src/ <-- Java source folder │ └── com/ │ └── example/ │ └── HelloServlet.java ├── WebContent/ │ ├── META-INF/ │ ├── WEB-INF/ │ │ ├── lib/ <-- Web app libraries (optional) │ │ ├── web.xml <-- Deployment descriptor (optional) │ └── index.jsp <-- Default JSP page └── build.xml





  • No labels