728x90
반응형
JSP Filter
- 특정 주소로 접속할 때 필터를 거쳐서 지나가도록 만들 수 있다.
- web.xml에서 필터 등록을 한 후 특정 URL에 대한 필터 매핑을 해놓을 수 있다.
- chain으로 다음 필터를 호출하면 이 필터를 마무리 짓는 것이 된다.
package chap10.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class MyFilter1 implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("MyFilter1이 초기화되었음.");
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
/*
# JSP Filter
- 특정 주소로 접속할 때 필터를 거쳐서 지나가도록 만들 수 있다.
- web.xml에서 필터 등록을 한 후 특정 URL에 대한 필터 매핑을 해놓을 수 있다.
- chain으로 다음 필터를 호출하면 이 필터를 마무리 짓는 것이 된다.
*/
System.out.println("MyFilter1에서 뭔가를 처리함...");
System.out.println("다음 필터 호출함");
chain.doFilter(request, response);
}
}
필터 등록하기
<filter>
<filter-name>myFilter1</filter-name>
<filter-class>chap10.filter.MyFilter1</filter-class>
</filter>
필터 매핑하기
<filter-mapping>
<filter-name>myFilter1</filter-name>
<url-pattern>/home</url-pattern>
<url-pattern>/home.jsp</url-pattern>
</filter-mapping>
Listener
package chap10.listener;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
public class MyServletRequestProcess implements ServletRequestListener {
@Override
public void requestInitialized(ServletRequestEvent sre) {
System.out.println("요청 처음 부분에 이벤트 처리하고 싶은 내용");
// sre객체에 ServletRequest와 ServletContext가 모두 들어있다.
System.out.println("parameter: "
+ sre.getServletRequest().getParameter("flavor"));
}
@Override
public void requestDestroyed(ServletRequestEvent sre) {
System.out.println("요청이 마무리되는 무렵에 처리하고 싶은 내용");
}
}
리스너 등록하기
<listener>
<listener-class>chap10.listener.MyServletRequestProcess</listener-class>
</listener>
ContextLoaderListener
- Context 내부의 내용에 변화가 있는 경우 리로드 할 때 호출되는 이벤트
package chap10.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
// ContextLoaderListener : Context 내부의 내용에 변화가 있는 경우 리로드 할 때 호출되는 이벤트
public class ContextLoaderListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("ContextLoaderListener: 컨텍스트 내부에 뭔가 변화가 있었습니다...");
System.out.println("ContextLoaderListener: 다시 초기화 합니다..");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("ContextLoaderListener: ServletContext Destoryed...");
}
}
728x90
반응형
'JAVA > JSP' 카테고리의 다른 글
[JSP] include (0) | 2023.07.03 |
---|---|
[JSP] Cookie (0) | 2023.06.27 |
[JSP] JSTL (0) | 2023.06.27 |
[JSP] Dispatcher Servlet (0) | 2023.06.27 |
[JSP] XML (0) | 2023.06.23 |