web基礎-過濾器

過濾器

作用:

  1. 對服務器接受的請求資源和響應給瀏覽器的資源進行管理
  2. 保護servlet

使用

  1. 創建一個Filter接口的普通java類
  2. 複寫接口的方法
    init() 服務器啓動的時候自動調用‘’
    doFilter() 主動調用chain.doFilter放行
    destory() 服務器關閉的時候自動調用
  3. 在web.xml中配置過濾器,使服務器自動調用過濾器
  <filter>
  	<filter-name>myFilter</filter-name>
  	<filter-class>edu.yjsj.filter.Filter</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>myFilter</filter-name>
	<url-pattern>/*</url-pattern> 	
  </filter-mapping>

以上爲單個web.xml配置文件,其中

  1. url-pattern:/*表示攔截所有的請求
  2. url-pattern:*.do表示攔截所有.do結尾的請求,一般進行模塊化攔截處理
  3. url-pattern:/ts 表示攔截指定servlet的請求

過濾器生命週期

服務器啓動到關閉

執行

瀏覽器發起請求到服務器,服務器接收到請求後,根據uri在web.xml中找到對應的過濾器執行doFilter方法,該方法對此次請求經行處理後如果符合要求則放行,放行後如果還有符合要求的過濾器則繼續過濾,最終找到對應的servlet進行請求處理,service方法執行後還會返回到對應的doFilter方法中。

案例

  1. 統一編碼格式
  2. session管理
  3. 權限管理
  4. 資源管理(同一水印,和諧詞彙等等)
  5. 。。。
		//設置編碼格式
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		response.setCharacterEncoding("utf-8");
		//session管理
		HttpSession hs = ((HttpServletRequest)request).getSession();
		if(hs.getAttribute("user") == null) {
			((HttpServletResponse)response).sendRedirect("/login.jsp");
		}else {
			//放行
			chain.doFilter(request, response);
		}	

以上是學習過程積累,有問題歡迎指教

發佈了31 篇原創文章 · 獲贊 3 · 訪問量 799
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章