第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

Java Web開發(fā)技術(shù)應(yīng)用——過濾器

難度初級
時長 1小時40分
學(xué)習(xí)人數(shù)
綜合評分9.53
339人評價 查看評價
9.8 內(nèi)容實用
9.5 簡潔易懂
9.3 邏輯清晰
  • 1、HttpRequest和ServletRequest區(qū)別
    2、FilterInit(FilterConfig)初始化的用法
    3、requset.getRequestURI()???????? //獲取請求頁面的相對路徑
    4、String的方法str.indexOf("XXX")??? //獲取str內(nèi)容"XXX"在那個位置第一位為0
    5、String的方法str.split(";")??? //才分str為多個string,以";"為才分線

    request.getContextPath();
    save user info to session
    在doFilter中獲得ServletRequest convert to HttpServletRequest之后,request.getSession,接著在獲得的session中設(shè)置

    過濾的黑名單和白名單需要在FitlerConfig中配置
    對于白名單放行
    if true chain.doFilter
    黑名單跳轉(zhuǎn)到相應(yīng)的處理頁面
    else response.sendRedirect

    FilterConfig配置
    filter url:/*(*號是全匹配)
    request.getRequestURI();(獲得當(dāng)前request請求的URI地址,用于判斷是否合法請求)
    使用參數(shù)配置->init()->config.getInitParameter(name)(獲得FilterConfig)

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

    2018-04-18

  • 1.概念:過濾器是一個服務(wù)器上的組件,它可以截取用戶端的請求和相應(yīng)信息,并對這些信息過濾<br>
    2.工作原理:<br>
    用戶請求——》xml文件中如果過濾器可以匹配則截取,否則不走過濾器——》過濾器放行方法之前的代碼——》web資源——》web的響應(yīng)返回到過濾器,然后過濾器執(zhí)行方興方法之后的代碼——》過濾器把web的響應(yīng)返回給用戶<br>
    <br>
    <br>
    3.過濾器的生命周期:
    實例化:web容器加載過濾器的配置信息<br>
    初始化:filterServlet中的init()方法獲得配置信息,放到filterConfig對象里面<br>
    private FilterConfig cf;<br>
    public void init(FilterConfig arg0) throws ServletException {<br>
    cf = arg0;<br>
    }<br>
    過濾 :進行過濾操作<br>
    銷毀:執(zhí)行完畢銷毀<br>
    <br>
    <br>
    4.過濾器的API:
    5.多個過濾器(過濾器鏈)<br>

    <br>
    6.過濾器分類<br>
    <br>

    7.過濾器實例:登錄過濾器和編碼過濾器

    查看全部
    0 采集 收起 來源:總結(jié)

    2018-04-18

  • 我來說說我對異步過濾器的理解吧。根據(jù)過濾器的規(guī)則,過濾器得等servlet執(zhí)行結(jié)束才能停止,所以如果servlet執(zhí)行很久,過濾器得等很久,所以說呢,為了使得過濾器早點執(zhí)行結(jié)束,就讓servlet在后臺執(zhí)行,過濾器提前結(jié)束,這就是異步過濾器的優(yōu)點所在
    @WebServlet(asyncSupported = true, displayName = "/AsyncServlet", urlPatterns={"/servlet/AsyncServlet"})

    asyncSupported = true 是必須開啟用以支持異步

    @WebFilter(filterName="AsynFilter",asyncSupported=true,value={"/servlet/AsyncServlet"},dispatcherTypes={DispatcherType.REQUEST,DispatcherType.ASYNC})


    asyncSupported = true 是必須開啟用以支持異步
    dispatcherTypes={DispatcherType.REQUEST,DispatcherType.ASYNC}
    DispatcherType.REQUEST必須要加上,否則過濾器就不會生效了

    同時注意在過濾的地址和servlet的地址必須相同

    查看全部
  • request ? ?用戶直接訪問頁面時(eg:請求response.sendredirect請求重定向),Web容器將會調(diào)用過濾器
    ? ? forward ? 目標(biāo)資源通過RequestDispatcher的forward訪問時,該過濾器被調(diào)用 ?<jsp:forward也能觸發(fā)
    ? ? include ? ?目標(biāo)資源通過RequestDispatcher的include訪問時,該過濾器被調(diào)用 ? <jsp:include也能觸發(fā) ? ?
    ? ? error ? ? ? ?目標(biāo)資源通過聲明式處理機制調(diào)用時,該過濾器被調(diào)用

    <error-page>
    ??? <error-code>404</error-code>//500
    ??? <location>/error.jsp</location>
    ??? </error-page>
    <filter>
    ??????? <filter-name>ErrorFilter</filter-name>
    ??????? <filter-class>com.imooc.filter.ErrorFilter</filter-class>
    ??? </filter>
    ??? <filter-mapping>
    ??????? <filter-name>ErrorFilter</filter-name>
    ??????? <url-pattern>/error.jsp</url-pattern>
    ??????? <dispatcher>ERROR</dispatcher>
    ??? </filter-mapping>

    @error.jsp
    您輸入的路徑有誤!

    @ErrorFilter.java
    public void doFilter(ServletRequest servletrequest,
    ServletResponse servletresponse, FilterChain filterchain)
    throws IOException, ServletException {
    System.out.println("檢測到有錯誤的信息!");
    filterchain.doFilter(servletrequest, servletresponse);//注意:放行
    }
    Servlet3.0中加入了@引言的這種方式.

    @WebFilter用來將一個類聲明為過濾器,該注解將會在部署時被容器處理,容器將根據(jù)具體的屬性配置將相應(yīng)的類部署為過濾器.(部署理解為項目發(fā)布,就會把Web.xml文件與項目的文件讀取在Web容器里,部署的時候容器就會識別注解,將相應(yīng)的類部署為過濾器.啟動服務(wù)器才執(zhí)行過濾器的初始化方法.)

    則添加過濾器不需要再web.xml中配置.直接在過濾器類里加入@WebFilter聲明即可.

    filter-mapping元素用來聲明Web應(yīng)用中的過濾器映射。過濾器可被映射到一個servlet或一個URL模式。將過濾器映射到一個servlet中會造成過濾器作用于servlet上。將過濾器映射到一個URL模式中則可以將過濾器應(yīng)用于任何資源,只要該資源的URL與URL模式匹配。過濾是按照部署描述符的filter-mapping元素出現(xiàn)的順序執(zhí)行的。

    過濾器filter-mapping的<servlet-name>標(biāo)簽意思是過濾器關(guān)聯(lián)Servlet,當(dāng)某些用戶請求訪問Servlet的時候,會被過濾器截取請求.(即Web容器會調(diào)用過濾器的doFilter()方法)

    過濾器filter-mapping的<url-pattern>標(biāo)簽意思是過濾器關(guān)聯(lián)的URL地址.當(dāng)用戶訪問關(guān)聯(lián)的URLWeb資源時,會被過濾器截取請求.(即Web容器會調(diào)用過濾器的doFilter()方法)

    圖中上部分是Servlet3.0配置過濾器的方法.下部分是Servlet2.5的配置過濾器方法.

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

    假設(shè)同一個過濾器關(guān)聯(lián)了index.jsp與main.jsp.此過濾器的<dispatcher>標(biāo)簽值為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");
    }
    當(dāng)用戶訪問index.jsp頁面時,便會被過濾器截取.并執(zhí)行doFilter()方法中的重定向去main.jsp頁面.但main.jsp也關(guān)聯(lián)了此過濾器,過濾器會截取到重定向新Web資源的請求.因此又會調(diào)用doFilter()方法中的重定向去main.jsp.所以是死循環(huán)的狀態(tài).

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

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

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

    以下內(nèi)容源自其他同學(xué),當(dāng)然,自己百度搜索一下也是一樣的
    這個也是一個參考:http://jingyan.baidu.com/article/37bce2be71adad1002f3a2c7.html
    1.請求轉(zhuǎn)發(fā)
    請求轉(zhuǎn)發(fā)是指將請求再轉(zhuǎn)發(fā)到另一資源(一般為JSP或Servlet)。此過程依然在同一個請求范圍內(nèi),轉(zhuǎn)發(fā)后瀏覽器地址欄內(nèi)容不變
    請求轉(zhuǎn)發(fā)使用RequestDispatcher接口中的forward()方法來實現(xiàn),該方法可以把請求轉(zhuǎn)發(fā)到另外一個資源,并讓該資源對瀏覽器的請求進行響應(yīng)
    RequestDispatcher rd = request.getRequestDispatcher(path); rd.forward(request,response);
    或request.getRequestDispatcher(path) .forward(request,response);

    2.重定向
    重定向是指頁面重新定位到某個新地址,之前的請求失效,進入一個新的請求,且跳轉(zhuǎn)后瀏覽器地址欄內(nèi)容將變?yōu)樾碌闹付ǖ刂?br />重定向是通過HttpServletResponse對象的sendRedirect()來實現(xiàn),該方法相當(dāng)于瀏覽器重新發(fā)送一個請求
    response.sendRedirect(path);

    forward轉(zhuǎn)發(fā) :一次請求一次回應(yīng) 服務(wù)器跳轉(zhuǎn)
    sendredirect重定向: 兩次請求兩次回應(yīng) 客戶端跳轉(zhuǎn)

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

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

    查看全部
  • Filter可認(rèn)為是Servlet的一種“變種”,它主要用于對用戶請求進行預(yù)處理,也可以對HttpServletResponse進行后處理,是個典型的處理鏈。它與Servlet的區(qū)別在于:它不能直接向用戶生成響應(yīng)。完整的流程是:Filter對用戶請求進行預(yù)處理,接著將請求交給Servlet進行處理并生成響應(yīng),最后Filter再對服務(wù)器響應(yīng)進行后處理。

    Filter有如下幾個用處。
    在HttpServletRequest到達(dá)Servlet之前,攔截客戶的HttpServletRequest。
    根據(jù)需要檢查HttpServletRequest,也可以修改HttpServletRequest頭和數(shù)據(jù)。
    在HttpServletResponse到達(dá)客戶端之前,攔截HttpServletResponse。
    根據(jù)需要檢查HttpServletResponse,也可以修改HttpServletResponse頭和數(shù)據(jù)。

    Filter可負(fù)責(zé)攔截多個請求或響應(yīng);一個請求或響應(yīng)也可被多個請求攔截。

    創(chuàng)建一個Filter只需兩個步驟:
    創(chuàng)建Filter處理類(實現(xiàn)Filter接口).
    web.xml文件中配置Filter(配置<filter>與<filter-mapping>).

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
    ? <display-name>JavaWeb_001_fistFilter</display-name>
    ? <welcome-file-list>
    ??? <welcome-file>index.jsp</welcome-file>
    ? </welcome-file-list>
    ?
    ? <filter>
    ? <filter-name>FistFilter</filter-name>
    ? <filter-class>com.filter.FistFilter</filter-class>
    ? </filter>
    ? <filter-mapping>
    ? <filter-name>FistFilter</filter-name>
    ? <url-pattern>/index.jsp</url-pattern>
    ? </filter-mapping>
    ?
    ? <filter>
    ? <filter-name>SecondFilter</filter-name>
    ? <filter-class>com.filter.SecondFilter</filter-class>
    ? </filter>
    ? <filter-mapping>
    <filter-name>SecondFilter</filter-name>
    <url-pattern>/index.jsp</url-pattern>
    ? </filter-mapping>
    ?
    </web-app>

    查看全部
  • 1.什么是過濾器?<br>
    過濾器是web服務(wù)器端的一個組件,可以截獲用戶的請求和web資源的響應(yīng),對請求和響應(yīng)進行過濾
    2.過濾器的工作原理?<br>
    原理:用戶發(fā)送請求到過濾器,過濾器將用戶請求發(fā)送到web資源,web資源將響應(yīng)發(fā)送到過濾器,過濾器將響應(yīng)發(fā)送給用戶
    3.過濾器的工作周期
    a.在web容器啟動的時候?qū)嵗{(diào)用初始化方法,每次有請求響應(yīng)過來調(diào)用doFilter()方法,服務(wù)器容器關(guān)閉的時候調(diào)用銷毀方法。

    查看全部
  • 過濾器大多數(shù)時間消耗在doFilter()方法中,doFilter()方法被Web容器調(diào)用,即被服務(wù)器調(diào)用,因為Web容器存在Tomcat容器中,Tomcat就是服務(wù)器.
    doFilter()方法同時傳入ServletRequest Request、ServletResponse Response和Filter Chain對象的引用.然后過濾器就有機會處理請求,將處理任務(wù)傳遞給鏈中的下一個資源,(通過調(diào)用Filter Chain對象引用上的doFilter方法),之后在處理控制權(quán)返回該過濾器時處理響應(yīng).

    關(guān)于chain.doFilter(request,response)
    他的作用是將請求轉(zhuǎn)發(fā)給過濾器鏈上的下一個對象.這里的下一下對象指的是下一個filter,如果沒有filter那就是你請求的資源.一般filter都是一個鏈,在一個項目的web.xml中有幾個<filter>.就有幾個過濾器.
    request->filter1->filter2->filter3->....->request resource(請求的Web資源),然后得到Web資源的響應(yīng),再沿著鏈返回給request.



    查看全部
  • 過濾器xml配置

    查看全部
  • 分類

    查看全部
  • web.xml配置

    查看全部
  • 三個方法

    查看全部
  • 過濾器的生命周期

    查看全部
  • 12

    查看全部
    0 采集 收起 來源:總結(jié)

    2018-04-12

  • 11

    查看全部
    0 采集 收起 來源:總結(jié)

    2018-04-12

舉報

0/150
提交
取消
課程須知
童鞋們,過濾器是Java Web開發(fā)的內(nèi)容。學(xué)習(xí)前需要掌握J(rèn)ava基礎(chǔ)知識、并熟悉JSP和Servlet。如未學(xué)習(xí)上述知識,可移步網(wǎng)站相關(guān)課程。
老師告訴你能學(xué)到什么?
通過本課程的學(xué)習(xí),你可以了解過濾器的基礎(chǔ)知識,并可以自己動手編寫過濾器。

微信掃碼,參與3人拼團

微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復(fù)購買,感謝您對慕課網(wǎng)的支持!