๋ฆฌ์ค๋๋ ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ๊ณ ์ฒ๋ฆฌํ๋ ๊ฐ์์ ์ญํ ์ ํ๋ฉฐ, ์น ์ ํ๋ฆฌ์ผ์ด์
์ ์๋ช
์ฃผ๊ธฐ๋ ์ํ ๋ณํ์ ์๋์ผ๋ก ๋ฐ์ํ ์ ์๋๋ก ํด์ค๋๋ค.
Listener๋?
์น ์ ํ๋ฆฌ์ผ์ด์
๋ด์์ ๋ฐ์ํ๋ ํน์ ์ด๋ฒคํธ ์ ๋ํด ์๋์ผ๋ก ์คํ๋๋ ์ฝ๋๋ฅผ ํฌํจํ๋ ํด๋์ค์
๋๋ค.
โข
์ด๋ฒคํธ (์: ์ธ์
์์ฑ, ์ ํ๋ฆฌ์ผ์ด์
์์ ๋ฑ)
๋ฆฌ์ค๋๋ ์๋ธ๋ฆฟ ์ปจํ
์ด๋(Tomcat ๋ฑ)๊ฐ ์๋์ผ๋ก ํธ์ถํฉ๋๋ค. ์ฆ, ๊ฐ๋ฐ์๊ฐ ์ง์ ํธ์ถํ์ง ์์๋ ๋ฉ๋๋ค.
์ฃผ์ Listener ์ข
๋ฅ
Listener ์ธํฐํ์ด์ค | ๊ฐ์ง ๋์ (์ด๋ฒคํธ) | ์ฃผ ์ฌ์ฉ ๋ชฉ์ |
ServletContextListener | ์น ์ ํ๋ฆฌ์ผ์ด์
์์/์ข
๋ฃ | ์ด๊ธฐ ์ค์ , ๋ฆฌ์์ค ์ ๋ฆฌ ๋ฑ |
HttpSessionListener | ์ธ์
์์ฑ/์ข
๋ฃ | ๋ก๊ทธ์ธ ์ถ์ , ์ธ์
์ ๊ด๋ฆฌ |
ServletRequestListener | ์์ฒญ ์์/์ข
๋ฃ | ์์ฒญ ์๊ฐ ์ธก์ , ๋ก๊น
๋ฑ |
HttpSessionAttributeListener | ์ธ์
์์ฑ ๋ณ๊ฒฝ | ๋ก๊ทธ์ธ ์ ๋ณด ์ถ์ ๋ฑ |
ServletContextAttributeListener | ์ปจํ
์คํธ ์์ฑ ๋ณ๊ฒฝ | ์ ์ญ ์ค์ ๋ณ๊ฒฝ ๊ฐ์ |
ServletRequestAttributeListener | ์์ฒญ ์์ฑ ๋ณ๊ฒฝ | ๋๋ฒ๊น
, ๋ก๊น
๋ฑ |
1. ServletContextListener
์ญํ :
โข
์น ์ฑ ์์/์ข
๋ฃ ์์ ์ ๋์
์ฝ๋ ์์:
@WebListener
public class AppStartListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent sce) {
System.out.println("๐ ์น ์ ํ๋ฆฌ์ผ์ด์
์์๋จ");
}
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("๐ ์น ์ ํ๋ฆฌ์ผ์ด์
์ข
๋ฃ๋จ");
}
}
Java
๋ณต์ฌ
2. HttpSessionListener
์ญํ :
โข
์ธ์
์์ฑ/์ข
๋ฃ ๊ฐ์ง (๋ก๊ทธ์ธ ์ํ ๋ฑ ์ถ์ )
์ฝ๋ ์์:
@WebListener
public class SessionTracker implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent se) {
System.out.println("๐ข ์ธ์
์์ฑ๋จ: " + se.getSession().getId());
}
public void sessionDestroyed(HttpSessionEvent se) {
System.out.println("๐ด ์ธ์
์ข
๋ฃ๋จ: " + se.getSession().getId());
}
}
Java
๋ณต์ฌ
3. ServletRequestListener
์ญํ :
โข
HTTP ์์ฒญ์ ์์/์ข
๋ฃ ๊ฐ์ง
์ฝ๋ ์์:
@WebListener
public class RequestLogger implements ServletRequestListener {
public void requestInitialized(ServletRequestEvent sre) {
System.out.println("โก๏ธ ์์ฒญ ์์๋จ: " + ((HttpServletRequest) sre.getServletRequest()).getRequestURI());
}
public void requestDestroyed(ServletRequestEvent sre) {
System.out.println("โฌ
๏ธ ์์ฒญ ์ข
๋ฃ๋จ");
}
}
Java
๋ณต์ฌ
๋ฆฌ์ค๋ ๋ฑ๋ก ๋ฐฉ๋ฒ
1.
์ด๋
ธํ
์ด์
์ฌ์ฉ (@WebListener) โ ์ต์ ๋ฐฉ์
2.
web.xml์ ๋ฑ๋ก โ ์ ํต ๋ฐฉ์
<!-- web.xml ๋ฐฉ์ ์์ -->
<listener>
<listener-class>com.example.MyListener</listener-class>
</listener>
XML
๋ณต์ฌ
์ฌ์ฉ ์
์๋๋ฆฌ์ค | ํ์ฉํ ๋ฆฌ์ค๋ |
์น ์ฑ ์์ ์ DB ์ฐ๊ฒฐ ํ ์์ฑ | ServletContextListener |
์ฌ์ฉ์ ๋ก๊ทธ์ธ ์ ์นด์ดํ
| HttpSessionListener |
์์ฒญ ๋ก๊ทธ ๊ธฐ๋ก | ServletRequestListener |
๋ก๊ทธ์ธ ์ฌ์ฉ์ ์ ๋ณด ์ถ์ | HttpSessionAttributeListener |
์ ์ญ ์ค์ ๋ณ๊ฒฝ ๊ฐ์ | ServletContextAttributeListener |
์ ๋ฆฌ
๋ฆฌ์ค๋ ์ข
๋ฅ | ๊ฐ์ง ์์ |
ServletContextListener | ์น ์ฑ ์์/์ข
๋ฃ |
HttpSessionListener | ์ธ์
์์ฑ/์ข
๋ฃ |
ServletRequestListener | ์์ฒญ ์์/์ข
๋ฃ |
์์ฑ ๊ด๋ จ ๋ฆฌ์ค๋๋ค | ์์ฑ ์ถ๊ฐ/๋ณ๊ฒฝ/์ญ์ ์์ |