728x90
Listener
특정 이벤트가 발생함과 동시에 특정 메소드나 함수를 실행할 때 사용함
특정 시간에 기능을 추가하고 싶을 때 사용함
이벤트 핸들링이라고도 함
필터와 서블릿과 마찬가지로 NOT POJO 종류 중 하나이다
Linstener 실습
서버가 시작될 때 크롤링 한 데이터를 BoardDAO 에 삽입한다
리스너는 컨트롤러의 영역이기 때문에 insert() 메소드 수행이 가능하다
CrawlingListener.java
@WebListener
public class CrawlingListener implements ServletContextListener {
public CrawlingListener() {
}
public void contextDestroyed(ServletContextEvent sce) {
}
public void contextInitialized(ServletContextEvent sce) {
ArrayList<BoardVO> datas = new ArrayList<BoardVO>();
datas = Crawling.sample();
BoardDAO bDAO = new BoardDAO();
for(BoardVO v : datas ) {
bDAO.insert(v);
}
System.out.println("로그: Crawling리스너 수행 완료!");
}
}
Crawling.java
public class Crawling {
public static ArrayList<BoardVO> sample() {
final String url = "http://www.cgv.co.kr/movies/?lt=1&ft=0";
Connection conn = Jsoup.connect(url);
Document doc = null;
try {
doc = conn.get();
} catch (IOException e) {
e.printStackTrace();
}
Elements elems = doc.select("strong.title");
Elements elems2 = doc.select("span.txt-info");
Iterator<Element> itr = elems.iterator();
Iterator<Element> itr2 = elems2.iterator();
ArrayList<BoardVO> bdatas = new ArrayList<BoardVO>();
int PK=1;
while(itr.hasNext()) {
String str = itr.next().toString();
String str2 = itr2.next().toString();
int index = str.indexOf(">");
str = str.substring(index+1);
index = str.indexOf("<");
str = str.substring(0, index);
int index2 = str2.indexOf("<strong>");
str2 = str2.substring(index2+9);
index2 = str2.indexOf("<span>");
str2 = str2.substring(0, index2);
bdatas.add(new BoardVO(0, str, str2, "admin"));
}
return bdatas;
}
}
728x90
'Web > JSP' 카테고리의 다른 글
[JSP] Set 구조 (0) | 2023.07.05 |
---|---|
[JSP] FrontController (0) | 2023.07.05 |
[JSP] Filter (0) | 2023.07.04 |
[JSP] POJO 와 NOT POJO (0) | 2023.07.04 |
[JSP] 커스텀태그 (0) | 2023.07.04 |