銀色幻想

          常用鏈接

          統計

          積分與排名

          學習交流

          最新評論

          Servlet過濾器

          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");

          ?}
          }

          posted on 2006-04-17 09:36 銀色幻想 閱讀(174) 評論(0)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 巴东县| 北宁市| 辰溪县| 永城市| 固阳县| 大埔区| 甘谷县| 思南县| 措美县| 调兵山市| 慈利县| 浦北县| 乌鲁木齐县| 宣威市| 淳化县| 洪雅县| 富顺县| 团风县| 蒙阴县| 鄂尔多斯市| 通城县| 炉霍县| 泰来县| 旺苍县| 隆回县| 牙克石市| 津南区| 沂南县| 临夏市| 新建县| 昭觉县| 平泉县| 修水县| 丘北县| 西青区| 呼伦贝尔市| 安仁县| 桃源县| 株洲市| 邻水| 永兴县|