麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

網站過濾器Filter

2019-11-10 20:33:41
字體:
來源:轉載
供稿:網友

——過濾器使用已經很久了,今天遇到了一個小問題,也就想順便寫一個關于過濾器的博文,記錄一下自己使用的感受。

        實際上,Filter與Servlet及其相似,區別只是FIlter的doFilter()方法里多了一個FilterChain的參數,通過該參數可以控制是否放行用戶的請求。網站有了過濾器十分的方便,可以通過過濾器來過濾這個用戶是否已經登陸,如果沒有登陸,那么將限制TA的訪問權限,而且過濾器的設置以及配置都比較簡單。下面通過一個登陸過濾器的代碼簡單說一下過濾器的使用:

[java] view plain copy PRint?/**  *登陸過濾器  */    public class LoginFilter implements Filter {        @Override      public void destroy() {        }      @Override      public void doFilter(ServletRequest req, ServletResponse resp,              FilterChain chain) throws IOException, ServletException {          HttpServletRequest hsq = (HttpServletRequest)req;          //取得session中的loginUser對象          User user = (User)hsq.getSession().getAttribute("loginUser");          if(user==null || "".equals(user)){              //如果用戶沒有登錄,那么將會直接跳轉到登陸頁面              ((HttpServletResponse)resp).getWriter().write("<scrjsp'</script>");  //          ((HttpServletResponse)resp).sendRedirect("/index.jsp");                        }else{              chain.doFilter(req, resp);          }      }      @Override      public void init(FilterConfig arg0) throws ServletException {        }    }   

         上面的這個過濾器就會過濾掉所有未登陸的用戶,讓TA們跳轉到登陸頁面去登陸。如果要這個登陸過濾器起作用,還需要在web.xml文件中進行配置:

[html] view plain copy print?<!-- 配置過濾器 -->    <filter>      <filter-name>LoginFilter</filter-name>      <filter-class>com.common.LoginFilter</filter-class>    </filter>    <filter-mapping>      <filter-name>LoginFilter</filter-name>      <url-pattern>/user/*</url-pattern>    </filter-mapping>           此處表示這個任何用戶訪問/user/*下面的路徑將會通過此過濾器,如果沒有登陸,SESSION中沒有user,那么將會跳轉到登陸頁面。如果需要對多個地址進行配置(在SSM框架中,需要對每個控制器進行配置),那么正確的配置方法是(N個一樣的):

[html] view plain copy print?<filter>      <filter-name>LoginFilter</filter-name>      <filter-class>com.common.LoginFilter</filter-class>    </filter>    <filter-mapping>      <filter-name>LoginFilter</filter-name>      <url-pattern>/user/*</url-pattern>    </filter-mapping>    <filter-mapping>      <filter-name>LoginFilter</filter-name>      <url-pattern>/abc/*</url-pattern>    </filter-mapping>           不知道大家有沒有注意到上面過濾器的這行被注釋的代碼,正常情況下使用此代碼就可以完成跳轉任務:

((HttpServletResponse)resp).sendRedirect("/index.jsp");

         而下面這行代碼是:

((HttpServletResponse)resp).getWriter().write("<script>window.parent.location.href='/index.jsp'</script>");

         最下面這行代碼就是為了解決我這次遇到的小問題的。因為需要調整的頁面是frameset框架的,所以有很多鏈接定義為跳轉到框架下的某個地方,這樣如果使用上面的那種跳轉,將會是局部跳轉,達不到應有的效果,只有使用下面的方式返回一句js代碼,然后執行,整體跳轉,這樣才能滿足效果。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91在线播放国产 | 久久99精品久久久久久国产越南 | 91 免费看片 | 性aaa| 久久在现视频 | 精品国产一区二区三区四 | 午夜天堂在线视频 | chengrenyingshi | 男女无套免费视频 | 在线观看一区二区三区四区 | 久久久久久三区 | 免费看成人av | 黄色网欧美 | 精品国产一区二区三区四区在线 | 日本最新免费二区三区 | 国产精品jk白丝蜜臀av软件 | 少妇淫片免费一级毛片 | 黄视频网站免费在线观看 | 久久久久久久一区二区 | 日本高清无遮挡 | 91 在线 | 91 免费看片 | 久色网站 | 欧美一级高潮片免费的 | 精品久久一区二区三区 | 久久午夜神器 | 久草在线资源观看 | 特级黄色影院 | 精品人成 | 精品久久久久久久久久久久久久久久久久久 | 一级一级一级毛片 | 最新av免费网址 | 激情宗合网 | wwwxxx国产 | 久久人人av | 亚洲成在人 | 在线观看免费av网 | 日本高清黄色片 | 成年人国产视频 | 午夜视频在线免费 | 国色天香综合网 |