서블릿 대 필터
서블릿 과 필터 의 차이점은 무엇입니까 ? 페이지 승인을 위해 무엇을 사용하는 것이 좋습니까?
특정 조건에 따라 요청 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
'IT story' 카테고리의 다른 글
키에 대시가있는 Ruby 1.9 해시 (0) | 2021.01.06 |
---|---|
C # 4.0 : pdf를 byte []로 또는 그 반대로 변환 (0) | 2021.01.06 |
명령 줄의 어셈블리 버전? (0) | 2021.01.06 |
CSS 만 사용하여 텍스트 뒤집기 / 반전 / 미러링 (0) | 2021.01.06 |
for 루프를 사용하지 않고 String 배열을 인쇄 할 수있는 방법이 있습니까? (0) | 2021.01.06 |