ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 서블릿 리스너와 필터
    SPRING/스프링 MVC 2021. 6. 5. 15:37

    서블릿 리스너와 필터 

    서블릿 리스너 

    - 웹 애플리케이션에서 발생하는 주요 이벤트를 감지하고 각 이벤트에 특별한 작업이 필요한 경우에 사용할 수 있다. 

     

    public class MyListner implements ServletContextListener {
    
        @Override
        public void contextInitialized(ServletContextEvent sce) {
            System.out.println("contextInitialized");
            sce.getServletContext().setAttribute("name","jump");
        }
    
        @Override
        public void contextDestroyed(ServletContextEvent sce) {
            System.out.println("contextDestroyed");
        }
    }
    
    
    public class HelloServlet extends HttpServlet {
    
        @Override
        public void init() throws ServletException {
            // 서블릿 생성 (처음 한번마 실행)
            System.out.println("init");
        }
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            System.out.println("doGet");
            resp.getWriter().write("Hello Servlet " + getName());
        }
    
        @Override
        public void destroy() {
            System.out.println("destroy");
        }
    
        private Object getName() {
            return getServletContext().getAttribute("name");
        }
    }
    

    Web.xml에 listener 추가

    결과

    서블릿 필터 

    -들어온 요청을 서블릿으로 보내고, 또 서블릿이 작성한 응답을 클라이언트로 보내기 전에 특별한 처리가 필요한 경우에 사용할 수 있다. 

    구조 

     

     

    public class MyFilter implements Filter {
    
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
            System.out.println("Filter init");
        }
    
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            System.out.println("Filter doget");
            filterChain.doFilter(servletRequest, servletResponse);
        }
    
        @Override
        public void destroy() {
            System.out.println("Filter destroy");
        }
    }
    

     

    실행순서 

    Listener -> Filter -> Servlet

    종료 순서

    Servlet -> Filter -> Listener

     

     

    'SPRING > 스프링 MVC' 카테고리의 다른 글

    스프링 MVC -WEB.XML 제거  (0) 2021.06.10
    DispatchServlet 분석  (0) 2021.06.06
    스프링 MVC 연동  (0) 2021.06.06
    스프링 IOC 컨테이너 연동  (0) 2021.06.05
    Spring MVC란?  (0) 2021.06.02
Designed by Tistory.