티스토리 뷰

Web 개발/Servlet

[Servlet] Servlet이란?

happii 2022. 3. 23. 09:48

Java Application

 한개의  main()메소드를 가지고 독립적으로 실행하는 자바클래스


Java Web Application

 브라우저에서 실행되는 자바클래스
      (Servlet/JSP)
 ---> 서블릿과 JSP를 실행하기 위해서는 Web Application Server가 필요
                            -----------------------
                                      WAS!!      


서블릿   javax.servlet.Servlet


- 자바플랫폼에서 컴포넌트를 기반으로 한 웹 애플리케이션을 개발할때 사용.
- 스레드를 기반으로 하므로 웹 애플리케이션 운영에 효율적.
- 자바를 기반으로 하므로 자바 API를 모두 사용할 수 있다.
- 운영체제나 하드웨어에 영향을 받지 않으므로 
   한번 개발된 애플리케이션은 다양한 서버환경에서도 실행이 가능.
- 웹애플리케이션에서 효율적인 자료 공유 방법을 제공.
- JSP는 서블릿을 기반으로 한 기술.



웹애플리케이션 개발 시 서블릿을 사용하면 좋은 점은?


- 콘텐츠와 비즈니스 로직을 분리 할 수 있다.
- 컨트롤러와 뷰의 역할 분담으로 인해 웹 디자이너와 개발자 간의 원활한
   작업이 가능.
- 유지보수가 수월.
- 기능확장이 용이.

 


서블릿 클래스의 상속관계

  javax.servlet.Servlet(인터페이스)
              |
              |
  javax.servlet.GenericServlet(클래스)
              |
              |
  javax.servlet.http.HttpServlet(클래스)

 


서블릿의 생명주기 메소드  Life Cycle



1. init() 메소드


   - 서블릿 로딩
   - 서블릿 초기화 메소드


2. service() 메소드


   - 웹브라우저에 서비스(화면출력)하는 메소드
   - 클라이언트 요청데 따라 doGet()이나 doPost()메소드로 분기
   - 사용자 요청 처리는 request(요청객체, client, 아이객체, 때쟁이, 브라우저)로
                   응답 처리는 response(응답객체, server, 엄마객체, 톰켓)로 처리함

 


3. destroy() 메소드


   - 컨테이너로부터 서블릿 종료요청이 있을때
        서블릿 종료직전에 해야할 작업을 명시할 때 사용.
   - 대부분의 경우 컨테이너가 종료될 때 실행.
               -------
                    아파치 톰캣  ===> 서블릿 컨테이너!!
                            -------
                                                       서버,실행기

 

                   
서블릿 실행방법



1. http://192.168.0.96:8080/TomTest/servlet/com.ssafy.MyServlet   
    ---> 보안상 문제 발생
    
2. WEB-INF/web.xml에 작성된 서블릿 클래스를 등록
    ---> 등록과 함께 서블릿에 대한 가상의 경로를 매핑시켜서 호출.        
   
3. @annotation으로 서블릿을 등록






 Servlet/JSP의 수식어 ==> 웹어플리케이션!!(웹서비스하는 프로그램) 

 Servlet용도(무엇에 쓰는 물건)?  1. 브라우저에 출력할 화면구성(어려워)  
                            2. Controller기능(MVC패턴구조에서 사용)
                            
 JSP용도(무엇에 쓰는 물건)?      1. 브라우저에 출력할 화면구성(쉬워)
                            ---> 하지만 HTML도 화면구성을 할 수 있는데?
                            ---> HTML+Java(서버와 데이터를 공유)  

'Web 개발 > Servlet' 카테고리의 다른 글

[Servlet] GET과 POST  (0) 2022.03.26
[Servlet] Context root 변경하기  (0) 2022.03.26
[Servlet] Life-Cycle  (0) 2022.03.26
최근에 올라온 글
Total
Today
Yesterday