<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      37 Posts :: 64 Stories :: 21 Comments :: 0 Trackbacks

    Filter作用 :
     每當使用應用服務器頁面或servlet的時候,應用服務器就會根據web.xml里面配置的filter 去進行過濾理。
     
    調用處理過程就是:
     1.接受request->去處理第一個filter.init-> 處理第一個filter.doFilter
     2.如果不想繼續使用filter過濾就在filter.doFilter中使用 return
      3.如果要繼續使用filter過濾就filter.doFilter中 chain.doFilter(servletRequest, servletResponse);

    使用例子:
      1.web.xml配置
      <filter>
            <filter-name>Filter_name</filter-name>
            <filter-class>Filter_class_name</filter-class>
            <init-param>
                <description>set 'true' to enable the filter</description>
                <param-name>enabled</param-name>
                <param-value>true</param-value>
            </init-param>
      <init-param>
             <param-name>excepts</param-name>
       <param-value>Excepts_Path</param-value>
            </init-param>
        </filter>
     <filter-mapping>
         <filter-name>Filter_name</filter-name>
         <url-pattern>filter_path</url-pattern>
        </filter-mapping>
        <filter-mapping>
            <filter-name>Filter_name</filter-name>
            <url-pattern>filter_path</url-pattern>
        </filter-mapping>

       2、java代碼
     
     2.1 init 函數
     public void init(FilterConfig filterConfig) throws ServletException {

            //檢查是否打開SSOFilter功能
            String _enable = filterConfig.getInitParameter("enabled");
            if (_enable != null && "true".equalsIgnoreCase(_enable)) {
                enabled = true;
            }

            //初始化例外列表,即不經過SSOFilter的請求地址
            String _exceptStr = filterConfig.getInitParameter("excepts");
            if (_exceptStr != null) {
                String[] _excepts = _exceptStr.split(",");
                for (int i = 0; i < _excepts.length; i ++) {
                    excepts.add(_excepts[i]);
                }
            }
          }
     
     2.2 doFilter函數
     public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
                             FilterChain chain) throws IOException, ServletException {

            HttpServletRequest request = (HttpServletRequest) servletRequest;
            HttpServletResponse response = (HttpServletResponse) servletResponse;
            String path = request.getServletPath();

            /**
             * 當WEB程序啟了SSOFilter,并且請求的路徑沒被配置為例外時,
             * 檢查用戶是否已通過統一用戶平臺登錄,已登錄的話創建會話,否則轉到統一登錄頁面。
             */
            if (enabled && !excepts.contains(path)) {

                if (logger.isDebugEnabled()) {
                    logger.debug("check member has signoned ...");
                }

                boolean signOned = SSOHelper.hasSignOned(request, response);

                if (logger.isDebugEnabled()) {
                    logger.debug("Signoned? " + signOned);
                }

                if (!signOned) {
                    String SSOContextUri = SysParamHelper.getSysParam(SysParamConstants.CONTEXT_URI_SSO);
                    StringBuffer url = new StringBuffer(SSOContextUri);
                    url.append("/Login");
                    //記住入口地址
                    url.append("?entrance=");
                    url.append(request.getRequestURL());
                    if (request.getQueryString() != null) {
                        url.append("|");
                        url.append(request.getQueryString());
                    }
                    response.sendRedirect(url.toString());
                    return;
                }
            }
             chain.doFilter(servletRequest, servletResponse);
           }

    posted on 2009-09-22 11:06 xiachang88 閱讀(585) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 日韩欧毛片免费视频| 一级毛片成人免费看免费不卡| 在线观看成人免费视频不卡| 五月天网站亚洲小说| 日本卡1卡2卡三卡免费| 亚洲AV日韩AV鸥美在线观看| 精品国产免费一区二区三区香蕉 | 亚洲人成人网站色www| 日日狠狠久久偷偷色综合免费| 四虎永久精品免费观看| 国产精品国产亚洲区艳妇糸列短篇| 免费看片免费播放| 亚洲av无码一区二区三区四区| 国产精品无码一二区免费| 免费视频精品一区二区| 伊人亚洲综合青草青草久热| 伊人免费在线观看| 亚洲精品午夜久久久伊人| 毛片免费全部免费观看| 亚洲AⅤ男人的天堂在线观看| 亚洲国产一区二区三区| a在线观看免费网址大全| 亚洲黄色在线观看网站| 日本免费的一级v一片| 一级毛片高清免费播放| 久久亚洲精品中文字幕| 国产香蕉九九久久精品免费| 九九精品国产亚洲AV日韩| 国产成人综合亚洲亚洲国产第一页| 国产自国产自愉自愉免费24区| 亚洲黄网站wwwwww| 国产精品免费看香蕉| 东方aⅴ免费观看久久av| 亚洲一区中文字幕在线观看| 国产麻豆免费观看91| 中文无码成人免费视频在线观看| 亚洲国产精品日韩在线| 亚洲国模精品一区| 日日麻批免费40分钟日本的| 边摸边吃奶边做爽免费视频99 | 国产精品久久久久久久久免费|