본문 바로가기
Web/JSP

JSP(2) - 웹 어플리케이션과 서블릿 이해

by SeleniumBindingProtein 2022. 1. 28.
728x90
반응형

1. 서블릿이란?
    1) 서버 쪽에서 실행되면서 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 클래스

2. 서블릿 특징
    1) 서버 쪽에서 실행되면서 기능을 수행함.
    2) 기존의 정적인 웹 프로그램의 문제점을 보완하여 동적인 여러 기능 제공함.
    3) 스레드 방식으로 실행됨.
    4) 자바로 만들어져 객체 지향 특성 가짐.
    5) 켄테이너에서 실행 
    6) 웹 브라우저에서 요청 시 기능을 수행.

3. 서블릿 API 기능
    1) GenericServlet 추상클래스 : Servlet, ServletConfig 인터페이스를 구현함.
    2) GenericServlet : 여러 통신 프로토콜에 대한 서블릿 기능을 구현함.
    3) HttpServlet :  GenericServlet 추상클래스를 상속 받음.   
                      HTTP 프로토콜을 사용하는 서블릿 기능을 수행함.
        - protected void doGet(HttpServletRequest req, HttpServletResponse resp)                    
            - 서블릿이 GET request를 수행하기 위해 호출됨.  

4. 서블릿 Lift Cycle 메서드
    1) init()       초기화 - 서블릿 요청 시 맨 처음 한번만 호출됨. 초기화 작업 수행.
    2) doGet()      작업수행 - 서블릿 요청 시 매번 호출됨.
       doPost()               실제로 클라이언트가 요청하는 작업을 수행함.
    3) destroy()    종료 - 메모리에서 소멸될 때 호출됨.  마무리 작업을 주로 수행.    

    =>  init()와 destroy() 메서드는 생략가능, doXXX() 메서드는 반드시 구현해야 함.

5. 서블릿 매핑하기
    1) http://localhost:8080/chap02_Serviet/first    
               주소     포트번호   프로젝트명 패키지명이 포함된 클래스명 
        - 클래스 이름이 길어지면 불편함
        - 클래스 이름이 사용되면 보안에도 좋지 않음
            => 서블릿 클래스에 대응하는 서블릿 매핑 이름으로 요청함(web.xml)    

    2) 브라우저에서 서블릿 요청하기                                                  
        - http://IP주소:포트번호/프로젝트이름(컨텍스트이름)/서블릿매핑이름   

    3) 다수의 서블릿 매핑하기 
        - 일반적인 웹 애플리케이션은 각 기능에 대한 서블릿을 따로 만들어서 서비스를 제공함.  

6. 애너테이션(annotation)을 이용한 서블릿 매핑     
    1) web.xml에 여러 서블릿 매핑 설정시 복잡해짐.
    2) 가독성이 좋아짐.
    3) @WebServlet을 이용해서 서블릿 매핑을 구현.    
    4) 애너테이션으로 설정한 매피명을 다른 매핑명과 중복되면 안됨.

7. HTTP 요청과 응답
    1) HttpServletRequest의 메서드 
                                           getRequestURI()
                                --------------------------
        - http://localhost:8080/chap02_Serviet/requestInfo?year=2021&month=11&day=23
         getScheme()
                 getServerName()
                           getServerPort()
                                getContextPath()
                                              getServletPath()
                                                           getQueryString()
          -------------------------------------------------
                                              getRequestURL() 

728x90
반응형

'Web > JSP' 카테고리의 다른 글

JSP(6) - 회원정보등록, 삭제하기  (0) 2022.01.28
JSP(5) - JDBC연동과 관련객체  (0) 2022.01.28
JSP(4) - 서블릿 비즈니스 로직 추가  (0) 2022.01.28
JSP(3) - 서블릿  (0) 2022.01.28
JSP(1) - 웹프로그래밍 소개  (0) 2022.01.28

댓글