銀色幻想

          常用鏈接

          統計

          積分與排名

          學習交流

          最新評論

          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)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 闽清县| 林州市| 莒南县| 连山| 大宁县| 香河县| 商洛市| 阿拉善左旗| 西宁市| 白山市| 青岛市| 枣庄市| 巫溪县| 黔西县| 万源市| 大余县| 大安市| 天津市| 门头沟区| 囊谦县| 石阡县| 苍山县| 湾仔区| 东阿县| 吴忠市| 乌兰察布市| 买车| 资兴市| 伊吾县| 滕州市| 石渠县| 朝阳区| 岳西县| 邵阳县| 兴仁县| 蓬溪县| 温宿县| 海晏县| 镇原县| 灵寿县| 云龙县|