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

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

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

    贏在執行

    這個世界上只有兩樣東西愈分享愈多,那就是智慧與愛。

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      17 Posts :: 11 Stories :: 13 Comments :: 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
    ?{
    ?}
    }

    二、檢測用戶是否登陸的過濾器

    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;

    /**
    ?* 用于檢測用戶是否登陸的過濾器,如果未登錄,則重定向到指的登錄頁面<p>
    ?* 配置參數<p>
    ?* checkSessionKey 需檢查的在 Session 中保存的關鍵字<br/>
    ?* redirectURL 如果用戶未登錄,則重定向到指定的頁面,URL不包括 ContextPath<br/>
    ?* notCheckURLList 不做檢查的URL列表,以分號分開,并且 URL 中不包括 ContextPath<br/>
    ?*/
    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;

    /**
    ?* 用于設置 HTTP 請求字符編碼的過濾器,通過過濾器參數encoding指明使用何種字符編碼,用于處理Html Form請求參數的中文問題
    ?*/
    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");

    ?}
    }

    四、資源保護過濾器

    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 2007-01-22 16:59 飛雪(leo) 閱讀(260) 評論(0)  編輯  收藏 所屬分類: JAVA基礎專區

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


    網站導航:
     
    主站蜘蛛池模板: 日韩亚洲产在线观看| 精品久久久久国产免费| 亚洲AV第一成肉网| 亚洲精品高清久久| 亚洲国产精品成人久久蜜臀| 最近免费中文字幕4| 无码A级毛片免费视频内谢| 91av免费在线视频| 亚洲av成本人无码网站| 亚洲乱码在线视频| 亚洲毛片一级带毛片基地| 亚洲乱码无码永久不卡在线| 全亚洲最新黄色特级网站| 午夜免费不卡毛片完整版| 五月亭亭免费高清在线| 久9这里精品免费视频| 国产精品无码免费专区午夜| 大桥未久亚洲无av码在线| 亚洲色大成网站www尤物| 亚洲综合激情另类小说区| 亚洲a在线视频视频| 亚洲AV日韩精品久久久久| 亚洲综合精品香蕉久久网| 中文字幕亚洲激情| 亚洲精品无码久久久久AV麻豆| 全部免费国产潢色一级| 国产jizzjizz免费看jizz| 国产最新凸凹视频免费| 日韩免费在线观看| 国产禁女女网站免费看| 在线播放高清国语自产拍免费| 午夜毛片不卡高清免费| 成在线人永久免费视频播放| 在线观看亚洲免费| 在线观看免费国产视频| 亚洲国产成人久久一区久久 | 亚洲免费在线观看视频| 亚洲白嫩在线观看| 亚洲免费观看在线视频| 亚洲一日韩欧美中文字幕在线| 亚洲熟妇少妇任你躁在线观看|