- [JSP] 14. 서블릿과 서블릿 컨텍스트2024년 07월 03일
- Song hyun
- 작성자
- 2024.07.03.:50
728x90반응형[JSP] 14. 서블릿과 서블릿 컨텍스트
1. 정적 자원이란?
-> 정적 자원은 클라이언트가 요청하면, 요청한 자원 그대로 돌려주면 되기 때문에 웹 서버에서 요청을 처리하게 된다.
package com.tenco.controller; 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; @WebServlet("/todolist") public class TodoListServlet extends HttpServlet { private static final long serialVersionUID = 1L; public TodoListServlet() { super(); } // GET 방식 // http://localhost:8080/class_servlet_01/todolist protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 다시 HTML 형식을 만들어서 클라이언트에게 내려주는 것은 // 서블릿에서 너무 불편하다. // 서블릿 컨텍스트라는 객체를 활용해서 코드를 만들어 보자. response.setContentType("text/html; charset=UTF-8"); // HTML 파일 읽기 String htmlFilePath="/todoListPage.html"; InputStream inputStream=getServletContext().getResourceAsStream(htmlFilePath); if(inputStream==null) { response.getWriter().write("<html><body>해당 파일을 찾을 수 없음 404</body></html>"); } BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream)); StringBuffer htmlContent=new StringBuffer(); String line; while((line=reader.readLine())!=null) { htmlContent.append(line); } reader.close(); response.getWriter().write(htmlContent.toString()); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <style type="text/css"> .main{ box-sizing:border-box; background-color:white; align:center; width:400px; height:500px; padding:10px; margin:5px; } .head { background-color: #dcdcdc; padding:10px; margin:5px; } .container { padding:50px; margin:5px; } .list { background-color: #dcdcdc; display:flex; padding:10px; margin:5px; border-radius: 8px; } </style> </head> <body> <div class="main"> <div class="head"></div> <h1 align=center>할 일 목록</h1> <div class="container"> <div class="list">쇼핑하기</div> <div class="list">책 읽기</div> <div class="list">운동하기</div> <div class="list">코딩 공부하기</div> </div> </div> </body> </html>
2. 서블릿 컨텍스트란?
(1) 서블릿 컨텍스트의 개념
서블릿 컨텍스트란 웹 애플리케이션의 실행 환경을 나타내는 객체로, 애플리케이션 전반에 걸쳐 공유되는 정보를 제공하고, 애플리케이션 자원에 접근할 수 있게 해준다. 서블릿 컨텍스트는 웹 애플리케이션이 초기화될 때 서버에 의해 생성되며, 애플리케이션이 종료될 때까지 유지된다.
(2) 서블릿 컨텍스트의 주요 역할
-초기화 파라미터 읽기
-로그 작성
-자원 접근
-다른 서블릿과의 통신
(3) getResourceAsStream 메서드
getResourceAsStream 메서드는 서블릿 컨텍스트 내에 존재하는 메서드로, 지정된 경로에 있는 자원을 InputStream으로 반환한다. 이를 통해 웹 애플리케이션 내의 파일을 읽을 수 있다.
728x90반응형'JSP > 기본 이론' 카테고리의 다른 글
[JSP] 16.server.xml과 context.xml, web.xml (0) 2024.07.03 [JSP] 15. 서블릿과 DB 연동 (0) 2024.07.03 [JSP] 13. 쿼리 스트링 (0) 2024.07.03 [JSP] 12. URI와 URL (0) 2024.07.03 [JSP] 11. Servlet을 사용하여 JSON 파싱하기 (0) 2024.07.03 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)