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

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

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

    JAVA & XML & JAVASCRIPT & AJAX & CSS

    Web 2.0 技術(shù)儲(chǔ)備............

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      77 隨筆 :: 17 文章 :: 116 評(píng)論 :: 0 Trackbacks
    ?一、使瀏覽器不緩存頁(yè)面的過濾器

    import javax.servlet.*;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;

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

    /**
    ?* 用于設(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 2006-03-21 11:50 Web 2.0 技術(shù)資源 閱讀(2023) 評(píng)論(0)  編輯  收藏 所屬分類: JSP & Servlet

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲αⅴ无码乱码在线观看性色| 久久综合图区亚洲综合图区| 亚洲图片校园春色| 久久青草精品38国产免费| 亚洲精品国精品久久99热一| 一级毛片不卡免费看老司机| 亚洲一区精品伊人久久伊人| 日韩电影免费在线观看网址 | 国产精品成人69XXX免费视频| 亚洲成人一区二区| eeuss影院www天堂免费| 亚洲精品成人无限看| 中文字幕乱码免费看电影| 久久亚洲精品成人综合| 永久在线免费观看| 亚洲自国产拍揄拍| 国产精品无码免费视频二三区| 国产精品亚洲а∨无码播放麻豆| 亚洲成AⅤ人影院在线观看| 亚洲精品偷拍视频免费观看| 中文亚洲AV片在线观看不卡| 日韩免费视频一区二区| 久久精品亚洲AV久久久无码| 四虎永久在线精品免费观看地址 | 亚洲人成网站影音先锋播放| 成年网站免费视频A在线双飞| 亚洲一级高清在线中文字幕| 国产一区视频在线免费观看| 97在线免费观看视频| 久久亚洲国产精品成人AV秋霞| 一个人看www在线高清免费看| 国产精品亚洲综合| 亚洲成A人片在线观看无码不卡| 91短视频在线免费观看| 亚洲国产成人综合精品| 国产l精品国产亚洲区在线观看| 99久久精品日本一区二区免费| 香港特级三A毛片免费观看| 亚洲va久久久噜噜噜久久男同| 国内精品免费视频自在线| 精品国产免费一区二区三区|