본문 바로가기
Programming | Study/JSP | Servlet

[servlet] RequestListener 구현

by jinju 2021. 4. 24.

ServletRequestListener, ServletRequestAttributeListener

- 요청이 발생하면 발생

- HttpRequest객체에 속성이 추가, 제거, 수정되면 발생

 

 

Listener 클래스 생성 지금까지는 class에 생성하여 따로 인터페이스하고 메소드 추가했지만

Listener 클래스를 이용하여 생성하면 편리함

맨밑에 저거 두개 선택

 

ServletRequestListener, ServletRequestAttributeListener 구현

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package com.listener;
 
import javax.servlet.ServletRequestAttributeEvent;
import javax.servlet.ServletRequestAttributeListener;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpServletRequest;
 
 
@WebListener
public class RequestListenerTest implements ServletRequestListener, ServletRequestAttributeListener {
 
 
    public RequestListenerTest() {
       
    }
 
 
    public void requestDestroyed(ServletRequestEvent sre)  { 
        System.out.println("요청이 소멸됨");
    }
 
 
    public void attributeRemoved(ServletRequestAttributeEvent srae)  { 
        
         
    }
 
 
    public void requestInitialized(ServletRequestEvent sre)  { 
           System.out.print("요청이 들어옴");
           System.out.println(sre.getServletContext().getContextPath());
          System.out.println(((HttpServletRequest)sre.getServletRequest()).getRequestURL());
 
    }
 
 
    public void attributeAdded(ServletRequestAttributeEvent srae)  { 
         // TODO Auto-generated method stub
    }
 
 
    public void attributeReplaced(ServletRequestAttributeEvent srae)  { 
         // TODO Auto-generated method stub
    }
    
}
cs

ServletRequestListener 메소드 종류

-requestInitialized(ServletRequestEvent e) : void request객체가 생성되었을때 처리하는 메소드

-requestDestroyed(ServletRequestEvnet e) : void request객체가 소멸 되었을때 처리하는 메소드

 

ServletRequestAttributeListener 메소드 종류

attributeAdded(ServletRequestEvent e) : void 객체에 속성이 추가됐을때 호출되는 메소드

attributeReplaced(ServletRequestEvnet e) : void 객체의 속성이 수정되었을때 호출되는 메소드

attributeRemoved(ServletRequestEvnet e) : void 객체에서 속성이 삭제 되었을때 호출되는메소드

 

 

 

실행하면 console창에서 이렇게 확인할 수있다.

지금까지 패키지안에 있던 여러 클래스의 요청을 다 확인할 수 있다 이게 requestListener

System.out.println(sre.getServletContext().getContextPath());

-> 애플리케이션 이름 /03_listenerr_filter

System.out.println(((HttpServletRequest)sre.getServletRequest()).getRequestURL());

-> 경로 / http://localhost:9030/03_listener_filter/contexttest.do

댓글