1. 程式人生 > >javaweb之三大元件

javaweb之三大元件

JavaWeb三大元件

  1. 都需要在web.xml中進行配置
    Servlet
    Listener(2個感知監聽器不需要配置)
    Filter

  2. 過濾器
    它會在一組資源(jsp、servlet、.css、.html等等)的前面執行!
    它可以讓請求得到目標資源,也可以不讓請求達到!

  • 過濾器有攔截請求的能力!

登入:
允許它訪問AServlet、BServlet、CServlet


過濾器如何編寫

  1. 寫一個類實現Filter介面
  2. 在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

在中進行配置!


多個過濾器的執行順序

的配置順序決定了過濾器的執行順序!