欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

怎么應(yīng)用JavaEE的過濾器、監(jiān)聽、攔截技術(shù)-創(chuàng)新互聯(lián)

這篇文章主要講解了“怎么應(yīng)用JavaEE的過濾器、監(jiān)聽、攔截技術(shù)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么應(yīng)用JavaEE的過濾器、監(jiān)聽、攔截技術(shù)”吧!

成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供綏德網(wǎng)站建設(shè)、綏德做網(wǎng)站、綏德網(wǎng)站設(shè)計、綏德網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、綏德企業(yè)網(wǎng)站模板建站服務(wù),10余年綏德做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

一、Listener監(jiān)聽器

1、概念簡介

JavaWeb三大組件:Servlet,Listener,F(xiàn)ilter。監(jiān)聽器就是指在應(yīng)用程序中監(jiān)聽相關(guān)對象狀態(tài)變化的組件。

2、事件源對象

指被監(jiān)聽對象。

  • ServletContext

ServletContextListener生命周期監(jiān)聽,它有兩個方法,出生時調(diào)用contextInitialized(),銷毀時調(diào)用contextDestroyed();

ServletContextAttributeListener屬性監(jiān)聽,它有三個方法,添加屬性attributeAdded(),替換屬性attributeReplaced(),移除屬性時attributeRemoved()。

  • HttpSession

HttpSessionListener生命周期監(jiān)聽:它有兩個方法,出生時調(diào)用sessionCreated(),銷毀時調(diào)用sessionDestroyed();

HttpSessioniAttributeListener屬性監(jiān)聽:它有三個方法,添加屬性attributeAdded(),替換屬性attributeReplaced(),移除屬性attributeRemoved()。

  • ServletRequest

ServletRequestListener生命周期監(jiān)聽:它有兩個方法,出生時調(diào)用requestInitialized(),銷毀時調(diào)用requestDestroyed();

ServletRequestAttributeListener屬性監(jiān)聽:它有三個方法,添加屬性attributeAdded(),替換屬性attributeReplaced(),移除屬性attributeRemoved()。

3、編碼案例

  • 相關(guān)監(jiān)聽器

TheContextListener

public class TheContextListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        System.out.println("初始化:TheContextListener");
        ServletContext servletContext = servletContextEvent.getServletContext() ;
        servletContext.setAttribute("author","cicada");
    }
    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        System.out.println("銷毀:TheContextListener");
    }
}

TheRequestListener

public class TheRequestListener implements ServletRequestListener {
    @Override
    public void requestDestroyed(ServletRequestEvent servletRequestEvent) {
        System.out.println("初始化:TheRequestListener");
    }
    @Override
    public void requestInitialized(ServletRequestEvent servletRequestEvent) {
        System.out.println("銷毀:TheRequestListener");
    }
}

TheSessionListener

public class TheSessionListener implements HttpSessionListener {
    @Override
    public void sessionCreated(HttpSessionEvent httpSessionEvent) {
        System.out.println("初始化:TheSessionListener");
    }
    @Override
    public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
        System.out.println("銷毀:TheSessionListener");
    }
}

RequestAttributeListener

public class RequestAttributeListener implements ServletRequestAttributeListener {
    @Override
    public void attributeAdded(ServletRequestAttributeEvent evt) {
        System.out.println("Request添加屬性:"+evt.getName()+";"+evt.getValue());
    }
    @Override
    public void attributeRemoved(ServletRequestAttributeEvent evt) {
        System.out.println("Request移除屬性:"+evt.getName()+";"+evt.getValue());
    }
    @Override
    public void attributeReplaced(ServletRequestAttributeEvent evt) {
        System.out.println("Request替換屬性:"+evt.getName()+";"+evt.getValue());
    }
}
  • web.xml配置文件

<!-- 監(jiān)聽器相關(guān)配置 -->
<listener>
    <listener-class>com.node05.servlet.listener.TheContextListener</listener-class>
</listener>
<listener>
    <listener-class>com.node05.servlet.listener.TheSessionListener</listener-class>
</listener>
<listener>
    <listener-class>com.node05.servlet.listener.TheRequestListener</listener-class>
</listener>
<listener>
    <listener-class>com.node05.servlet.listener.RequestAttributeListener</listener-class>
</listener>
<session-config>
    <!-- 設(shè)置session失效時間為1分鐘 -->
    <session-timeout>1</session-timeout>
</session-config>
  • 測試接口

public class ListenerServletImpl extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        // 1、獲取TheContextListener初始化數(shù)據(jù)
        ServletContext servletContext = this.getServletContext() ;
        String author = String.valueOf(servletContext.getAttribute("author")) ;
        System.out.println("TheContextListener Author:"+author);
        // 2、Request屬性設(shè)置
        request.setAttribute("mood","smile");
        request.setAttribute("mood","agitated");
        // 3、Session創(chuàng)建,1分鐘失效,調(diào)用銷毀
        HttpSession session = request.getSession(true) ;
        session.setAttribute("casually","casually");
        response.getWriter().print("Hello:Listener");
    }
}

二、Filter過濾器

1、過濾器簡介

客戶端請求Servlet時,先執(zhí)行相關(guān)Filter,如果Filter通過,則繼承執(zhí)行請求的Servlet;如果Filter不通過,則不會執(zhí)行用戶請求的Servlet。過濾器可以動態(tài)地攔截請求和響應(yīng)。

2、Filter接口

Filter接口定義了三個核心方法。

  • init()

應(yīng)用程序啟動時,服務(wù)器實例化Filter對象,并調(diào)用其init方法,讀取web.xml配置,完成對象的初始化加載。

  • doFilter()

實際的過濾操作,請求達到服務(wù)器時,Servlet容器將先調(diào)用過濾器的doFilter方法。

  • destroy()

容器在銷毀過濾器前調(diào)用該方法,釋放過濾器占用的資源。

3、編碼案例

  • 編寫過濾器

public class ThePrintLogFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        String myName = filterConfig.getInitParameter("myName") ;
        System.out.println("myName:"+myName);
    }
    @Override
    public void doFilter(ServletRequest servletRequest,
                         ServletResponse servletResponse,
                         FilterChain chain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest)servletRequest ;
        HttpServletResponse response = (HttpServletResponse)servletResponse ;
        String name = request.getParameter("name") ;
        if (!name.equals("cicada")){
            response.getWriter().print("User Error !");
            return ;
        }
        chain.doFilter(servletRequest,servletResponse);
    }
    @Override
    public void destroy() {
        System.out.println("ThePrintLogFilter destroy()");
    }
}
  • web.xml配置文件

<!-- 過濾器相關(guān)配置 -->
<filter>
    <filter-name>thePrintLogFilter</filter-name>
    <filter-class>com.node05.servlet.filter.ThePrintLogFilter</filter-class>
    <init-param>
        <param-name>myName</param-name>
        <param-value>cicada</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>thePrintLogFilter</filter-name>
    <url-pattern>/filterServletImpl</url-pattern>
</filter-mapping>
  • 測試接口

public class FilterServletImpl extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        response.getWriter().print("Hello:Filter");
    }
}

三、Interceptor攔截器

Spring框架中的攔截器Interceptor類似于Servlet中的過濾器Filter,主要用于攔截用戶請求并作相應(yīng)的處理。例如通過攔截器可以進行權(quán)限驗證、記錄請求信息的日志、判斷用戶是否登錄等。請求轉(zhuǎn)發(fā)不執(zhí)行攔截、過濾;重定向執(zhí)行攔截和過濾。

感謝各位的閱讀,以上就是“怎么應(yīng)用JavaEE的過濾器、監(jiān)聽、攔截技術(shù)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對怎么應(yīng)用JavaEE的過濾器、監(jiān)聽、攔截技術(shù)這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

當前標題:怎么應(yīng)用JavaEE的過濾器、監(jiān)聽、攔截技術(shù)-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://aaarwkj.com/article24/dshoje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、定制開發(fā)、App開發(fā)、關(guān)鍵詞優(yōu)化用戶體驗、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
av天堂官网在线人妻| 亚洲精品国产第一区第二区 | 欧美性精品不卡在线观看| 国产内射一级一片内射高清视频1| 特黄一级黄色大片免费看| 九九热视频在线观看色| 亚洲欧美一区二区粉嫩| 草草影院最新地址在线观看| 久久精品国产av一一区| 亚洲男人天堂在线视频| 要爽死国产一区在线播放| 国产日韩欧美亚洲中文| 欧美黄色一区二区三区精品 | 日韩三级成人在线视频| 人妻少妇久久中文字幕久久| 国产亚洲一区激情小说| 亚洲国产精品一区二区| 日韩一级久久精品理论| 欧美成人午夜福利在线视频| 亚洲av成人三区国产精品| 91av国产一区二区| 尤物视频官网在线观看| 国产精品国产精品国产| 日本在线一区二区中文| 一区二区三区四区毛片| 日韩精品成人亚洲天堂| 日韩精品有码在线视频免费观看| 中文字幕有码精品在线| 亚洲国产日韩在线精品| 欧美av在线免费观看| 日本又色又爽又黄又高潮| 91精品国产在线观看| 亚洲精品露脸自拍高清在线观看| 美女av在线免费观看| 天天色天天色天天色综合网| 99热精品这里只有精品| 日韩欧美精品在线不卡| 片子免费毛片日韩不卡一区| 欧美日韩国产精品一区二区三区| 日本美女激情在线观看| 久久99国产综合精品女同|