반응형
Servlet이란?
동적 웹 프로그램(Dynamic Web page)에 사용되는 자바 기반의 프로그래밍 기술
Servlet의 동작과정
1. 클라이언트의 GET,POST 요청
2. Web.xml에서 어느 서블릿의 요청인지 확인
3. 대상 서블릿의 doGet(), doPost() 등 메서드 호출
4. db 연동이나 데이터가 포함된 데이터를 클라이언트에 전달
Servlet의 LifeCycle
1. 요청이 올 경우 서버는 init() 메소드를 호출하여 서블릿을 초기화 한다.
2. 이때 서블릿 객체의 초기화 비용이 크므로 서블릿 컨테이너 종료시까지 재사용하기 위해 메모리에 올린다.
3. 사용자 요청에 적절한 메서드를 호출하며 응답을 준다.
4. 서블릿 컨테이너 종료시 destroy() 메소드를 호출하여 종료한다.
Jsp란?
Java Server Page의 약자로 실행시에 서블릿으로 변환되어 동작을 수행하는 기술이다.
Servlet과의 차이점
그렇다면 servlet과 jsp는 어떤 차이가 있을까?
아래는 동일한 결과를 하나는 sevlet 하나는 jsp로 구현했을 때의 예시이다.
Servlet
@WebServlet("/hello")
public class HelloWorldServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet - Hello World</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>1 + 1 = " + (1 + 1) + "</h1>");
out.println("</body>");
out.println("</html>");
} finally {
out.close();
}
}
}
jsp
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<title>JSP - Hello World</title>
</head>
<body>
<h1>1 + 1 = <%= 1+1 %></h1>
</body>
</html>
위의 결과를 보면 알 수 있듯이 sevlet은 자바 코드 사용에 유리하고 jsp는 html생성에 특화된 모습을 확인해볼 수 있다.
위의 특성들로 인해 MVC패턴에서 jsp의 경우 view의 역할을 Servlet의 경우 controller의 역할을 주로 수행하게 된다.
반응형
'Back-end > WEB' 카테고리의 다른 글
[WEB] 쿠키(Cookie)란? 자바로 쿠키 생성, 삭제, 읽기 방법은? (2) | 2024.07.05 |
---|---|
[WEB] PRG(Post-Redirect-Get) 패턴이란? (0) | 2024.07.02 |
[Web] forward, redirect 방식의 의미와 차이 (0) | 2024.07.01 |