반응형

▶ 서블릿(Servlet)  

 

˙서버쪽에서 실행되면서 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 클래스

˙자바의 특징을 가지지만 독자적으로 실행되지 못하고 Tomcat과 같은 JSP/Servlet 컨테이너에서 실행

 

˙서블릿의 특징

 

서버 쪽에서 실행되면서 기능 수행

기존의 정적인 웹 프로그램의 문제점을 보완하여 동적인 여러가지 기능 제공

스레드 방식으로 실행

자바로 만들어져 자바의 특징(객체 지향)을 가짐

컨테이너에서 실행

컨테이너 종류에 상관업이 실행(플랫폼에 독립적)

보안기능을 적용하기 쉬움

웹 브라우저에 요청 시 기능 수행

 

 

 

▶ 서블릿(Servlet) API  

서블릿 API Servlet과 ServletConfig 인터페이스를 구현해 제공하며 GenericServlet 추상 클래스가 이 두 인터페이스의 추상 메서드를 구현

그리고 GenericServlet을 다시 HttpServlet이 상속 받음

 

 

˙서블릿(Servlet) API 구성 요소 특징 

 

① Servlet 인터페이스

     - javax.servlet 패키지에 선언되어 있음

     - Servlet 관련 추상 메서드 선언

     - init(), service, destory(), getServletInfo(), getServletConfig()

 

② ServletConfig 인터페이스

     - javax.servlet 패키지에 선언되어 있음

     - Servlet 기능 관련 추상 메서드 선언

     - getInitParameter(), getInitParmaeterNames(), getServletContext(), getServletName()

 

③ GenericServlet 클래스

     - javax.servlet 패키지에 선언되어 있음

     - 상위 두 인터페이스를 구현하여 일반적인 서블릿 기능을 구현한 클래스

     - GenericServlet을 상속받아 구현한 사용자 서블릿은 사용되는 프로토콜에 따라 각각 service()를 오버라이딩 해서 구현

 

④ HttpServlet 클래스

     - javax.servlet.http 패키지에 선언되어 있음

     - GenericServlet 을 상속받아 http 프로토콜을 사용하는 웹 브라우저에서 서블릿 기능을 수행

     - 웹 브라우저 기반 서비스를 제공하는 서블릿을 만들 때 상속받아 사용

     - 요청 시 service()가 호출되면서 요청방식에 따라 doGet()이나 doPost()가 차례대로 호출됨

 

 

˙HttpServlet의 여러 가지 메서드 기능 

 

protected doDelete(HttpServletRequest req, HttpServletResponse resp)

: 서블릿이 request를 수행하기 위해 service()를 통해서 호출됨

 

protected doGet(HttpServletRequest req, HttpServletResponse resp)

: 서블릿이 Get request를 수행하기 위해 service()를 통해서 호출됨

 

protected doHead(HttpServletRequest req, HttpServletResponse resp)

: 서블릿이 HEAD  request를 수행하기 위해 service()를 통해서 호출됨

 

protected doPost(HttpServletRequest req, HttpServletResponse resp)

: 서블릿이 POST request를 수행하기 위해 service()를 통해서 호출됨

 

protected service(ServletRequest req, ServletResponse resp)

: request를 public service()에서 전달받아 doXXX() 메서드를 호출함

 

public service(ServletRequest req, ServletResponse resp)

: 클라이언트의 request를 protected service()에 전달 

 

 

 

▶ 서블릿의 생명주기 메서드

 

초기화 [ init( ) ]

- 서블릿 요청시 맨 처음한번만 호출됨

- 서블릿 생성 시 초기화 작업을 주로 수행함

 

작업수행 [ doGet( ) / doPost( ) ]

-  서블릿 요청 시 매번 호출됨

- 실제로 클라이언트가 요청하는 작업을 수행함

 

종료 [destory( ) ]

- 서블릿이 기능을 수행하고 메모리에서 소멸될 때 호출됨

- 서블릿의 마무리 작업을 주로 수행함

 

반응형
반응형

▶ 웹 애플리케이션  

 

˙웹 컨테이너에서 실행되는 JSP, 서블릿 자바 클래스들을 사용해 정적 웹 프로그래밍 방식의 단점을 보완하여 서비스 제공하는 서버 프로그램

˙HTML, 자바 스크립트, CSS 등 그대로 사용 가능

 

 

 

▶ 웹 애플리케이션의 기본 구조  

① webShop

      - 웹 애플리케이션의 루트 디렉터리

      - 다른 웹 애플리케이션 이름과 중복을 허용하지 않으며, JSP HTML 파일이 저장

 

② WEB-INF

      - 웹 애플리케이션에 관한 정보가 저장

      - 외부에서 접근 불가

 

③ classes

      - 웹 애플리케이션이 수행하는 서블릿과 다른 일반 클래스들이 위치

 

④ lib

      - 웹 애플리케이션에서 사용되는 라이브러리 압축파일(jar 파일) 저장

      - DB 연동 드라이버나 프레임워크 기능 관련 jar 파일이 저장

      - lib 디렉터리의 jar는 클래스패스가 자동으로 설정

 

⑤ web.xml

      - 배치 지시자(deployment descriptor)로서 일종의 환경 설정 파일

      - 웹 애플리케이션에 대한 여러가지 설정을 할 때 사용

 

 

 

반응형
반응형

▶ 웹 프로그래밍의 여러가지 구성 요소 

 

웹 서버 : 각 클라이언트에게 서비스를 제공하는 컴퓨터

클라이언트 : 네트워크로 서버에 접속한 후 서버로부터 서비스를 제공받는 컴퓨터

HTTP 프로토콜 : Hyper Text Transfor Protocol의 약자로, www 서비스를 제공하는 통신규약

HTML : Hyper Text Markup Language의 약자로, www 서비스를 제공하기 위한 표준 언어

자바스크립트 : HTML 웹 페이지의 여러가지 동적인 기능을 제공하는 스크립트 언어

CSS(Style Sheet) : HTML 문서에서 서체나 색상, 정렬 등 세부적인 HTML 페이지의 디자인에 관련된 여러가지 기능 제공

 

 

 

▶ 정적 웹 프로그래밍 

 

˙특징?

  ① 사용자에게 고정된 정보만 제공 

  ② 정보 수정 시 관리자가 직접 HTML 소스를 수정하여 사용자에게 정보 제공

 

 

 

▶ 동적 웹 프로그래밍 

˙특징?

클라이언트의 요청이 있을 때마다 DB에 접근하여 실시간 정보를 클라이언트에게 제공

 

처음으로 동적인 방식으로 프로그램을 제공하는 기능은 CGI(Common Gate Interface, 공용 게이트웨이 인터페이스) 이었다.

˙CGI의 특징?

① 초기 웹 프로그램에서 사용하는 방식

② 프로세스 방식으로 실행

서버의 부하 심함 → 이러한 문제로 나온 것이 JSP, ASP, PHP와 같은 동적 웹 프로그래밍 기술

 

 

 

▶ JSP 

˙JSP의 특징?

프로세스 방식이 아닌 스레드 방식으로 실행

클라이언트의 요구를 처리하는 기능은 최초 한번만 메모리에 로드

클라이언트가 동일한 기능을 요구하면 기존에 사용한 기능을 재사용

 

반응형

+ Recent posts