프로그래밍

[Web] day44 : 리스너 본문

Web/Web

[Web] day44 : 리스너

시케 2023. 8. 6. 23:07
728x90
반응형

2023.07.06.목

리스너

특수한 형태의 서블릿으로 서블릿을 상속받은 자식이다
특정시간(타이밍)에 기능을 추가하고 싶을 때 사용한다
ex) 서블릿이 동작되었을때, 서버가 시작할때, 서블릿이 변경되었을때, 세션이 변경되었을때, ...

 

우리는 샘플데이터를 확보하는 리스너를 작성해볼 것이다

: 샘플 데이터 확보
---> 서버가 시작되었니? 샘플데이터 크롤링해서
크롤링 완료된 데이터들을 DB에 insert()해줘

 

필터와 서블릿과 마찬가지로 리스너 또한 NOT POJO의 일종이다

2023.08.06 - [분류 전체보기] - [Web] POJO와 NOT POJO

 

[Web] POJO와 NOT POJO

2023.07.05.수 POJO와 NOT POJO POJO란 우리가 일반적으로 Class 파일로 만드는 자바 클래스 객체이다 그럼 NOT POJO란 뭘까? NOT POJO는 아주 오래전부터 존재해왔던 기초적인 파일이다 현재에는 대부분의 개

dev-9rm.tistory.com

 

리스너 크롤링 예제

CrawlingListener.java

리스너는 Controller 영역이므로 BoardDAO를 직접 호출하여 insert()를 실행시켰다

package controller;

import java.util.ArrayList;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

import model.BoardDAO;
import model.BoardVO;
import model.Crawling;

/**
 * Application Lifecycle Listener implementation class CrawlingListener
 *
 */
@WebListener
public class CrawlingListener implements ServletContextListener {

    /**
     * Default constructor. 
     */
    public CrawlingListener() {
        // TODO Auto-generated constructor stub
    }

	/**
     * @see ServletContextListener#contextDestroyed(ServletContextEvent)
     */
    public void contextDestroyed(ServletContextEvent sce)  { 
         // TODO Auto-generated method stub
    }

	/**
     * @see ServletContextListener#contextInitialized(ServletContextEvent)
     */
    public void contextInitialized(ServletContextEvent sce)  {
    	
    	ArrayList<BoardVO> datas=new ArrayList<BoardVO>();
    	datas =Crawling.sample();
    	
    	BoardDAO bDAO = new BoardDAO(); // 영화 DAO
    	
    	for(BoardVO v : datas ) {
    		bDAO.insert(v);
    	}
    	
		/*
		 * ServletContext sc = sce.getServletContext(); sc.setAttribute("datas", datas);
		 */
    	
    	System.out.println("로그: Crawling리스너 수행 완료!");


    }
	
}

https://github.com/jihyean/Web/tree/main/day44

 

728x90
반응형
Comments