대덕공부/Spring

Servlet - 생명주기

02O2 2022. 6. 2. 20:03

Servlet                                                                                         
? 웹에서 발생하는 요청을 받고 그에 대한 응답을 생성할 수 있는 어플리케이션의 조건을 모아놓은 명세서.                                      
서블릿 개발 단계                                                                                       
1. HttpServlet 을 상속받은 소스 정의                                                                     
2. 컴파일(-d) : /WEB-INF/classes에 클래스를 배포.                                                         
3. WAS에 서블릿 등록(web.xml - ver2.5, @WebServlet)                                                   
-servlet                                                                                   
-> servlet-name(required)                                                              
-> servlet-class(required)                                                             
load-on-startup, init-param (optional)                                                 
4. 서블릿 매핑(web.xml - ver2.5, @WebServlet)                                                        
- servlet-mapping                                                                          
->servlet-name                                                                         
->url-pattern                                                                          
5. WAS restart (auto-reload 설정시 생략가능)                                                           
                                                                                                
** Web Application Server , Web Container, Servlet Container                                    
container ?? 컴포넌트 생명 주기 관리자                                                                    
 Servlet Container ?? Servlet의 생명주기 관리자 -> 생명주기 관리내에서 callback을 호출                              
 $("#button").on("click",function(){});                                                         
 callback ?? 특정 컨텍스트 내에서 어떤 이벤트가 발생했을때 (특정 조건이 만들어졌을때). 시스템 내뷍서 자동으로 호출되는 구조.                   
 생성 - init                                                                                      
 요청 - service, doXXX                                                                            
 소멸  - destroy         

 

public class DescServlet extends HttpServlet {

	public DescServlet() {// 기본생성자 알트 쉬프트 에스 밑에서 두번째
		super();
		System.out.println(this.getClass().getName() + "생성");// 인스턴스에있는 클래스에 접근할려면 이 메소드를 이용한다.

	}

	@Override
	public void init(ServletConfig config) throws ServletException {
		super.init(config);
		System.out.println(this.getClass().getName() + "초기화");
		String initValue = config.getInitParameter("parma1");
		System.out.println("param1의 값 - "+initValue);
	}

	@Override
	public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
		System.out.println("요청처리 시작");
		super.service(req, res); // http 요청의 method를 파악하고, 해당 callback을 호출.
		System.out.println("요청처리 종료");
	}
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		resp.getWriter().println("Desc Servlet");
		System.out.println("do Get 실행");
	}

	@Override
	public void destroy() {
		super.destroy();
		System.out.println(this.getClass().getName() + "소멸");
	}
}