2019-04-28 Filter過濾器

什么是過濾器

Filter 的基本功能是對(duì) Servlet 容器調(diào)用 Servlet 的過程進(jìn)行攔截,從而在 Servlet 進(jìn)行響應(yīng)處理的前后實(shí)現(xiàn)一些特殊的功能。

Filter 程序是一個(gè)實(shí)現(xiàn)了 Filter 接口的 Java 類,與 Servlet 程序相似,它由 Servlet 容器進(jìn)行調(diào)用和執(zhí)行

Filter 程序需要在 web.xml 文件中進(jìn)行注冊和設(shè)置它所能攔截的資源

 <filter>
    <filter-name>hello</filter-name>
    <filter-class>com.neuedu.filter.HelloFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>hello</filter-name>
    <url-pattern>/filter</url-pattern>
  </filter-mapping>

注解方式:與servlet幾乎完全一致,但是過濾器

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;


@WebFilter("/*")
public class Filter1_Encoding implements Filter {
    public Filter1_Encoding() {
        // TODO Auto-generated constructor stub
    }
    public void destroy() {
        // TODO Auto-generated method stub
    }
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        // 放行
        chain.doFilter(request, response);
    }
    public void init(FilterConfig fConfig) throws ServletException {
        // TODO Auto-generated method stub
    }
}

注意:Filter存在鏈?zhǔn)讲僮鞯模煌倪^濾器可以擁有相同的映射路徑,表示攔截同一個(gè)請(qǐng)求,先后順序,如果是注解方式的方式是類名決定的,例如: AFilter,BFilter,AFilter會(huì)先進(jìn)行攔截,再如Filter1_xxx,Filter2_xxx,Filter1_xxx會(huì)先攔截
如果是配置的方式,先配置<filter-mapping></filter-mapping>的過濾器先攔截

典型應(yīng)用

統(tǒng)一編碼字符集

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容