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

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

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

    Kevin.Zhong

    彪悍的人生不需要解釋,彪悍的代碼不需要測(cè)試。

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      17 隨筆 :: 12 文章 :: 14 評(píng)論 :: 0 Trackbacks
    一、使瀏覽器不緩存頁面的過濾器     
    import javax.servlet.*;    
    import javax.servlet.http.HttpServletResponse;    
    import java.io.IOException;    
       
    /**   
    * 用于的使 Browser 不緩存頁面的過濾器   
    */   
    public class ForceNoCacheFilter implements Filter {    
       
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException    
    {    
        ((HttpServletResponse) response).setHeader(
    "Cache-Control","no-cache");    
        ((HttpServletResponse) response).setHeader(
    "Pragma","no-cache");    
        ((HttpServletResponse) response).setDateHeader (
    "Expires"-1);    
        filterChain.doFilter(request, response);    
    }    
       
    public void destroy()    
    {    
    }    
       
          
    public void init(FilterConfig filterConfig) throws ServletException    
    {    
    }    
    }    
       
    二、檢測(cè)用戶是否登陸的過濾器    
       
    import javax.servlet.*;    
    import javax.servlet.http.HttpServletRequest;    
    import javax.servlet.http.HttpServletResponse;    
    import javax.servlet.http.HttpSession;    
    import java.util.List;    
    import java.util.ArrayList;    
    import java.util.StringTokenizer;    
    import java.io.IOException;    
       
    /**   
    * 用于檢測(cè)用戶是否登陸的過濾器,如果未登錄,則重定向到指的登錄頁面    
      
      
    * 配置參數(shù)    
      
      
    * checkSessionKey 需檢查的在 Session 中保存的關(guān)鍵字   
      
    * redirectURL 如果用戶未登錄,則重定向到指定的頁面,URL不包括 ContextPath   
      
    * notCheckURLList 不做檢查的URL列表,以分號(hào)分開,并且 URL 中不包括 ContextPath   
      
    */   
    public class CheckLoginFilter    
    implements Filter    
    {    
          
    protected FilterConfig filterConfig = null;    
          
    private String redirectURL = null;    
          
    private List notCheckURLList = new ArrayList();    
          
    private String sessionKey = null;    
       
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException    
    {    
        HttpServletRequest request 
    = (HttpServletRequest) servletRequest;    
        HttpServletResponse response 
    = (HttpServletResponse) servletResponse;    
       
         HttpSession session 
    = request.getSession();    
        
    if(sessionKey == null)    
        {    
         filterChain.doFilter(request, response);    
         
    return;    
        }    
        
    if((!checkRequestURIIntNotFilterList(request)) && session.getAttribute(sessionKey) == null)    
        {    
         response.sendRedirect(request.getContextPath() 
    + redirectURL);    
         
    return;    
        }    
        filterChain.doFilter(servletRequest, servletResponse);    
    }    
       
    public void destroy()    
    {    
        notCheckURLList.clear();    
    }    
       
    private boolean checkRequestURIIntNotFilterList(HttpServletRequest request)    
    {    
        String uri 
    = request.getServletPath() + (request.getPathInfo() == null ? "" : request.getPathInfo());    
        
    return notCheckURLList.contains(uri);    
    }    
       
    public void init(FilterConfig filterConfig) throws ServletException    
    {    
        
    this.filterConfig = filterConfig;    
        redirectURL 
    = filterConfig.getInitParameter("redirectURL");    
        sessionKey 
    = filterConfig.getInitParameter("checkSessionKey");    
       
        String notCheckURLListStr 
    = filterConfig.getInitParameter("notCheckURLList");    
       
        
    if(notCheckURLListStr != null)    
        {    
         StringTokenizer st 
    = new StringTokenizer(notCheckURLListStr, ";");    
         notCheckURLList.clear();    
         
    while(st.hasMoreTokens())    
         {    
          notCheckURLList.add(st.nextToken());    
         }    
        }    
    }    
    }    
       
    三、字符編碼的過濾器    
       
    import javax.servlet.*;    
    import java.io.IOException;    
       
    /**   
    * 用于設(shè)置 HTTP 請(qǐng)求字符編碼的過濾器,通過過濾器參數(shù)encoding指明使用何種字符編碼,用于處理Html Form請(qǐng)求參數(shù)的中文問題   
    */   
    public class CharacterEncodingFilter    
    implements Filter    
    {    
    protected FilterConfig filterConfig = null;    
    protected String encoding = "";    
       
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException    
    {    
              
    if(encoding != null)    
               servletRequest.setCharacterEncoding(encoding);    
              filterChain.doFilter(servletRequest, servletResponse);    
    }    
       
    public void destroy()    
    {    
        filterConfig 
    = null;    
        encoding 
    = null;    
    }    
       
          
    public void init(FilterConfig filterConfig) throws ServletException    
    {    
               
    this.filterConfig = filterConfig;    
              
    this.encoding = filterConfig.getInitParameter("encoding");    
       
    }    
    }    
       
    四、資源保護(hù)過濾器    
       
       
    package catalog.view.util;    
       
    import javax.servlet.Filter;    
    import javax.servlet.FilterConfig;    
    import javax.servlet.ServletRequest;    
    import javax.servlet.ServletResponse;    
    import javax.servlet.FilterChain;    
    import javax.servlet.ServletException;    
    import javax.servlet.http.HttpServletRequest;    
    import java.io.IOException;    
    import java.util.Iterator;    
    import java.util.Set;    
    import java.util.HashSet;    
    //    
    import org.apache.commons.logging.Log;    
    import org.apache.commons.logging.LogFactory;    
       
    /**   
    * This Filter class handle the security of the application.   
    *    
    * It should be configured inside the web.xml.   
    *    
    @author Derek Y. Shen   
    */   
    public class SecurityFilter implements Filter {    
    //the login page uri    
    private static final String LOGIN_PAGE_URI = "login.jsf";    
         
    //the logger object    
    private Log logger = LogFactory.getLog(this.getClass());    
         
    //a set of restricted resources    
    private Set restrictedResources;    
         
    /**   
       * Initializes the Filter.   
       
    */   
    public void init(FilterConfig filterConfig) throws ServletException {    
       
    this.restrictedResources = new HashSet();    
       
    this.restrictedResources.add("/createProduct.jsf");    
       
    this.restrictedResources.add("/editProduct.jsf");    
       
    this.restrictedResources.add("/productList.jsf");    
    }    
         
    /**   
       * Standard doFilter object.   
       
    */   
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)    
        
    throws IOException, ServletException {    
       
    this.logger.debug("doFilter");    
          
       String contextPath 
    = ((HttpServletRequest)req).getContextPath();    
       String requestUri 
    = ((HttpServletRequest)req).getRequestURI();    
          
       
    this.logger.debug("contextPath = " + contextPath);    
       
    this.logger.debug("requestUri = " + requestUri);    
          
       
    if (this.contains(requestUri, contextPath) && !this.authorize((HttpServletRequest)req)) {    
        
    this.logger.debug("authorization failed");    
        ((HttpServletRequest)req).getRequestDispatcher(LOGIN_PAGE_URI).forward(req, res);    
       }    
       
    else {    
        
    this.logger.debug("authorization succeeded");    
        chain.doFilter(req, res);    
       }    
    }    
         
    public void destroy() {}     
         
    private boolean contains(String value, String contextPath) {    
       Iterator ite 
    = this.restrictedResources.iterator();    
          
       
    while (ite.hasNext()) {    
        String restrictedResource 
    = (String)ite.next();    
           
        
    if ((contextPath + restrictedResource).equalsIgnoreCase(value)) {    
         
    return true;    
        }    
       }    
          
       
    return false;    
    }    
         
    private boolean authorize(HttpServletRequest req) {    
       
                   
    //處理用戶登錄    
            /* UserBean user = (UserBean)req.getSession().getAttribute(BeanNames.USER_BEAN);   
         
       if (user != null && user.getLoggedIn()) {   
        //user logged in   
        return true;   
       }   
       else {   
        return false;   
       }
    */   
    }    
    }    
    posted on 2008-10-20 15:06 Kevin.Zhong 閱讀(107) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 国产精品免费αv视频| 97碰公开在线观看免费视频| 亚洲AV无码成人精品区天堂 | 久久亚洲中文字幕精品一区| 久久一区二区免费播放| 亚洲电影在线播放| 日韩一区二区在线免费观看| 国产真人无码作爱免费视频| 亚洲六月丁香六月婷婷蜜芽| 9420免费高清在线视频| 亚洲人成网址在线观看| 免费观看在线禁片| 亚洲人成图片小说网站| 中文在线观看永久免费| 中文字幕无码亚洲欧洲日韩| 无码人妻一区二区三区免费n鬼沢| 亚洲人成无码网站久久99热国产| 香蕉视频在线观看免费| 亚洲精品视频免费看| 国产一区二区免费在线| 8090在线观看免费观看| 最好2018中文免费视频| 亚洲国产精品综合久久网络| 亚洲综合免费视频| EEUSS影院WWW在线观看免费| 国产自偷亚洲精品页65页| 在线免费观看伊人三级电影| 亚洲成AV人片在线观看ww| 国产成人精品123区免费视频| 国产成人综合亚洲| 亚洲制服在线观看| 亚洲日本乱码在线观看| 国产jizzjizz视频免费看| h视频在线观看免费网站| 91免费国产视频| 一级看片免费视频| 欧美色欧美亚洲另类二区| 亚洲xxxx视频| 亚洲国产成人精品无码一区二区| 日本视频免费在线| 一二三四视频在线观看中文版免费|