日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java filter拦截器的使用

發(fā)布時(shí)間:2024/4/14 java 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java filter拦截器的使用 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、web.xml配置

<!-- 驗(yàn)證是否登錄 攔截功能 --><filter><filter-name>isLogin</filter-name><filter-class>com.ifengSearch.filter.LoginFilter</filter-class></filter><filter-mapping><filter-name>isLogin</filter-name><!-- 攔截 路徑 --><url-pattern>/user/index</url-pattern><url-pattern>/client</url-pattern><url-pattern>*.do</url-pattern></filter-mapping>

2、編寫(xiě) 攔截器,實(shí)現(xiàn)?filter 即可

package com.ifengSearch.filter;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.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import org.apache.log4j.Logger;import com.ifengSearch.user.entity.UserBean; /*** 是否登錄攔截器* @author flm* @date 2017年8月5日*/ public class LoginFilter implements Filter{private Logger log = Logger.getLogger(LoginFilter.class);@Overridepublic void destroy() {}@Overridepublic void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)throws IOException, ServletException {HttpServletRequest request = (HttpServletRequest)arg0;HttpServletResponse response =(HttpServletResponse) arg1;UserBean userBean = (UserBean) request.getSession().getAttribute("user");String url = request.getRequestURI(); //獲取請(qǐng)求路徑if("/ifengSearch/login.do".equals(url)){ // 如果是登陸的路徑 不攔截 arg2.doFilter(request, response);}else if(userBean==null||userBean.equals(null)){ //還沒(méi)登錄的 攔截 log.debug("還沒(méi)登錄 -----》 重定向 登錄頁(yè)面");response.sendRedirect("/ifengSearch/login");}else{arg2.doFilter(request, response); //放行}}@Overridepublic void init(FilterConfig arg0) throws ServletException {} }

3、還有其他的配置

web.xml配置各節(jié)點(diǎn)介紹:<filter-name>用于為過(guò)濾器指定一個(gè)名字,該元素的內(nèi)容不能為空。 <filter-class>元素用于指定過(guò)濾器的完整的限定類(lèi)名。 <init-param>元素用于為過(guò)濾器指定初始化參數(shù),它的子元素<param-name>指定參數(shù)的名字,<param-value>指定參數(shù)的值。 在過(guò)濾器中,可以使用FilterConfig接口對(duì)象來(lái)訪(fǎng)問(wèn)初始化參數(shù)。<filter-mapping>元素用于設(shè)置一個(gè) Filter 所負(fù)責(zé)攔截的資源。一個(gè)Filter攔截的資源可通過(guò)兩種方式來(lái)指定:Servlet 名稱(chēng)和資源訪(fǎng)問(wèn)的請(qǐng)求路徑 <filter-name>子元素用于設(shè)置filter的注冊(cè)名稱(chēng)。該值必須是在<filter>元素中聲明過(guò)的過(guò)濾器的名字 <url-pattern>設(shè)置 filter 所攔截的請(qǐng)求路徑(過(guò)濾器關(guān)聯(lián)的URL樣式) <servlet-name>指定過(guò)濾器所攔截的Servlet名稱(chēng)。 <dispatcher>指定過(guò)濾器所攔截的資源被 Servlet 容器調(diào)用的方式,可以是REQUEST,INCLUDE,FORWARD和ERROR之一,默認(rèn)REQUEST。用戶(hù)可以設(shè)置多個(gè)<dispatcher> 子元素用來(lái)指定 Filter 對(duì)資源的多種調(diào)用方式進(jìn)行攔截。 <dispatcher> 子元素可以設(shè)置的值及其意義: REQUEST:當(dāng)用戶(hù)直接訪(fǎng)問(wèn)頁(yè)面時(shí),Web容器將會(huì)調(diào)用過(guò)濾器。如果目標(biāo)資源是通過(guò)RequestDispatcher的include()或forward()方法訪(fǎng)問(wèn)時(shí),那么該過(guò)濾器就不會(huì)被調(diào)用。 INCLUDE:如果目標(biāo)資源是通過(guò)RequestDispatcher的include()方法訪(fǎng)問(wèn)時(shí),那么該過(guò)濾器將被調(diào)用。除此之外,該過(guò)濾器不會(huì)被調(diào)用。 FORWARD:如果目標(biāo)資源是通過(guò)RequestDispatcher的forward()方法訪(fǎng)問(wèn)時(shí),那么該過(guò)濾器將被調(diào)用,除此之外,該過(guò)濾器不會(huì)被調(diào)用。 ERROR:如果目標(biāo)資源是通過(guò)聲明式異常處理機(jī)制調(diào)用時(shí),那么該過(guò)濾器將被調(diào)用。除此之外,過(guò)濾器不會(huì)被調(diào)用。

?

轉(zhuǎn)載于:https://www.cnblogs.com/lemon-flm/p/7290381.html

總結(jié)

以上是生活随笔為你收集整理的Java filter拦截器的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。