본문 바로가기
JS & TS/Frontend

[JSP] JSP시작 개념

by heekng 2021. 2. 26.
반응형

[JSP] JSP시작 개념

JSP를 배우기 전 서버와 통신하는 웹페이지의 기초 지식을 정리한다.


웹 서버(HTTP)

웹 서버는 http문서와 직접적으로 정보를 주고받는다.

톰캣의 경우 아파치가 이 웹 서버를 담당한다.

HTTP문서에서 사용자의 요청이 정적 데이터인지 동적 데이터인지를 판단한다.

정적 데이터인 경우에는 이미 준비된 html문서를 그대로 응답(response)한다.

동적 데이터인 경우 웹 컨테이너에 요청(request)을 보낸다.

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

사용자의 동적 데이터를 JSP, 서블릿으로 연산 및 제어, DB접근 등을 통해 정제된 데이터(정적 데이터)로 가공 후 이를 응답해준다.

Javascript가 비교적 가벼운 연산과 HTML문서에 접근해서 값을 변경하는 역할을 한다면, 웹 컨테이너 안에서 Java를 이용한 비교적 무거운 연산을 한다.

WAS(Web Application Server)

톰캣이 WAS역할을 한다.

동적 데이터를 처리할 서블릿을 메모리에 할당하며, web.xml을 참조하여 해당 서블릿에 대한 Thread를 생성한다.

서블릿 요청과 서블릿 응답 객체 생성 후 서블릿에 전달한다.

WAS는 웹 컨테이너와 웹 서버를 포함한 공간이다.

서블릿(Servlet)

Java코드 안에 HTML코드를 작성할 수 있는 JAVA프로그램이다.

웹 컨테이너의 지시로 Thread를 생성하고 Thread에 의해 서블릿에 있는 service()메소드가 호출된다.

전송 방식 요청(GET방식, POST방식)에 맞게 doGet() 또는 doPost()메소드를 호출한다.

doGet(HttpServletRequest req, HttpServletResponse resp){}

doPost(HttpServletRequest req, HttpServletResponse resp){}

위와 같은 메소드를 이용한다.

 

WAS는 Response객체를 HttpResponse형태(정적 데이터)로 바꾸어서 웹 서버에 전달하고, 생성된 Thread를 종료해준다.

그 후에 HttpServletRequest와 HttpServletResponse를 제거한다.

간단히, 클라이언트와 웹 서버가 데이터를 전달할 때에는 HttpRequest, HttpResponse를 이용하고, 웹 서버와 웹 컨테이너간 데이터 전달 시 HttpServletRequest, HttpServletResponse를 이용한다.

JSP(Java Server Page)

HTML을 중심으로 자바와 같이 연동하여 사용하는 웹 언어이다.

HTML코드 안에 JAVA코드를 작성할 수 있는 언어이다.

 

서블릿에서 HTML을 작성하는 것 보다는 JSP에서 JAVA를 작성하는 것이 이용하기에 편하기 때문에 서블릿을 단독으로 사용하지 않고, JSP를 사용한다.

하지만 JSP내부에서 서블릿을 자동으로 이용하기 때문에 Servlet의 개념 또한 잘 알고 있어야 한다.

반응형