본문으로 바로가기

JSP와 Servlet 이란?

category Web 2018. 11. 1. 20:26

JSP(Java Server Page)


정의 

HTML 태그 사이 사이에 동적인 컨텐츠 생성을 담당할 Java코드를 작성하는 형태 즉, 스크립트 언어이다. 

=>서버 단(서버 환경)에서 동적인 페이지를 생성하기 위한 서버측 스크립트 언어

*스크립트언어에 대해 잘 모르시는 분들은 블로그 내 스크립트 언어 포스트를 참고해 주세요..




Servlet(Server + Applet


정의

java코드 안에 HTML태그가 섞여있는 형태    ex) out.println(“<HTML><BODY>“);



JSP가 스크립트 언어를 기반으로 서버단에서 동적인 컨텐츠를 생성했다면, Servlet은 Java언어를 기반으로

동적인 컨텐츠를 생성한다.    *동적인 컨텐츠 : 요청한 조건에 맞게 그떄 그떄 새롭게 생성되는 HTML문서,이미지 등


Java언어를 기반으로 하기때문에 당연히 Servlet은 확장자가 .java인 Java 파일이다.

여타 다른 Java 파일과의 차이점은 HttpServlet class를 상속 받음으로써 jsp 페이지와 통신이 가능하게 한점이다.


Servlet은 java언어를 이용하기 때문에 전문적인 자바 코드의 이해가 필요하다.

따라서 디자이너가 java 언어를 알지 못하면 개발자와의 협업이 불가능하다는 단점 때문에 Jsp가 나오게 되었다.



JSP 컨테이너 


정의

실제 동적인 페이지 생성을 맡아서 처리하는 프로그램이다.

JSP페이지에 대한 요청을 처리한다.

JSP는 서버 환경에서 실행되기 때문에 웹 서버가 필요하고, 동적인 페이지 생성을 맡아서 처리할 JSP 컨테이너도 필요하다

   *서버와 JSP 컨테이너 그리고 웹 어플리케이션 서버가 혼란스러우슨 분들은 해당 포스트를 참고해 주세요..



    동작구조


 1) URL 입력창(브라우저의 주소창)에서 ***.jsp로 웹 서버로 요청을  하면 웹 서버는 JSP에 대한 요청을 다시 JSP 컨테이너로 넘긴다.


 2) 요청을 받은 JSP 컨테이너는 해당 JSP 페이지를 찾아서 Servlet이라는 Java파일로 변환 시킨다.


 3) 변환된 Java파일(Servlet)class파일로 컴파일한다.


 4) class파일(프로그램)의 실행결과가 응답으로 client에게로 전송.



      

  

상세한 동작 구조


        1) client가 자신의 browser에서 http://servername..../***.jsp 형태로 요청을 한다.


        2) 웹 서버는 ***.jsp의 형태로 온 요청에 대해 JSP 컨테이너에서 처리하도록 요청 정보를 넘긴다.


        3) JSP 컨테이너는 넘어온 JSP 파일이 처음 요청된 것이면 JSP파일을 파싱한다이전에 요청된 것이면 6단계로 바로 넘어간다.

   JSP 파일은 실행을 위해서 결국엔 class파일로 변환이 되는데 이러헌 일련의 과정은

   해당 JSP 파일이 처음으로 호출되었을 때만 거치게 된다.

   만일 이전에 어떤 JSP파일이 호출 되었다면 두 번째 이후로 들어온 해당 JSP파일의 요청에 대해서는

   4,5의 생성 및 변환 과정은 거치지 않게된다.


        4) JSP 파일로부터 Servlet이라는 새로운 Java파일이 생성된다.


        5) Servlet파일은 실행 가능한 상태인 class파일로 컴파일 된다.


        6) class파일이 메모리에 적재되어 실행된다.(객체 생성) 요청때마다 메모리 적재x 스레드 생성


        7) class파일의 실행결과는 다시 웹 서버에게 넘겨져 웹 서버는 HTML 형태로 사용자에게 응답으로 전송한다.

           이는 처음에 사용자가 JSP 파일을 요청한 것에 대한 응답으로 HTML 형태의 내용을 전송하게 되는 것이다.


        8) 웹 서버로부터 받은 응답인 HTML로 구성된 페이지를 브라우저에서 실행시켜서 웹페이지가 보이게 된다. 

BrowserHTML 태그로 구성된 페이지를 실행시켜주는 프로그램이다.









'Web' 카테고리의 다른 글

자바빈과 회원가입 폼 연동하기  (0) 2018.11.01