真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么使用ServletFilter實現(xiàn)系統(tǒng)登錄權(quán)限-創(chuàng)新互聯(lián)

這篇文章給大家介紹怎么使用ServletFilter實現(xiàn)系統(tǒng)登錄權(quán)限,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

創(chuàng)新互聯(lián)2013年開創(chuàng)至今,公司以成都網(wǎng)站制作、網(wǎng)站設計、系統(tǒng)開發(fā)、網(wǎng)絡推廣、文化傳媒、企業(yè)宣傳、平面廣告設計等為主要業(yè)務,適用行業(yè)近百種。服務企業(yè)客戶超過千家,涉及國內(nèi)多個省份客戶。擁有多年網(wǎng)站建設開發(fā)經(jīng)驗。為企業(yè)提供專業(yè)的網(wǎng)站建設、創(chuàng)意設計、宣傳推廣等服務。 通過專業(yè)的設計、獨特的風格,為不同客戶提供各種風格的特色服務。

Servlet Filter介紹

過濾器是一些web應用程序組件,可以綁定到一個web應用程序中。但是與其他web應用程序組件不同的是,過濾器是”鏈”在容器的處理過程中的。這就意味著它們會在servlet處理器之前訪問一個進入的請求,并且在外發(fā)響應信息返回到客戶前訪問這些響應信息。這種訪問使得過濾器可以檢查并修改請求和響應的內(nèi)容。

Filter適用的場景:

1.為一個web應用程序的新功能建立模型(可被添加到web應用程序中或者從web應用程序中刪除而不需要重寫基層應用程序代碼)

2.向過去的代碼添加新功能

3.用戶授權(quán)的Filter: Filter 負責檢查用戶請求,根據(jù)請求過濾用戶非法請求

4.日志Filter: 詳細記錄某些特殊的用戶請求

5.負責解碼的Filter: 包括對非標準編碼的請求解碼

Filter使用的位置:

過濾器放在web資源之前,可以在請求抵達它所應用的web資源(可以是一個Servlet、一個Jsp頁面,甚至是一個HTML頁面)之前截獲進入的請求,并且在它返回到客戶之前截獲輸出請求。Filter:用來攔截請求,處于客戶端與被請求資源之間,目的是重用代碼。Filter鏈,在web.xml中哪個先配置,哪個就先調(diào)用。在filter中也可以配置一些初始化參數(shù)。

Filter的用途:

1.在HttpServletRequest 到達Servlet 之前,攔截客戶的HttpServletRequest

2.根據(jù)需要檢查HttpServletRequest ,也可以修改HttpServletRequest 頭和數(shù)據(jù)

3.在HttpServletResponse 到達客戶端之前,攔截HttpServletResponse

4.根據(jù)需要檢查HttpServletResponse ,可以修改HttpServletResponse 頭和數(shù)據(jù)

一個Filter 可負責攔截多個請求或響應:一個請求或響應也可被多個請求攔截。

使用Filter進行系統(tǒng)登錄權(quán)限校驗

這里我們使用對session進行校驗的方式,當對某一模塊進行請求時,先校驗當前用戶的請求是否有session存在,如果有,繼續(xù)訪問,如果沒有,即跳轉(zhuǎn)到登錄頁。

第一步:

編寫自己的Filter攔截類,攔截類需要實現(xiàn)servlet的filter接口

public class WebFilter implements Filter{  @Override  public void init(FilterConfig filterConfig) throws ServletException {  }  @Override  public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {    HttpServletRequest request = (HttpServletRequest) servletRequest;    HttpServletResponse response = (HttpServletResponse) servletResponse;    HttpSession session = request.getSession();    String currPath = request.getRequestURI();  //當前請求的URL    if (session.getAttribute("logined") != null) {      filterChain.doFilter(servletRequest, servletResponse);    } else {      response.sendRedirect("/login.jsp");    }  }  @Override  public void destroy() {  }  }

這里使用了攔截器鏈,當我們配置了多個攔截器的時候,服務器會按照web.xml中過濾器定義的先后循序組裝成一條鏈,然后一次執(zhí)行其中的doFilter()方法。

第二步:

在web.xml中配置自定義的攔截器

web.xml:

   webFilter    com.test.interceptor.WebFilter          skipPath      ok.jsp            webFilter    /*  

這樣,就配置好了我們自定義的攔截器,如果有多個攔截器的話,請注意攔截器配置的順序,攔截會按照從上至下的順序進行攔截,一般來說處理編碼的攔截器配置在最上面。

通過上述步驟的操作,此時就可以通過URI進行訪問。此時如果能夠取得Session中的logined值時,會直接進入下一步處理,否則直接進入登錄頁面。從而就完成了session的校驗。

關(guān)于怎么使用ServletFilter實現(xiàn)系統(tǒng)登錄權(quán)限就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


網(wǎng)頁題目:怎么使用ServletFilter實現(xiàn)系統(tǒng)登錄權(quán)限-創(chuàng)新互聯(lián)
標題URL:http://weahome.cn/article/gcpsj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部