IT story

서블릿 대 필터

hot-time 2021. 1. 6. 20:26
반응형

서블릿 대 필터


서블릿필터 의 차이점은 무엇입니까 ? 페이지 승인을 위해 무엇을 사용하는 것이 좋습니까?


특정 조건에 따라 요청 Filter필터링 및 / 또는 수정 하려면을 사용하십시오 . 요청 Servlet제어, 전처리 및 / 또는 후 처리하려면를 사용하십시오 .

자바 EE 튜토리얼은 필터에 대한 다음과 같은 언급 :

필터는 요청 또는 응답의 헤더와 콘텐츠 (또는 둘 다)를 변환 할 수있는 개체입니다. 필터는 일반적으로 자체적으로 응답을 생성하지 않는다는 점에서 웹 구성 요소와 다릅니다. 대신 필터는 모든 종류의 웹 리소스에 "연결"할 수있는 기능을 제공합니다. 따라서 필터는 필터 역할을하는 웹 리소스에 대한 종속성이 없어야합니다. 이런 식으로 하나 이상의 웹 리소스 유형으로 구성 할 수 있습니다.

필터가 수행 할 수있는 주요 작업은 다음과 같습니다.

  • 요청을 쿼리하고 그에 따라 조치를 취하십시오.
  • 요청 및 응답 쌍이 더 이상 전달되지 않도록 차단합니다.
  • 요청 헤더 및 데이터를 수정합니다. 사용자 정의 된 버전의 요청을 제공하여이를 수행합니다.
  • 응답 헤더 및 데이터를 수정하십시오. 사용자 정의 된 버전의 응답을 제공하여이를 수행합니다.
  • 외부 리소스와 상호 작용합니다.

권한 부여의 경우 a Filter가 가장 적합합니다. 다음은 필터가 로그인 한 사용자에 대한 요청을 확인하는 방법에 대한 기본적인 시작 예입니다.

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
    if (((HttpServletRequest) request).getSession().getAttribute("user") == null) {
        // User is not logged in. Redirect to login page.
        ((HttpServletResponse) response).sendRedirect("login");
    } else {
        // User is logged in. Just continue with request.
        chain.doFilter(request, response);
    }
}

필터는 인증에 가장 적합합니다. 사이트의 모든 페이지에 대해 실행되도록 구성 할 수 있기 때문입니다. 따라서 모든 페이지를 보호하기 위해 하나의 필터 만 필요합니다.


필터를 사용하면 서블릿 성능을 향상시킬 수 있습니다. 요청이 오면 요청에 따라 전처리를 수행 할 수 있고, 요청이 충족되면 서블릿으로 전달할 수 있습니다. 그렇지 않으면 요청시 적절한 정보를 클라이언트에 제공 할 수 있습니다.

참조 URL : https://stackoverflow.com/questions/2957165/servlet-vs-filter

반응형