서블릿(Servlet)
- 서버(Server) + 애플릿(Applet)
- Java 웹 서버로 웹 페이지를 제공할 때
동적 데이터 제공을 도와주는 역할
- 사용자님 반가워요 -> 앤더슨님 반가워요
- 동적 데이터 일을 도와주는 자바 소프트웨어 컴포넌트
(1) 프로세스
웹 브라우저는 request를 보내고 response를 받는다.
웹 브라우저 Request -> Servlet -> Response
(2) 문자열의 해석(parsing)에 들어가는 시간을 줄이고
비즈니스 로직의 개발에 집중 가능
3. 서블릿과 CGI의 차이점
- CGI는 브라우저가 웹 서버로 요청을 하면
각각 프로세스 생성
=> 대량 접속 시에는 부하(load) 발생
- 서블릿은 프로세스를 별도로 만들지 않고
요청 수신 시 내부의 Thread를 생성
Thread의 개수가 일정 개수를 넘어가면 대기
Thread끼리 공유할 수 있는 자원은 공유
☆ Code
import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
private final String RED = "\033[91m";
private final String GREEN = "\033[92m";
private final String END = "\033[0m";
public MyServlet() {
super();
System.out.println("MyServlet Created");
}
// GET 방식으로 호출하면 반드시 doGet이 호출됨
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
System.out.println(RED + "[MyServlet] Get Called" + END);
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h1>This Page was made using Servlet(GET)</h1><hr>");
out.println("</body></html>");
}
// POST 방식으로 호출하면 반드시 doPost가 호출됨
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
System.out.println(GREEN + "[MyServlet] Post Called" + END);
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h1>This Page was made using Servlet(POST)</h1><hr>");
out.println("</body></html>");
}
}
'서버' 카테고리의 다른 글
SERVER servlet2 (0) | 2024.11.21 |
---|