溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Servlet過濾器Filter是什么

發(fā)布時間:2020-10-26 11:28:48 來源:億速云 閱讀:179 作者:小新 欄目:編程語言

小編給大家分享一下Servlet過濾器Filter是什么,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

特點

1)Filter是依賴于Servlet容器,屬于Servlet規(guī)范的一部分,在Servlet API中定義了三個接口類:Filter, FilterChain, FilterConfig。

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

3)需要在 web.xml 文件中進行注冊和設(shè)置它所能攔截的資源。

編碼

public class UserNoFilter implements Filter { 
    
	private FilterConfig filterConfig; //獲取參數(shù)配置

	public void init(FilterConfig fConfig) throws ServletException {
		this.filterConfig = fConfig;
	}
	
	/**
	 * 業(yè)務(wù)邏輯判斷
	 */
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		
		String initUser = filterConfig.getInitParameter("userNo");
		String userNo = request.getParameter("userNo");//從提交請求獲取用戶賬號
		
		if(!initUser.equals(userNo)){
			request.setAttribute("message", "用戶名不正確");
			request.getRequestDispatcher("/index.jsp").forward(request, response);
			return;
		}
		
		chain.doFilter(request, response);
	} 
	
	public void destroy() {
		 
	} 

}

web.xml參數(shù)

	<!-- 配置過濾器 -->
	<filter>
		<display-name>UserNoFilter</display-name>
		<filter-name>UserNoFilter</filter-name>
		<filter-class>com.demo.filter.UserNoFilter</filter-class>
		<init-param>
			<param-name>userNo</param-name>
			<param-value>admin</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>UserNoFilter</filter-name>
		<url-pattern>/hello.jsp</url-pattern> 
	</filter-mapping>

應(yīng)用

   1)指定編碼格式

request.setCharacterEncoding(encoding);
filterChain.doFilter(request, response);

  2)用戶是否登錄、用戶能否訪問菜單

String userId=(String) session.getAttribute("userId");
if (userId ==null){
}

看完了這篇文章,相信你對Servlet過濾器Filter是什么有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI