ServletContext의 파일 입출력 기능
1. 프로젝트 pro08의 WebApp/WEB-INF 폴더를 선택하고 마우스 오른쪽 버튼을 클릭한 후 New > Folder를 선택합니다.

2. 폴더 이름으로 bin을 입력하고 Finish를 클릭합니다.

3. bin 폴더가 생성된 것을 확인할 수 있습니다.

4. bin 폴더를 선택하고 마우스 오른쪽 버튼을 클릭한 후 New > File을 선택합니다.

5. 파일 이름으로 init.txt를 입력하고 Finish를 클릭합니다.

6. 생성된 파일에 메뉴 항목을 입력한 후 저장합니다.

7. 이제 init.txt에서 메뉴 데이터를 읽어와 출력하는 기능을 구현해 보겠습니다. 다음과 같이 ContextFileServlet 클래스를 준비합니다.

8. ContextFileServlet 클래스를 다음과 같이 작성합니다. getServletContext() 메서드로 ServletContext에 접근하여 getResourceAsStream() 메서드에서 읽어 들일 파일 위치를 지정한 후 파일에서 입력 받습니다.
package sec05.ex03;
import jakarta.servlet.ServletContext;
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.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringTokenizer;
@WebServlet("/cfile")
public class ContextFileServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;chatset=utf-8");
PrintWriter out = response.getWriter();
ServletContext context = getServletContext();
InputStream is = context.getResourceAsStream("/WEB-INF/bin/init.txt");
BufferedReader buffer = new BufferedReader(new InputStreamReader(is));
String menu = null;
String menu_member = null;
String menu_order = null;
String menu_goods = null;
while ((menu = buffer.readLine()) != null) {
StringTokenizer tokens = new StringTokenizer(menu, ",");
menu_member = tokens.nextToken();;
menu_order = tokens.nextToken();
menu_goods = tokens.nextToken();
}
out.print("<html><body>");
out.print(menu_member + "<br>");
out.print(menu_order + "<br>");
out.print(menu_goods + "<br>");
out.print("</body></html>");
out.close();
}
}
9. http://localhost:8090/pro08/cfile로 요청하면 다음과 같이 파일의 메뉴 항목을 읽어와 브라우저로 출력합니다.

'프로그래밍 언어 > 자바 웹' 카테고리의 다른 글
| @WebServlet 에니테이션을 이용한 서블릿 설정 (1) | 2025.07.02 |
|---|---|
| ServletConfig (0) | 2025.06.29 |
| ServletContext의 매개변수 설정 기능 (1) | 2025.06.21 |
| ServletContext 사용법 (1) | 2025.06.18 |
| 바인딩 (1) | 2025.06.15 |