본문 바로가기
JAVA

[JAVA] - JSP란

by nam_ji 2023. 11. 15.

JSP (Java Server Page)란

정의

  • HTML을 중심으로 자바와 같이 연동하여 사용하는 웹 언어입니다.
  • HTML 코드에 Java 코드를 넣어 동적 웹 페이지를 생성하는 웹 어플리케이션 도구입니다.
  • HTML 코드 안에 Java 코드를 작성할 수 있는 언어입니다.
    (HTML은 연산이 안됩니다. 연산을 처리하기 위해서 HTML 안에 자바를 쓰기 위함입니다.
    자바스크립트도 연산이 되지만 간단한 연산만 하고, 복잡한 연산은 Java가 편합니다.)

서버 (Server)

  • 사용자의 요청에 맞는 서비스를 제공해주는 것입니다.
  • 요청(request) 클라이언트 ---------------------> 서버
  • 응답(response) 클라이언트 <------------------- 서버
  • Java -> 결과 -> 응답 -> response

웹 (Web)

  • 페이지 요청과 응답이 일어나는 장소입니다.
  • 인터넷에 연결된 컴퓨터들을 통해 사람들이 정보를 공유할 수 있는 정보 공간입니다.

웹 서버 (http) - 아파치

  • 사용자의 요청이 정적 데이터인지 동적 데이터인지 판단합니다.
  • 정적 데이터일 경우 이미 준비된 HTML 문서를 그대로 응답해주며,
    동적 데이터라면 웹 컨테이너에 요청을 보냅니다.
  • 클라이언트는 사용하는 브라우저에서 Web Server로 HTTP Request(요청)을 전송합니다.
    이 때, Web Server는 해당하는 HTTP Response(응답)을 다시 보내줍니다.
    • HTTP
      HTTP는 인터넷 환경에서 데이터를 주고 받을 수 있는 통신 규약입니다.
      이러한 통신 규약을 바탕으로 요청, 응답을 통일된 형식으로 보냅니다.

웹 컨테이너 (서블릿 컨테이너)

  • 동적 데이터일 경우 JSP, 서블릿으로 연산 및 제어 그리고 DB에 접근해서 정제된 데이터 (정적데이터)가 완성되면 이를 응답해줍니다.

WAS (Web Application Server) - 톰켓

  • 동적 데이터를 처리할 서블릿을 메모리에 할당하며, web.xml을 참조하여 알맞는 서블릿에 대한 Thread를 생성합니다.
    서블릿 요청과 서블릿 응답 객체 생성 후 서블릿에 전달하면, 연산 종료 후 메모리에서 해제시킵니다.

서블릿 (Servlet)

  • Java 코드 안에 HTML 코드를 작성할 수 있는 Java 프로그램입니다.
  • Thread에 의해 서블릿에 있는 service() 메소드가 호출됩니다.
  • 전송 방식 요청에 밎게 doGet() 또는 doPost() 메소드 등을 호출합니다.
  • 자바 언어를 기반으로 만들어지며 웹 어플리케이션 서버 (Web Application Server) 위에서 컴파일 되고 동작합니다.
  • 기본적으로 Servlet은 Java로 만들어진 Class 파일입니다.
    정적인 페이지는 이미 만들어져 있지만, 동적인 페이지는 연산을 통해서 새롭게 만들거나 추가해야 합니다.
    이러한 것들을 Dynamic Content (동적 콘텐츠)라 하고, 이를 만들기 위해 Java, Python 같은 Server Side Scripting 언어를 사용해야 합니다.
  • 수십 개의 Servlet 중에 원하는 Servlet이 어디에 있는지 알려주는 설명서가 web.xml 파일입니다.
    WAS는 xml 파일을 통해 알맞는 Servlet을 사용합니다.

XML (eXtensible Markup Language)

  • XML은 HTML과 매우 비슷한 문자 기반의 마크업 언어 (Text-based Markup Language)입니다.
  • 이 언어는 사람과 기계가 동시에 읽기 편한 구조로 되어 있습니다.
  • 그러나 XML은 HTML처럼 데이터를 보여주는 목적이 아닌, 데이터를 저장하고 전달할 목적으로만 만들어졌습니다.
  • 또한, XML태그는 HTML 태그처럼 미리 정의되어 있지 않고, 사용자가 직접 정의할 수 있습니다.