[java] 서블릿에서 파일 업로드 처리 방법

파일 업로드는 웹 애플리케이션에서 자주 사용되는 기능 중 하나입니다. 서블릿에서 파일을 업로드하고 처리하는 방법에 대해 알아보겠습니다.

1. HTML 폼 생성

먼저 파일을 업로드하기 위한 HTML 폼을 생성해야 합니다. 다음은 파일 업로드를 위한 간단한 HTML 폼의 예입니다.

<form action="/upload" method="post" enctype="multipart/form-data">
  <input type="file" name="file">
  <input type="submit" value="Upload">
</form>

enctype="multipart/form-data"를 사용하여 파일 업로드가 가능하도록 설정합니다. name="file"은 파일을 서버에 전송할 때 사용될 파라미터 이름입니다.

2. 서블릿에서 파일 업로드 처리

서블릿에서 파일을 업로드하고 처리하기 위해서는 HttpServletRequest 객체를 사용해야 합니다.

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Paths;

@WebServlet("/upload")
public class UploadServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 업로드된 파일을 처리하는 로직 작성
        Part filePart = request.getPart("file");
        String fileName = Paths.get(filePart.getSubmittedFileName()).getFileName().toString();
        InputStream fileContent = filePart.getInputStream();
        
        // 파일 처리 로직 실행
        // ...
        
        response.sendRedirect("/success"); // 파일 업로드 성공 후 리다이렉트
    }
}

서블릿에서는 doPost 메서드를 오버라이딩하여 파일 업로드 처리 로직을 작성합니다. request.getPart("file")을 통해 업로드된 파일의 Part 객체를 얻어와서 파일의 이름과 내용을 추출할 수 있습니다.

추가적인 파일 처리 로직이 필요한 경우에는 해당 부분에 로직을 구현하면 됩니다.

3. 실행 및 결과 확인

서버를 실행시킨 후, 브라우저에서 파일을 선택하여 업로드 버튼을 클릭하면 서블릿이 호출되고 파일이 업로드되고 처리됩니다.

업로드된 파일의 처리 결과에 따라 다른 동작을 수행하거나 응답 페이지로 이동할 수 있습니다.

결론

서블릿을 사용하여 파일 업로드를 처리하는 방법에 대해 알아보았습니다. 파일 업로드는 웹 애플리케이션에서 빈번하게 사용되므로, 이를 효율적으로 처리할 수 있는 방법을 숙지하는 것이 중요합니다. 서블릿을 사용하여 파일 업로드 기능을 구현하면 웹 애플리케이션의 다양한 요구사항을 충족시킬 수 있습니다.

이 글이 파일 업로드 처리에 대한 도움이 되었기를 바랍니다.