国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Listener監(jiān)聽器----HttpServletRequest對象的生命周期監(jiān)聽器

這篇具有很好參考價(jià)值的文章主要介紹了Listener監(jiān)聽器----HttpServletRequest對象的生命周期監(jiān)聽器。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、HttpServletRequest對象的生命周期監(jiān)聽器

????????ServletRequestListener接口定義了ServletRequest(是HttpServletRequest接口的父接口類型)對象生命周期的監(jiān)聽行為。

void requestInitialized(ServletRequestEvent sre)

??????? HttpServletRequest對象創(chuàng)建后會(huì)觸發(fā)該監(jiān)聽器方法,并將已創(chuàng)建HttpServletRequest對象傳遞到該方法中

void requestDestoryed(HttpSessionEvent sre)

??????? HttpServletRequest對象在銷毀之前會(huì)觸發(fā)該監(jiān)聽方法,并將要銷毀的HttpServletRequest對象傳遞到該方法中

二、創(chuàng)建能夠監(jiān)聽 HttpServletRequest生命周期的監(jiān)聽器?

實(shí)現(xiàn):

package cn.itcast.listener;

import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.http.HttpServletRequest;

public class HttpServletRequestLifecycleListener implements ServletRequestListener {
    @Override
    public void requestDestroyed(ServletRequestEvent sre) {
        System.out.println("-------------Start requestDestroyed---------------");
        System.out.println((HttpServletRequest)sre.getServletRequest());
        System.out.println("-------------End requestDestroyed---------------");
    }

    @Override
    public void requestInitialized(ServletRequestEvent sre) {
        System.out.println("-------------Start requestInitialized---------------");
        System.out.println((HttpServletRequest)sre.getServletRequest());
        System.out.println("-------------End requestInitialized---------------");
    }
}

三、創(chuàng)建能夠監(jiān)聽 HttpServletRequest對象的屬性操作監(jiān)聽器?

ServletRequestAttributeListener接口定義了對于HttpServletRequest對象屬性操作的監(jiān)聽行為。

void attributeAdded(ServletRequestAttributeEvent srae)

????????向HttpServletRequest對象中添加屬性是會(huì)觸發(fā)該監(jiān)聽方法,并將HttpServletRequest對象傳遞到該方法中,觸發(fā)事件的方法HttpServletRequest.setAttribute("key","value")

void attributeRemove(ServletRequestAttributeEvent srae)

????????HttpServletRequest對象中添加屬性是會(huì)觸發(fā)該監(jiān)聽方法,并將HttpServletRequest對象傳遞到該方法中,觸發(fā)事件的方法HttpServletRequest.removeAttribute("key","value")

void attributeReplaced(ServletRequestAttributeEvent srae)

????????HttpServletRequest對象中添加屬性是會(huì)觸發(fā)該監(jiān)聽方法,并將HttpServletRequest對象傳遞到該方法中,觸發(fā)事件的方法HttpServletRequest.setAttribute("key","value")

?實(shí)例代碼:

servlet:

package cn.itcast.listener;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/requestAttr.do")
public class HttpServletRequestAttrServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setAttribute("key","test");
        req.setAttribute("key","test2");
        req.removeAttribute("key");
    }
}

監(jiān)聽:

package cn.itcast.listener;

import javax.servlet.ServletRequestAttributeEvent;
import javax.servlet.ServletRequestAttributeListener;

public class HttpServletRequestAttrListener implements ServletRequestAttributeListener {
    @Override
    public void attributeRemoved(ServletRequestAttributeEvent srae) {
        System.out.println("-------HttpServletRequestAttrListener---Start attributeRemoved----------");
        System.out.println("Name:"+srae.getName()+" Value:"+srae.getValue());
        System.out.println("-------HttpServletRequestAttrListener---End attributeRemoved----------");
    }

    @Override
    public void attributeReplaced(ServletRequestAttributeEvent srae) {
        System.out.println("-------HttpServletRequestAttrListener---Start attributeReplaced----------");
        System.out.println("Name:"+srae.getName()+" Value:"+srae.getValue());
        System.out.println("-------HttpServletRequestAttrListener---End attributeReplaced----------");
    }

    @Override
    public void attributeAdded(ServletRequestAttributeEvent srae) {
        System.out.println("-------HttpServletRequestAttrListener---Start attributeAdded----------");
        System.out.println("Name:"+srae.getName()+" Value:"+srae.getValue());
        System.out.println("-------HttpServletRequestAttrListener---End attributeAdded----------");
    }
}

輸出:

-------HttpServletRequestAttrListener---Start attributeAdded----------

Name:key Value: test

-------HttpServletRequestAttrListener---End attributeAdded----------

HttpServletRequestAttrListener---Start attributeReplaced----------

Name:key Value: test

-------HttpServletRequestAttrListener---End attributeReplaced----------

HttpServletRequestAttrListener---Start attributeRemoved----------

Name:key Value: test2

-------HttpServletRequestAttrListener---End attributeRemoved----------文章來源地址http://www.zghlxwxcb.cn/news/detail-816568.html

到了這里,關(guān)于Listener監(jiān)聽器----HttpServletRequest對象的生命周期監(jiān)聽器的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Vue2(生命周期,列表排序,計(jì)算屬性和監(jiān)聽器)

    Vue2(生命周期,列表排序,計(jì)算屬性和監(jiān)聽器)

    前言 上一章博客我們講解了Vue基礎(chǔ) 這一章我們來講Vue生命周期,列表過濾,計(jì)算屬性和監(jiān)聽器 一,生命周期 通常也叫生命周期回調(diào)函數(shù)、生命周期函數(shù)、生命周期鉤子 vue初始化時(shí)在不同的階段調(diào)用的不同函數(shù) 生命周期函數(shù)的 this 指向?yàn)関ue實(shí)例,名字不能更改 1.1,生命周期函

    2024年02月13日
    瀏覽(49)
  • Flutter中的AppLifecycleListener:應(yīng)用生命周期監(jiān)聽器介紹及使用

    引言 當(dāng)你在Flutter中需要監(jiān)聽?wèi)?yīng)用程序的生命周期變化時(shí),可以使用 AppLifecycleListener 。在Flutter 3.13中, AppLifecycleListener 被添加到Framework中,用于監(jiān)聽?wèi)?yīng)用程序的生命周期變化,并響應(yīng)退出應(yīng)用程序的請求等支持。 在Flutter 3.13之前,我們通常使用 WidgetsBindingObserver 的 didChange

    2024年01月20日
    瀏覽(23)
  • 微信小程序 - 最新超詳細(xì) watch 偵聽器功能,支持監(jiān)聽對象、數(shù)組及各種復(fù)雜對象數(shù)據(jù),可在任意頁面或組件中使用(絕非網(wǎng)上千篇一律的 “setWatcher“ 不能監(jiān)聽對象的垃圾方法,方案開箱即用)

    網(wǎng)上的教程全都是一摸一樣的 setWatcher(this) 方案,重要的是這種方案不能監(jiān)聽對象,可以說一無是處。 本文 在微信小程序中實(shí)現(xiàn) watch 監(jiān)聽器監(jiān)聽數(shù)據(jù)的功能,讓小程序擁有 watch 監(jiān)聽對象、數(shù)組等復(fù)雜數(shù)據(jù)變化的能力, 您按照教程幾分鐘就能搞定,保證 100% 好用且使用方法

    2024年02月11日
    瀏覽(90)
  • 微信小程序——自定義組件組件的創(chuàng)建和引用,修改組件的樣式隔離選項(xiàng),stylesolation的可選值,properties屬性,data數(shù)據(jù),methods方法,數(shù)據(jù)監(jiān)聽器,用法,監(jiān)聽對象屬性的變化

    微信小程序——自定義組件組件的創(chuàng)建和引用,修改組件的樣式隔離選項(xiàng),stylesolation的可選值,properties屬性,data數(shù)據(jù),methods方法,數(shù)據(jù)監(jiān)聽器,用法,監(jiān)聽對象屬性的變化

    ①在項(xiàng)目的根目錄中,鼠標(biāo)右鍵,創(chuàng)建 components - test 文件夾 ②在新建的 components - test 文件夾上,鼠標(biāo)右鍵,點(diǎn)擊\\\"新建 Component \\\" ③鍵入組件的名稱之后回車,會(huì)自動(dòng)生成組件對應(yīng)的4個(gè)文件,后綴名分別為 js , json ,. wxml 和. wxss 注意,為了保證目錄結(jié)構(gòu)的清晰,建議把不同的

    2024年02月15日
    瀏覽(110)
  • HttpSessionListener監(jiān)聽器和HttpSessionAttributeListener監(jiān)聽器

    1.作用:監(jiān)聽Session創(chuàng)建或銷毀,即生命周期監(jiān)聽 2.相關(guān)方法: 3.使用場景: 和前面的ServletContextListener等一樣,可以用于監(jiān)控用戶上線和離線 4.代碼 HttpSessionListener監(jiān)聽器 實(shí)現(xiàn)類 HttpSessionAttributeListener監(jiān)聽器 1.作用:監(jiān)聽Session屬性的變化,使用少 2.相關(guān)方法: 3.代碼 監(jiān)聽器 實(shí)

    2024年02月04日
    瀏覽(20)
  • camunda執(zhí)行監(jiān)聽器和任務(wù)監(jiān)聽器有什么區(qū)別

    camunda執(zhí)行監(jiān)聽器和任務(wù)監(jiān)聽器有什么區(qū)別

    Camunda的執(zhí)行監(jiān)聽器和任務(wù)監(jiān)聽器是用于添加自定義邏輯的監(jiān)聽器,它們的區(qū)別在于作用對象和觸發(fā)事件的不同。 執(zhí)行監(jiān)聽器是與BPMN流程中的各種流程元素(例如開始事件、用戶任務(wù)、服務(wù)任務(wù)、網(wǎng)關(guān)等)相關(guān)聯(lián)的。執(zhí)行監(jiān)聽器可以在流程元素執(zhí)行前、執(zhí)行后或拋出異常時(shí)添

    2024年02月04日
    瀏覽(39)
  • 消息監(jiān)聽器和消息監(jiān)聽容器

    前些天發(fā)現(xiàn)了一個(gè)巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點(diǎn)擊跳轉(zhuǎn)到網(wǎng)站。 消息監(jiān)聽器顧名思義用來接收消息,它是使用消息監(jiān)聽容器的必須條件。目前有8個(gè)消息監(jiān)聽器: 使用自動(dòng)提交或容器管理的提交方法之一,處理從 Kafka 消費(fèi)者 p

    2024年02月07日
    瀏覽(21)
  • Android手勢監(jiān)聽、觸摸監(jiān)聽器、onTouchListener

    一次點(diǎn)擊事件(onClickListener)由 一次down事件,多次move事件和一次up事件構(gòu)成,move事件出現(xiàn)的次數(shù)由用戶的按壓效果決定。down表示手勢事件開始,up表示結(jié)束,move則代表著過程。此時(shí)代碼中onTouchLishtener方法中返回的結(jié)果為ture,則表示攔截用戶的該次行為,由此方法進(jìn)行處理

    2024年02月04日
    瀏覽(27)
  • watch監(jiān)聽器三種監(jiān)聽方式

    1、普通監(jiān)聽( 無法監(jiān)聽到第一次綁定的變化 ) 這樣使用watch時(shí)有一個(gè)特點(diǎn),就是當(dāng)值第一次綁定的時(shí)候,不會(huì)執(zhí)行監(jiān)聽函數(shù),只有值發(fā)生改變才會(huì)執(zhí)行。 2、普通監(jiān)聽( 可以監(jiān)聽到第一次綁定的變化) 給 text 綁定了一個(gè)handler方法,之前我們寫的 watch 方法其實(shí)默認(rèn)寫的就是

    2024年02月15日
    瀏覽(23)
  • Kafka 監(jiān)聽器詳解

    Kafka 監(jiān)聽器詳解

    Kafka Assistant 是一款 Kafka GUI 管理工具——管理Broker,Topic,Group、查看消費(fèi)詳情、監(jiān)控服務(wù)器狀態(tài)、支持多種消息格式。 你需要將 advertised.listeners (如果你使用Docker鏡像,則為 KAFKA_ADVERTISED_LISTENERS )設(shè)置為外部地址(host/IP),以便客戶端可以正確地連接到它。否則,他們會(huì)嘗試

    2024年02月06日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包