Servlet과 JSP

June Lee·2021년 3월 23일
0

Servlet/JSP

목록 보기
2/7

Servlet과 JSP는 모두 동적 웹 브라우저를 구현하기 위해 사용된다. 한편, 이 둘은 모두 자바로 되어있기 때문에, 이를 실행하기 위해 웹 컨테이너가 필요하다.

그렇다면, Servlet과 JSP의 차이점은 무엇일까?

일단 시기상으로 먼저 등장한 것은 Servlet이다. Servlet은 순수 자바로 되어있어서 복잡한 비즈니스 로직을 처리하기에 알맞다. 사용 방법도 일반적인 자바 클래스들과 유사하다. 그런데, 이 서블릿을 사용해서 웹 브라우저에 html 형태로 출력해주기 위해서는 원래 html보다 훨씬 길고 복잡한 코드를 작성해야한다.
그 예시는 아래와 같다.

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		
		out.println("<html><head><title>Hello</title><head>");
		out.println("<body>");
		out.println("<h1>HelloServlet!!</h1>");
		out.println("</body></html>");
		
		out.close();
}

이렇게 태그를 하나하나 일일히 out이라는 내장 객체를 이용해 출력해주어야한다.
이와 같은 번거로움을 해결하기 위해 등장한 것이 JSP이다.
JSP는 서블릿과 달리 비지니스 로직을 짜기에는 약간 불편함이 있지만, html로 출력해줄 때에 훨씬 간결하다는 차이점이 있다.
(JSP가 등장하게 된 것은 ASP를 견제하기 위한 것이었다고 한다.)

따라서 이 둘의 차이는 다음과 같이 정리할 수 있다.

Servlet
java 코드 안에 html이 들어가는 형태

JSP
html 안에 java 코드가 들어가는 형태

JSP를 이용한 예시는 아래와 같다.

<body>
<%
	Calendar data = Calendar.getInstance();
	SimpleDateFormat today = new SimpleDateFormat("yyyy년 MM월 dd일");
%>
	오늘은 <%= today.format(data.getTime()) %>
</body>

그러나 사실 JSP는 현재 거의 사용하지 않는 추세이다. 그 이유는 프론트와 백을 최대한 분리하여 독립적으로 동작하게끔 하려는 웹 트렌드에 맞지 않기 때문이다. Model과 View, Controller를 분리해서 구현하는 MVC 패턴에서 보았을 때도 위와 같은 구현은 좋지 않다.

profile
📝 dev wiki

0개의 댓글

관련 채용 정보