Servlet 및 Filter 간의 차이점 및 연결

2705 단어 servletfilter
filter는 HTTP 요청, 응답, 헤더 정보를 변환하는 데 사용할 수 있는 코드 세션입니다.Filter는 Servlet과 같지 않습니다. 요청이나 응답을 만들 수 없습니다. 자원에 대한 요청을 수정하거나 응답을 수정할 뿐입니다.
최근에 플러그인을 사용할 때 쿠키로 컴퓨터를 식별하고 필터를 추가했습니다. servlet과 filter를 자세히 연구했습니다. 차이점은 다음과 같습니다.
필터의 라이프 사이클은 일반적으로 다음 세 단계를 거쳐야 합니다.
서브렛의 특징은 다음과 같습니다.
초기화
용기가 이 필터를 처음 불러올 때 init () 방법이 호출됩니다.이 클래스는 이 방법에 Filter Config 객체에 대한 참조를 포함합니다.우리의 필터는 실제로 이렇게 할 필요가 없다. 왜냐하면 초기화 정보를 사용하지 않았기 때문이다. 이것은 단지 시범적인 목적에서 나온 것이다.
여과
필터의 대다수 시간은 이곳에서 소모된다.doFilter 방법은 용기에 호출되며, 이 요청/응답 체인에 있는 Servlet Request, Servlet Response, Filter Chain 대상을 가리키는 인용을 전송합니다.그리고 필터는 요청을 처리할 기회가 있습니다. 처리 작업을 체인의 다음 자원에 전달합니다. (Filter Chain 대상이 인용한 doFilter 방법을 호출함으로써) 처리 제어권이 필터로 돌아갈 때 응답을 처리합니다.
분석하여 구성하다
용기는 쓰레기를 수집하기 전에destroy () 방법을 사용해서 필요한 청소 코드를 실행할 수 있도록 합니다.
체인에 관하여.doFilter(request,response)의 역할은 필터 체인의 다음 대상에 요청을 전달하는 것입니다.여기 다음은 다음 필터입니다. 필터가 없으면 요청한 자원입니다.일반 필터는 하나의 체인, 웹입니다.xml에 몇 개 설정되어 있으면 몇 개 있습니다.하나하나 이어지다
request -> filter1 -> filter2 ->filter3 -> .... -> request resource.
필터는 체인 작업입니다. 단일 필터를 처리할 때 servlet으로 이동해서 요청에 응답해야 합니다.
체인을 가면, 체인을 통해.doFilter (request,response) 이 방법은 차단된 servlet으로 바로 이동하고 실행하고 다시 filter로 돌아갑니다.chain은 한 개의 문에 해당합니다. 이 문으로 나가서 다시 이 문으로 돌아오세요.필터를 호출하는 방법은 웹입니다.xml에서 설정하려면 차단해야 하는 servlet과 같은 URL-pattern을 설정해야 합니다.

<!--   --> 
<filter> 
<filter-name>suibianxie</filter-name> 
<filter-class>com.etoak.filter.MyEncoding</filter-class> 
<!--   --> <init-param> <param-name>mycode</param-name> <param-value>gbk</param-value> </init-param> </filter> 
<!--  mapping  --> <filter-mapping> <filter-name>suibianxie</filter-name> 
<!--  servlet url-pattern ,   servlet  --> 
<url-pattern>/servlet/Test</url-pattern> </filter-mapping> 
<!--   --> 
<filter> 
<filter-name>suibianxie2</filter-name> 
<filter-class>com.etoak.filter.Naming</filter-class> 
</filter>
<filter-mapping> 
<filter-name>suibianxie2</filter-name> 
<url-pattern>/servlet/Test</url-pattern> 
</filter-mapping> 
<servlet> 
<servlet-name>Test</servlet-name> 
<servlet-class>com.etoak.servlet.Test</servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name>Test</servlet-name> 
<url-pattern>/servlet/Test</url-pattern> 
</servlet-mapping>
위에서 말한 것은 여러분께 소개해 드린 서브렛과 Filter 간의 차이와 연계입니다. 여러분께 도움이 되었으면 합니다!

좋은 웹페이지 즐겨찾기