Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 韩国美女三级韩国a级,性视频一区二区三区免费,久久精品免费视频观看

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          Java Filter過濾器------對未登錄用戶訪問地址的控制

          一、什么是Filter過濾器

          在這里插入圖片描述

          二、 為什么要用Filter過濾器

          場景: 防止用戶未登錄就隨意訪問了網站內部

          在實際場景中,我們在開發完成后,為了保證網站的安全性,只有登錄后才能訪問某些網站內部的頁面,如果不進行一層登錄的過濾,那么任何人都能通過URL來隨意的訪問到網站內部的頁面,這是不合理的。例如此刻的我網站內部一個頁面URL是

          http://localhost:8080/sis/public/page/main.html
          

          但是我想讓只有登錄過的人才能合法的訪問到這個頁面,此時使用Filter過濾器就能解決這個問題。實現邏輯是通過Session信息判斷是否登錄了,如果未登錄就重定向到登錄的首頁。

          其他:通過對JSP、Servlet、靜態圖片文件、或靜態HTML文件進行攔截,以實現URL級別的權限控制、過慮敏感詞匯、壓縮響應信息等一些高級功能。

          三、如何使用 1. 重寫過濾器的三個方法

          public class QuickFilter  implements Filter{
              @Override
              public void init(FilterConfig filterConfig) throws ServletException {
              }
              @Override
              public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
                      throws IOException, ServletException {
                  System.out.println("qucikFilterRunning");
                  //放行請求
                  chain.doFilter(request, response);
              }
              @Override
              public void destroy() {
              }
          }
          

          java 過濾器實現登錄_登錄過濾器怎么寫_過濾器登錄狀態才能操作

          三個方法都是可以表現 Filter 生命周期的方法,其中 init() 方法在 Web 應用程序加載時會被調用,destroy() 方法在 Web 應用程序卸載(或關閉)時被調用,這兩個方法都只會被調用一次,而 () 方法會被調用多次(只要客戶端有請求時就會被調用),Filter 所有的工作集中在 () 方法中。

          2.使用案例

          防止未登錄用戶訪問到網站內部頁面,未登錄的情況下訪問,會進行一個重定向跳轉到登錄頁面。而請求后端非登錄接口,不允許訪問,一律設置為401

           @WebFilter("/*")//模糊匹配 所以的路徑都會過濾 
          public class LoginFilter implements Filter {
              @Override
              public void init(FilterConfig filterConfig) throws ServletException {
              }
              @Override
          /**  只要是匹配到了路徑,①都先執行doFilter ,②再去執行Servlet*/
              public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
                  HttpServletRequest req = (HttpServletRequest) servletRequest;
                  HttpServletResponse res = (HttpServletResponse) servletResponse;
                  String uri = req.getServletPath();
          // 校驗:①前端html攔截    ②非前端的就是后臺接口,除了登錄接口之外
                  HttpSession session = req.getSession(false);//沒有session時候 返回null
                  if (session == null) { //沒有登錄
                      //首頁重定向到登錄頁面
                      if (  "/public/page/main.html".equals(uri) ) {
                          res.setContentType("text/html;charset= UTF-8");
          //開始重定向
                          String schema = req.getScheme();//HTTP
                          String host = req.getServerName();//服務器ip
                          int port = req.getServerPort();//端口號
                          String ctx = req.getContextPath();//項目部署路徑 應用上下文 sis
                          // 錯誤寫法①res.sendRedirect("/public/page/main.html");②res.sendRedirect("public/page/main.html");
          

          過濾器登錄狀態才能操作_java 過濾器實現登錄_登錄過濾器怎么寫

          String basePath = schema+"://"+host+":"+port+ctx; res.sendRedirect(basePath+"/public/index.html");//正確寫法 return; //請求后端非登錄接口, 未登錄不允許訪間的請求,一般返回401狀態碼 }else if ( (!uri.startsWith("/public/") && !uri.startsWith("/static/") && !"/user/login".equals(uri))) { res.setContentType("application/json"); PrintWriter pw = res.getWriter(); Response r = new Response(); r.setCode("ERR401"); r.setMessage("不允許訪問"); res.setStatus(401);//設置響應的狀態碼 pw.println(JSONUtil.write(r)); //響應打到前端 pw.flush(); return; } } filterChain.doFilter( servletRequest,servletResponse); } @Override public void destroy() { } }


          主站蜘蛛池模板: 国产精久久一区二区三区| 无码人妻精品一区二区三区夜夜嗨 | 中文字幕无线码一区二区| 亚洲AⅤ无码一区二区三区在线 | 亚洲国产精品一区二区久久| 无码国产精品一区二区免费I6| 国产精品一区二区三区免费| 国产成人久久精品区一区二区| 国产乱码精品一区二区三 | 国产成人精品一区二三区在线观看| 亚洲码欧美码一区二区三区| 久久精品视频一区| 美女视频在线一区二区三区| 一区精品麻豆入口| 久久婷婷色综合一区二区| 国产一区二区精品在线观看| 免费看无码自慰一区二区| 亚洲精品国产suv一区88| 天堂一区二区三区在线观看| 一色一伦一区二区三区| 国产小仙女视频一区二区三区 | 久久一区二区精品| 一区二区在线观看视频| 日韩亚洲AV无码一区二区不卡| 国产一区二区内射最近更新| 国产内射在线激情一区| 久久无码人妻一区二区三区午夜 | 精品无码中出一区二区| 日本一区二区三区在线观看视频| 美日韩一区二区三区| 午夜一区二区免费视频| 亚洲第一区精品日韩在线播放| 国产AV国片精品一区二区| 超清无码一区二区三区| 亚洲av无码不卡一区二区三区| 中文字幕一区二区三区精彩视频 | 一区精品麻豆入口| 久久久久人妻精品一区蜜桃| 久久er99热精品一区二区| 亲子乱av一区区三区40岁| 福利片福利一区二区三区|