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 |