javaweb之三大元件
阿新 • • 發佈:2018-11-30
JavaWeb三大元件
-
都需要在web.xml中進行配置
Servlet
Listener(2個感知監聽器不需要配置)
Filter -
過濾器
它會在一組資源(jsp、servlet、.css、.html等等)的前面執行!
它可以讓請求得到目標資源,也可以不讓請求達到!
- 過濾器有攔截請求的能力!
登入:
允許它訪問AServlet、BServlet、CServlet
過濾器如何編寫
- 寫一個類實現Filter介面
- 在web.xml中進行配置
Filter介面
void init(FilterConfig)
- 建立之後,馬上執行;Filter會在伺服器啟動時就建立!
void destory() - 銷燬之前執行!在伺服器關閉時銷燬
void doFilter(ServletRequest,ServletResponse,FilterChain) - 每次過濾時都會執行
Filter是單例的!
web.xml
xxx
cn.itcast.web.filter.AFitler
xxx
/*
FilterConfig–>與ServletConfig相似
- 獲取初始化引數:getInitParameter()
- 獲取過濾器名稱:getFilterName()
- 獲取appliction:getServletContext()
FilterChain
- doFilter(ServletRequest, ServletResponse):放行!
放行,就相當於呼叫了目標Servlet的service()方法!
多過濾器
FilterChain#doFilter()方法:
執行目標資源,或是執行下一個過濾器!如果沒有下一個過濾器那麼執行的是目標資源,如果有,那麼就執行下一個過濾器!
過濾器的四種攔截方式
REQUEST預設的!
FORWARD
INCLUDE
ERROR
在中進行配置!
多個過濾器的執行順序
的配置順序決定了過濾器的執行順序!