필터와 기본을 배울 수있는 리스너의 (a)

그것은 필터와 청취자 또한 초보자,이 문서를 작성하는 주요 목적은 콘텐츠 필터와 청취자의 이해, 일부 너무 전문적이고 포괄적이지 설명을 촉진하는 것입니다, 나와 함께 곰하시기 바랍니다.

A, fileter 개요

즉, 필터필터주로 들어 Javaweb 세 요소 중 하나 인 리소스를 필터링 하지만, 리소스는 주로 필터에 반영인터셉트 처리요청 및 클라이언트와 서버의 응답.
fileter 캔 차단 요청과 응답 때문에, 테스트 등 민감한 문자, 같은 로그인 검증으로, 몇 가지 일반적인 필터 작업을 수행 할 수 있습니다.

두, 간단한 사용을 필터링

(1) 필터 만들기

먼저 클래스를 작성해야하는 필터를 만든 다음 달성하기 위해 이동필터 인터페이스그리고 마지막으로 복제 방법은 인터페이스면에 대응.
아래와 같이 직접 IDEA, 새로운 필터를 선택할 수있다 :
그림 삽입 설명 여기

단순 코드의 예 (2)는 필터

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

@WebFilter("/*")  //"/*表示访问所有资源之间,都会执行改过滤器"
public class FilterTest1 implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
                         FilterChain filterChain) throws IOException, ServletException {
        System.out.println("filterTest1被执行了");

        //在进行相应处理后,对请求或相应放行
        filterChain.doFilter(servletRequest,servletResponse);

    }

    @Override
    public void destroy() {

    }

}

그것은 == @ 웹 필터, 즉 주목해야기본값은 주석 안에== 인터셉트로 여기 차단 전부에 "/ *"는 의미이다.
또한, 그 처리에 대응하는 요청 또는 응답을 가로 채고, 이후의 요청 또는 응답을 허용할지 여부를 고려한다.

세, 청취자 개요

그 리스너모니터또한 Javaweb의 세 가지 구성 요소 중 하나입니다. 자바 GUI가에 프로그래밍이이벤트 리스너여기 개념은 비슷 이벤트 리스너에 의해 처리 될 수 있으며, 여기에 치료는 주로 HttpServletRequest의,의 HttpSession과 ServletContext를 대상으로합니다.
이러한 개체는 제법 목표 청취자를 모니터링함으로써 얻어, 그 특성에 따라 해당 동작을 할 수있다.

네, 리스너 간단한 사용

목적에 따라 수신기에 의해 생성 된 인터페이스는 여기 다양한 달성하기 위해 수신기를 치료할ServletContextListener 인터페이스예를 들어, 당신은 실제로 웹 애플리케이션의 라이프 사이클을 수신 대기의 ServletContext 객체의 라이프 사이클을 모니터링 할 수 있습니다.
코드 대응 방식은 다음과 같습니다 :

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

@WebListener()
public class ListenerTest1 implements ServletContextListener{

    /**
     * 监听ServletContext对象创建的。ServletContext对象服务器启动后自动创建。
     *
     * 在服务器启动后自动调用
     */
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {

        System.out.println("ServletContext对象被创建了。。。");
    }

    /**
     * 在服务器关闭后,ServletContext对象被销毁。当服务器正常关闭后该方法被调用
     */
    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        System.out.println("ServletContext对象被销毁了。。。");
    }
}

참고 자료

그림 삽입 설명 여기
2020년 2월 17일

게시 52 개 원래 기사 · 원 찬양 59 · 전망 6820

추천

출처blog.csdn.net/ataraxy_/article/details/104357873