웹 프로그래밍/Servlet & JSP

JSP와 Servlet의 개요

kgvovc 2021. 1. 23. 17:29
반응형

정적 컨텐츠 vs 동적 컨텐츠

정적 콘텐츠(static)는 변화가 없는 콘텐츠를 말합니다. 보통 HTML, CSS, JS와 같이 미리 서버에 저장해두고 서버가 요청을 받으면 그저 응답만 해주면 되는 것들로 구성되어 있습니다. 이것은 곧 어느 사용자에게든지 동일하게 결과값을 보여주게 됩니다.

동적 콘텐츠(dynamic)는 누가, 언제, 어떻게 서버에 요청했는지에 따라 결과값을 다르게 보여주는 형식입니다. 즉, 사용자가 맞춤형 콘텐츠를 제공할 수 있게 되는 것이죠. 예를 들면 유투브의 추천 영상이라던지, 이 콘텐츠를 제일 잘 활용하는 웹 서비스는 넷플릭스입니다.

왜 JSP가 필요할까?

웹 기반의 언어로 가장 먼저 개발된 HTML(HyperText Markup Language)는 텍스트 기반의 웹 문서 작성이나 정적인 데이터들을 처리하는 데에는 편하지만 동적인 데이터를 처리할 수는 없습니다. 따라서 이러한 한계점을 극복하기 위해 개발된 기술들이 CGI, ASP, PHP, JSP 등의 기술입니다.

JSP의 특징

  • 강력한 이식성: "Write once, Run Anywhere"
  • 서버 자원의 효율적인 사용: 프로세스 기반 X 스레드 기반 O
  • 간편한 MVC 패턴 적용
  • JSTL, 커스텀 태그 등을 이용한 개발 용이성

Servlet의 개요

  • 서블릿 등장 배경:

    • 1. 브라우저는 HTML 형식의 문서만을 표시가능

    • 2. 동적인 웹 페이지의 표시의 한계

    • 3. 웹 서버측에서 사용자의 요구에 따라 자동으로 생성된 HTML 형식의 페이지를 생산하는 기술이 개발됨. 그 중 자바 진영의 기술이 "Servlet"

  • 서블릿이란?

    서블릿은 단적으로 말하자면 웹 서버상에서 실행되는 자바의 클래스 파일 -> 자바의 모든 API 사용가능, 강력한 객체 지향성

  • 서블릿 작동 방식

    1. 클라이언트가 요청(request) 보냄
    2. 웹 서버가 요청에 해당하는 서블릿 클래스 파일 실행
    3. 서블릿 클래스에서 요청을 처리해 결과물(HTML 형식의 페이지)을 생성
    4. 웹 서버가 그 페이지를 클라이언트에 전송
  • JSP와 Servlet

    그렇다면 JSP를 사용하는데 서블릿이 필요한가? 라는 의문이 들 수도 있다. 사실 JSP로 요청이 전송되어 오면 컨테이너는 JSP 파일을 서블릿 형태의 자바 코드로 자동 변환한 후 서블릿의 라이프사이클을 거치면서 클라이언트의 요청을 처리해 준다. 결국 JSP에 대한 요청도 서블릿의 요청 처리 방식으로 처리해 주는 것이다.


참고:

armontad-1202.tistory.com/entry/%EC%9B%B9%EC%9D%98-%EC%A0%95%EC%A0%81-%EB%8F%99%EC%A0%81-%EC%BD%98%ED%85%90%EC%B8%A0-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EC%A0%95%EC%A0%81-%EB%8F%99%EC%A0%81-%EC%BD%98%ED%85%90%EC%B8%A0

 

웹의 정적 & 동적 콘텐츠 그리고 정적 + 동적 콘텐츠

웹 서버 동작 원리는 다음 게시물을 참조해주시기 바랍니다. https://armontad-1202.tistory.com/entry/웹-서버의-동작-원리-HTML의-역할 웹 서버의 동작 원리 & HTML의 역할 하나의 어플리케이션이 동작하려면

armontad-1202.tistory.com

JSP 2.3 & Servlet 3.1 교재

반응형