ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바와 웹
    Servlet 2019. 2. 20. 07:51

    서블릿 

    자바언어로 구현되는 서버프로그램

    서블릿은 클라이언트가 웹브라우저를 통해 요청하면 

    서버에서 실행한 후 결괏값만 클라이언트로 전송

    또한 HTTP프로토콜로 통신하는 웹의 특징과 속성을 

    자유자재로 활용할수있는 API를 제공하므로 클라이언트 요청과

    서버의 응답에 관한 처리 작업을 쉽게 할 수 있다. 



    JSP


    JSP은 서블릿과 똑같은 기능을 가지고 있다.


    차이가 있다면 표현하는 방법이 웹애플리케이션에서의 역할이 다름


    첫번째 차이점은

    서블릿은 완벽하게 자바언어로 구현해야하지만

    JSP는 HTML 페이지 안에서 스크립트 형태로 구현된다.

    또 일부 서블릿 객체는 변수 선언과 초기화 작업 없이 바로 사용해서 

    코드가 더 훨씬 간단할 수 있다.

    JSP는 서블릿과 똑같은 기능을 가지고 있지만 간단한 코드로 구현할수 있는 기술이다.


    두번째 차이점은

    웹 애플리케이션에서의 역할이 서블릿과 다름.

    서블릿은 컨트롤러 페이지를 만들때 사용하지만 JSP는 뷰페이지를 만들때 사용됨

    뷰는 클라이언트가 보는 화면으로 클라이언트로 요청받거나 처리된 결과를

    보여주는 페이지 이다.

    뷰에서 들어온 요청을 맏아서 처리하는 페이지가 컨트롤러 페이지이며

    이는 서블릿으로 구현함.



    웹 프로그래밍의 이해


    웹클라이언트로 요청을 받고 -> 웹애플리케이션실행 ->다시 클라이언트에 응답하는

    웹서버와 웹 애플리케이션 서버들에 대하여 알아야한다. 


    웹이란?

    1969년 미국방성 공등연구계획국에서 개발데 컴퓨터 네트워크에서 시작된

    최대 규모의 컴퓨터 통신망.

    군용과 민간용으로 분리되고 그 다음 CERN 학자들이 WWW 서비스를 개발

    하이퍼텍스트기반으로 여러 컴퓨터에 분산된 정보를 쉽게 찾아볼수 있게 지원하는 정보서비스



    1) 웹문서

    웹문서란? 웹에서 클라이언트가 서버에 정보를 요청하면 응답하는 컨텐츠라고 할수있으며

    정적인 웹문서와 동적인 웹문서로 구분된다. 


    웹문서 - 웹에서 클라이언트가 서버에서 정보를 요청하면 응답하는 컨텐츠라고

    1. 정적 웹문서

    2. 동적 웹문서

    로 나뉨-


    정적웹문서의 대표적인 웹문서 기술이 HTML(하이퍼 텍스트 마크업 랭귀지)


    동적 웹문서는 요청시마다 다른 웹문서의 내용을 클라이언트로전달하는것

    1. 클라이언트가 서버에 웹문서를 요청하면 웹문서에 동적인 요소를 넣는 방식(스크립트)

    2. 클라이언트가 서버에 웹문서를 요청하면 서버가 다른 애플리케이션을 통해 웹문서를 재생성하여 재공하는 방식


    JSP가 스크립트 방식이고 서블릿은 두번째 방식을 지원하는 기술



    웹 애플리케이션


    웹에서 수행되는 애플리케이션

    수행되는 위치에 따라서 위치에따라 

    ServerSide와 브라우져에서 수행된는 ClientSide로 나뉜다.

    구현 방식에 따라 컴파일 방식과 비컴파일 방식으로 나뉨-


    컴파일 방식 - 미리 컴파일이됙 실행파일이 만들어진후에 사용

    비컴파일 - 요청이 있을 때 마다 해석되거 컴파일이 필요없을때 비컴파일 방식과


    웹서비스 

    일반적으로 웹서비스란 네트워크상에 분산된 자원들을 이기종간에 서로

    연동하여 자원을 공유하기 위한 추상적인 서비스 형태를 의미

    웹 서비스를 위한 기술로는 SOAP 기반과 RESTful 기반이있다.


    SOAP

    -UDDI라는 전역 서비스 저장소에 등록해서 

    메세지를 주고받는 방식 

    -헤더와 몸체를 인코딩 디코딩하는 작업이 필요없을때


    RESTful

    -인코딩 디코딩의 어려움해결을위해 HTTP 기본기능만으로 접근가능


    웹서버와 웹 애플리케이션 서버


    1)웹서버 

    웹서버란 서버 기능을 수행하는 프로그램으로서 HTTP라는 프로토콜을 기반으로 하여 

    웹 클라이언트(브라우저)로 부터 요청을 서비스하는 기능을 담당한다.

    HTTP 프로토콜기반이므로 웹서버를 HTTP서버라고 한다. 


    웹서버는 요청을 받는일과 

    처리된 결과를 응답하는 일로 나뉜다.


    구체적인 기능 

    1. 클라이언트가 요청한 웹문서를 찾아서 전달하는 기능을 처리한다.

    2. 요청파일이 없거나 문제가 발생하면 정해지 코드값으로 응답한다.

    3. 클라이언트로 부터 요청에 대해 기본 사용자 인증을 처리한다.

    4. 서버 프로그램에 대한 요청을 웹 애플리케이션 서버에 수행시키고 그 결과를 응답한다.



    2)웹 애플리케이션 서버

    웹서버 단독으로는 서버의 처리량이 많아지고 속도및 보안에 문제가 생김

    ->웹서버의 기능을 분리 해서 처리하는 목적으로 웹애플리케이션 서버를사용


    클라이언트로붵 요청받는 일과 화면에 표현하는 로직까지만 웹서버에 담당하고

    다향한 기능을 수행하는 비즈니스 로직은 컨테이너가 담당하도록 WAS에서 일을 나누어 역할을 분담


    WAS는 크게 웹서버 기능과 컨테이너 기능으로 구성됨

    웹서버나 컨테이너 기능 이외에 트랜잭션 보안, 트래픽관리 , 커넥션풀,사용자관리등을 제공


    자바 웹애플리케이션의 종류

    -웹로직

    -웹스피어

    -제우스

    -제이보스

    -톰캣



    컨테이너 


    서블릿 JSP 같은 웹서버 애플리케이션들은 동적 콘텐츠를 생성하는 웹 컴포넌트이다.



    (웹 컴포넌트? = 서블릿이나, JSP)


    웹 컴포넌트를 저장하는 저장소 역할 , 메모리 로딩, 객체생성 및 초기화등 서블릿의 생명주기를 관리하고

    JSP서블릿으로 변환하는 기능을 수행하는 프로그램이 컨테이너


    1) 서블릿 컨테이너

    -서블릿을 수행하려면 다음과 같은 환경을 구성해야한다.


    * 자바 수행 환경

    * 웹 서버

    * 서블릿 컨테이너


    서블릿 컨테이너는 클라이언트의 요청에 따라 서블릿을 수행하는 프로그램이다.




    2) JSP 컨테이너

    - JSP 컨테이너는 JSP 서블릿으로 변환하는 프로그램. 


    JSP컨테이너 역시 서블릿로 구현된 프로그램 JSP 컨테이너가 JSP파일을 서블릿 소스로 변환할때의

    기본 스펙은 컨테이너마다 동일하며, 상속관계나 생성되는 서블릿 클래스명만 다르게 생성된다.

    JSP컨테이너는 JSP소스를 서블릿 소스로 변환 및 컴파일까지만 담당하고


    변환된 서블릿 수행은 서블릿 컨테이너가 담당.








    'Servlet' 카테고리의 다른 글

    서블릿 디렉터리를 WEB-INF/classes 로지정하는 이유  (0) 2019.02.21
    요청정보와 응답정보  (0) 2019.02.20
    서블릿 구현및 실행  (0) 2019.02.20
    개발환경 구축  (0) 2019.02.20
    HTTP 프로토콜의 이해  (0) 2019.02.20
Designed by Tistory.