• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    Java中應用Filter對權限和Session控制

    發布: 2008-5-12 10:54 | 作者: 不詳 | 來源: 不詳 | 查看: 241次 | 進入軟件測試論壇討論

    領測軟件測試網
    關鍵字:
     

    用Filter防止用戶訪問一些未被授權的資源,比如一個用戶未登錄就不允許訪問網站的某些頁面,并將頁面重定向到需要用戶登錄的頁面,下面是一個相關的例子:

    package com.drp.util.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 javax.servlet.http.HttpSession; 
    
    public class AuthFilter implements Filter {
    
    public void destroy() {
    
    }
    
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
    FilterChain filterChain) throws IOException, ServletException {
    /** 1,doFilter方法的第一個參數為ServletRequest對象。此對象給過濾器提供了對進入的信息(包括
    *   表單數據、cookie和HTTP請求頭)的完全訪問。第二個參數為ServletResponse,通常在簡單的過
    *   濾器中忽略此參數。最后一個參數為FilterChain,此參數用來調用servlet或JSP頁。
    */
    
    HttpServletRequest request = (HttpServletRequest)servletRequest; 
    /** 如果處理HTTP請求,并且需要訪問諸如getHeader或getCookies等在ServletRequest中
    *   無法得到的方法,就要把此request對象構造成HttpServletRequest
    */
    HttpServletResponse response = (HttpServletResponse)servletResponse;
    
    String currentURL = request.getRequestURI(); //取得根目錄所對應的絕對路徑:
    
    String targetURL = currentURL.substring(currentURL.indexOf("/", 1), 
    currentURL.length()); //截取到當前文件名用于比較
    
    HttpSession session = request.getSession(false); 
    
    if (!"/login.jsp".equals(targetURL)) {
    //判斷當前頁是否是重定向以后的登錄頁面頁面,如果是就不做session的判斷,防止出現死循環
    if (session == null || session.getAttribute("user") == null) {
    //*用戶登錄以后需手動添加session
    System.out.println("request.getContextPath()=" + request.getContextPath()); 
    response.sendRedirect(request.getContextPath() + "/login.jsp"); 
    //如果session為空表示用戶沒有登錄就重定向到login.jsp頁面
    return; 
    }
    }
    //加入filter鏈繼續向下執行
    filterChain.doFilter(request, response); 
    /**  調用FilterChain對象的doFilter方法。Filter接口的doFilter方法取一個FilterChain對象作
    *    為它 的一個參數。在調用此對象的doFilter方法時,激活下一個相關的過濾器。如果沒有另
    *    一個過濾器與servlet或JSP頁面關聯,則servlet或JSP頁面被激活。
    */
    }
    
    public void init(FilterConfig filterConfig) throws ServletException {
    
    }
    }

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: java JAVA Java session Session 權限 應用 Filter

    21/212>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>