yooniiverse
개발 블로그
yooniiverse
전체 방문자
오늘
어제
  • 분류 전체보기
    • 운영체제
    • 네트워크
    • ~2023.02
      • 외부교육
      • 대외활동
      • 스터디
      • 동아리
      • TIL
      • IT지식
      • 기타
      • 트러블 슈팅
      • 프로그래밍
      • Python
      • Java
      • JS
      • DB(SQL)
      • JSP
      • Spring
      • 기술면접
      • 자바
      • 코딩테스트
      • 자료구조
      • 알고리즘
      • 백준 문제풀이
      • 인공지능
      • 머신러닝
      • 프로젝트
      • 안드로이드 앱개발
      • 웹개발
      • 웹 서비스
      • 웹퍼블리싱
      • Node.js 백엔드 개발
      • CS
      • 1일 1CS지식
      • 운영체제
      • 네트워크
      • 데이터베이스
      • 정보처리기사
      • 도서 리뷰
      • 개발 관련 도서
      • 기타 도서

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
yooniiverse

개발 블로그

~2023.02/JSP

[JSP]JSP&Servlet 이해

2022. 6. 13. 18:03

1-1. JSP(Java Server Pages)의 개념

  • JSP는 Java Server Page의 약자이며, Java 언어를 기반으로 하는 서버 사이드 스크립트 언어(Server Side Script Language)로 HTML 코드에 Java 코드를 넣어 동적인 웹 페이지를 생성하는 웹 어플리케이션 도구이다.
<%@ page language="java" contentType="text/html; charset=EUC-KR"%>
<html>
  <head> <title>JSP 이해하기</title> </head>
  <body>
  <%
  out.print("JSP 페이지의 형태입니다.");
  %>
  </body>
</html>

 

1-2. JSP의 특징

  • JSP는 스크립트 언어이기 때문에 자바 기능을 그대로 사용할 수 있다.
  • Tomcat(WAS)이 이미 만들어 놓은 객체를 사용한다.
    • request : the Http ServletRequest Object
    • response : the HttpServletResponse Object
    • session : the HttpSession Object
    • out : the PrintWriter Objet
    • application : the ServletContext Objet 등...
  • 사용자 정의 태그를 사용하여, 보다 효율적으로 웹 사이트를 구성할 수 있다.
    • JSTL(JSP Standard Tag Library, JSP 표준 태그 라이브러리) 사용
  • HTML 코드 안에 Java 코드가 있기 때무에 HTML 코드를 작성하기 쉽다.
  • JSP는 수정된 경우 재배포할 필요 없이 Tomcat(WAS)이 알아서 처리해준다.

 

1-3. JSP의 내부 동작 과정

  • JSP 페이지는 JSP로 웹 어플리케이션을 구현할 때 작성하는 코드를 의미한다.
  • JSP 페이지는 백그라운드에서 서블릿(Servlet) 클래스의 소스 코드로 자동 변환된다.
  • JSP가 실행되면 WAS(Web Application Server)는 내부적으로 JSP 페이지를 자바 서블릿(.Java) 클래스의 소스 코드로 변환되며,
  • 서블릿 클래스의 클래스 파일이 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행하고 그렇게 생성된 데이터를 웹 페이지와 함께 클라이언트로 응답한다.
  • 자바 서블릿은 자바 언어를 기반으로 만들어지며 웹 어플리케이션 서버 위에서 컴파일 되고 동작한다.
  • 이는 웹 페이지를 동적으로 생성하기 위한 서버 측 프로그램을 말한다.

 


 

2-1. 서블릿(Servlet)의 개념

  • 서블릿은 웹 기반의 요청에 대해 동적인 처리가 가능한 하나의 클래스이다.
  • 다시 말해 서블릿은 웹 프로그래밍에서 클라이언트가 어떤 내용을 요청하면 요청한 내용을 처리하고, 처리한 그 결과를 다시 클라이언트에게 전송하는 Servlet 클래스 자바 웹 프로그래밍 기법이다.

 

2-2. 서블릿의 특징

  • 자바 서블릿은 자바 프로그래밍 언어를 사용해 웹 페이지를 동적으로 생성하는 서버 프로그램을 말하며, 흔히 서블릿이라고 한다.
  • 웹 기반의 클라이언트 요청에 대해 동적으로 작동하는 웹 어플리케이셔의 컴포넌트이다.
  • 자바 코드 내부에 HTML 웹 문서를 삽입하여 사용한다.
  • 서블릿은 자바 코드를 사용해 요청에 응답한다.
  • 자바 코드를 이용해 구현하고 컴파일하여 배포한다.
  • 서블릿 코드가 수정되면 다시 컴파일하여 배포해야 한다.
  • 웹 서버의 성능을 높이기 위해 주로 사용되는 자바 클래스의 일종이다.
  • 서버에서 웹 페이지를 동적으로 생성하거나 데이터를 처리하기 위해 자바로 작성된 프로그램이다.

 

2-3. 서블릿 프로그램의 기본적인 동작과정

  • 서블릿 컨테이너는 웹 서버에서 서블릿을 관리해 주는 역할을 한다.
  • 서블릿은 웹 서버에서 스스로 동작하는 것이 아니기 때문에 서블릿을 관리해주는 컨테이너가 필요하다.
  • 서블릿 컨테이너는 클라이언트의 요청을 받아주고 응답할 수 있게 웹 서버와 소켓을 만들어 통신하며, 대표적인 예로 톰캣이 있다.
  • 톰캣은 실제로 웹 서버와 통신해 JSP와 서블릿이 작동하는 환경을 제공해준다.
  1. 웹 프로그램에서 웹 클라이언트가 인터넷 URL 주소를 통해 어떤 내용을 요청하면, 서블릿 컨테이너로 전송한다.
  2. 서블릿은 웹 프로그래밍에서 클라이언트가 어떤 내용을 요청하면 요청한 내용을 처리하고, 처리한 결과를 다시 클라이언트에게 전송하는 Servlet 클래스의 자바 웹 프로그래밍 기법이다.
  3. 서블릿 컨테이너는 웹 클라이언트에서 요청을 받게 되면 HttpServletRequest 객체와 HttpServletResponse객체를 생성한다.
  4. web.xml은 웹 클라이언트가 요청한 내용을 분석해 어느 서블릿에서 요청을 한 것인지 검색한다.
  5. web.xml이 검색하여 찾은 해당 서블릿에서 service() 메서드를 호출한 후 클라이언트의 POST, GET 여부에 따라 doGet() 또는 doPost()를 호출한다.
  6. deGet() 또는 doPost() 메서드는 동적 페이지를 생성한 후 HttpServletResponse 객체에 응답을 보낸다.
  7. 응답이 끝나면 HttpServletRequest 객체와 HttpServlet 객체를 소멸한다.

 

3. JSP와 서블릿의 차이점

  • JSP와 서블릿은 결과적으로 하는 일을 동일하다.
  • 하지만 서블릿은 웹 서버의 성능을 높이기 위해 주로 사용되는 자바 클래스의 하나로 자바 코드 내부에 HTML 웹 문서를 삽입하여 사용한다.
  • 반면에 JSP는 HTML 웹 문서 내부에 자바 코드를 삽입하여 사용한다는 것이 차이점이다.
JSP 서블릿
HTML 웹 문서 내부에 자바 코드를 삽입하는 형식 자바 코드 내부에 HTML 웹 문서를 삽입하는 형식
HTML 웹 문서의 <% ... %> 태그 내부에 JSP 코드를 구현 자바 코드를 이용해 구현하고 컴파일 하여 배포
HTML 웹 문서 안에 키워드가 태그화되어 있으므로
서블릿에 비해 매우 쉽게 구현할 수 있다.
서블릿 코드가 수정되면 다시 컴파일하여 배포해야 한다.
서블릿의 비효율적인 측면들을 보완하여 만든 서블릿 기반의 서버 스크립트 기술이다. 웹 서버의 성능을 높이기 위해 주로 사용되는 자바 클래스의 일종이다.
자바 소스를 이용해 웹 페이지에 접근하고 웹 페이지 전환을 통해 웹 브라우저에 전달한다. 서버에서 웹 페이지를 동적으로 생성하거나 데이터를 처리하기 위해 자바로 작성된 프로그램이다.
  • 서블릿과 JSP의 역할은 프로그래밍하는 방법에 차이가 있을 뿐 동일하다.
  • JSP는 웹 어플리케이션 구조에서 사용자에게 결과를 보여주는 역할을 하고, 서블릿은 사용자의 요청을 받아 분석하고 처리하여 처리한 결과를 다시 사용자에게 응답하는 역할을 한다.

'~2023.02 > JSP' 카테고리의 다른 글

[JSP]세션과 쿠키  (0) 2022.06.13
[JSP]JSP의 두 가지 문법 형태  (0) 2022.06.13
JSP 처리 과정  (0) 2022.06.04
JSP 페이지의 구성요소  (0) 2022.06.04
    '~2023.02/JSP' 카테고리의 다른 글
    • [JSP]세션과 쿠키
    • [JSP]JSP의 두 가지 문법 형태
    • JSP 처리 과정
    • JSP 페이지의 구성요소
    yooniiverse
    yooniiverse

    티스토리툴바