서버

SERVER servlet1

테라시아 2024. 11. 20. 18:32

서블릿(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