亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Java Web開發技術應用——過濾器

難度初級
時長 1小時40分
學習人數
綜合評分9.53
339人評價 查看評價
9.8 內容實用
9.5 簡潔易懂
9.3 邏輯清晰
  • @JAVA過濾機制——過濾簡介 1、過濾器三部分:過濾源(用戶請求)——>過濾規則——>過濾結果 2、過濾器不處理結果,只做輔助性操作 3、定義:過濾器是一個【服務器端】的組件,它可以【截取用戶端的請求和響應信息】,并對這些信息過濾 4.案列:登錄案例、編碼轉換案例

    查看全部
  • 四種不同過濾器,通過四種不同標簽,在xml中做標記就可以實現不同的監聽


    查看全部
  • 用Filter處理編碼問題:

    ????在過濾器中添加:

    ????????request.setCharacterEncoding("utf-8");

    ????或者:在web.xml中配置初始化參數

    ????????https://img1.sycdn.imooc.com//5c8a018900013ba106990045.jpg

    查看全部
    0 采集 收起 來源:編碼轉換案例

    2019-03-14

  • 登錄案例中的放行:

    https://img1.sycdn.imooc.com//5c89fef8000111a007870236.jpg

    查看全部
    0 采集 收起 來源:登錄案例

    2019-03-14

  • Servlet3.0支持注解形式的Filter

    https://img1.sycdn.imooc.com//5c89f24e0001516e10710151.jpg

    https://img1.sycdn.imooc.com//5c89f2800001eae810330616.jpg

    查看全部
  • 過濾器的實現:

    ????① 實現Filter接口

    ????② 在web.xml中配置過濾器

    https://img1.sycdn.imooc.com//5c88d0df0001562509940543.jpg

    查看全部
  • 過濾器常見的使用場景

    查看全部
    0 采集 收起 來源:登錄案例

    2019-03-11

  • web.xml配置

    查看全部
  • 過濾器可以改變用戶請求的web資源,可以改變用戶請求的路徑(跳轉);

    過濾器不能直接返回數據,不能直接處理用戶請求;

    查看全部
  • 過濾器工作原理:

    https://img1.sycdn.imooc.com//5c52683b0001b0c316380974.jpg

    過濾器生命周期:

    https://img1.sycdn.imooc.com//5c5268f90001f37f14060974.jpg

    過濾器鏈:

    https://img1.sycdn.imooc.com//5c5269290001c35414060974.jpg

    過濾器的分類:

    https://img1.sycdn.imooc.com//5c52695e00014b0314060974.jpg

    查看全部
    0 采集 收起 來源:總結

    2019-01-31

  • 在web.xml中配置
    <filter>
    ??? <filter-name>LoginFilter</filter-name>
    ??? <filter-class>com.filter.LoginFilter</filter-class>
    ??? <!-- 指定部分頁面,在代碼中實現對這些頁面放行 -->
    ??? <init-param>
    ????? <param-name>noLoginPaths</param-name>
    ????? <param-value>index.jsp;login.jsp;LoginServlet;fail.jsp</param-value>
    ??? </init-param>
    ??? <init-param>
    ????? <param-name>charset</param-name>
    ????? <param-value>UTF-8</param-value>
    ??? </init-param>
    </filter>

    在Filter中
    private FilterConfig config = null;

    public void init(FilterConfig arg0) throws ServletException {
    ?config = arg0; // 將實例化時的init-param存入config
    }

    public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
    ???throws IOException, ServletException {
    ?String charset = config.getInitParameter("charset"); // 從config中獲得字符集
    ??? if(charset==null){
    ????? charset = "UTF-8";
    ??? }
    ??? request.setCharacterEncoding(charset); // 設定字符集為UTF-8
    }

    編碼轉換 ? ? 字符集轉換防止亂碼

    使用: request.setCharacterEncoding("config.getInitParameter("XX")")

    ?XX參數內容“UTF-8”

    查看全部
    0 采集 收起 來源:編碼轉換案例

    2019-01-31

  • @WebFilter注解的常用屬性:

    https://img1.sycdn.imooc.com//5c50156d0001a12414060974.jpg


    查看全部
  • Servelt2.5:過濾器的分類:

    https://img1.sycdn.imooc.com//5c5014da0001e22114060974.jpg

    https://img1.sycdn.imooc.com//5c5015050001e37514060974.jpg

    https://img1.sycdn.imooc.com//5c5015210001dafb14060974.jpg


    查看全部
  • 過濾器分類(通過<dispatcher>標簽)
    通過<dispatcher>標簽的值不同把過濾器分類.此標簽中有四個值可以選擇,可以同時選擇多個.
    包括request、forword、include、error

    假設同一個過濾器關聯了index.jsp與main.jsp.此過濾器的<dispatcher>標簽值為request.
    在過濾器中的doFilter()方法中
    public void doFilter(ServletRequest req,ServletResponse rep,FilterChain chain){
    HttpServletRequest request=(HttpServletRequest)req;
    HttpServletResponse response=(HttpServletResponse)rep;
    response.sendRedirect(request.getContextPath()+"/main.jsp");
    }
    當用戶訪問index.jsp頁面時,便會被過濾器截取.并執行doFilter()方法中的重定向去main.jsp頁面.但main.jsp也關聯了此過濾器,過濾器會截取到重定向新Web資源的請求.因此又會調用doFilter()方法中的重定向去main.jsp.所以是死循環的狀態.

    因為重定向是屬于request的行為.因此會被<dispatcher>標簽值為request的過濾器截取到.即<dispatcher>標簽值為request的過濾器可以截取重定向新Web資源的請求.

    當過濾器的doFilter()方法中用 request.getRequestDispatcher("/main.jsp").forward(arg0, arg1)請求轉發到main.jsp.此時當用戶請求訪問index.jsp時,便會被過濾器截取,并且執行doFilter()方法,然后請求轉發到main.jsp頁面.此時用戶可以訪問到main.jsp頁面,并沒有被過濾器截取.因為請求轉發屬于forward行為.因此<dispatcher>標簽值為request的過濾器是截取不了通過請求轉發去新Web資源的請求.盡管<url-pattern>設置了main.jsp關聯過濾器,但仍然截取不了.

    請求轉發:瀏覽器的地址欄不會變化,性能相對更好一些,因為獲取的資源是沒有二次講過瀏覽器的<br><br>
    重定向:瀏覽器的地址欄是會變化的,獲取資源的時候經過了二次通過瀏覽器發送請求的過程。

    1.請求轉發
    請求轉發是指將請求再轉發到另一資源(一般為JSP或Servlet)。此過程依然在同一個請求范圍內,轉發后瀏覽器地址欄內容不變
    請求轉發使用RequestDispatcher接口中的forward()方法來實現,該方法可以把請求轉發到另外一個資源,并讓該資源對瀏覽器的請求進行響應
    RequestDispatcher rd = request.getRequestDispatcher(path); rd.forward(request,response);
    或request.getRequestDispatcher(path) .forward(request,response);

    2.重定向
    重定向是指頁面重新定位到某個新地址,之前的請求失效,進入一個新的請求,且跳轉后瀏覽器地址欄內容將變為新的指定地址
    重定向是通過HttpServletResponse對象的sendRedirect()來實現,該方法相當于瀏覽器重新發送一個請求
    response.sendRedirect(path);

    forward轉發 :一次請求一次回應 服務器跳轉
    sendredirect重定向: 兩次請求兩次回應 客戶端跳轉

    由于sendredirect是request,會激活REQUEST類型的過濾器,因此要注意,是否會形成重定向循環

    request 過濾request請求
    forward 過濾重定向請求
    include 過濾include請求

    查看全部
  • 過濾器鏈的執行過程:

    用戶請求-->過濾器1-->過濾器2-->servlet service-->過濾器2-->過濾器1-->用戶

    https://img1.sycdn.imooc.com//5c4ee47c0001b11616380974.jpg


    查看全部

舉報

0/150
提交
取消
課程須知
童鞋們,過濾器是Java Web開發的內容。學習前需要掌握Java基礎知識、并熟悉JSP和Servlet。如未學習上述知識,可移步網站相關課程。
老師告訴你能學到什么?
通過本課程的學習,你可以了解過濾器的基礎知識,并可以自己動手編寫過濾器。

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!