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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

JAVA Web開發(fā)技術(shù)應(yīng)用——監(jiān)聽器

難度初級(jí)
時(shí)長 1小時(shí)30分
學(xué)習(xí)人數(shù)
綜合評(píng)分9.70
269人評(píng)價(jià) 查看評(píng)價(jià)
9.8 內(nèi)容實(shí)用
9.7 簡潔易懂
9.6 邏輯清晰
  • @監(jiān)聽器分類: 1.按監(jiān)聽器的對(duì)象劃分: a 用戶監(jiān)聽?wèi)?yīng)用程序環(huán)境對(duì)象(ServletContext)的事件監(jiān)聽器 b 用于監(jiān)聽用戶會(huì)話對(duì)象(HttpSession)的事件監(jiān)聽器 c 用于監(jiān)聽請(qǐng)求消息對(duì)象(ServletRequest)的事件監(jiān)聽器 2.按事件劃分 a 監(jiān)聽域?qū)ο笞陨淼膭?chuàng)建和銷毀的事件監(jiān)聽器 b 監(jiān)聽域?qū)ο笾械膶傩缘脑黾雍蛣h除的事件監(jiān)聽器 c 監(jiān)聽綁定到HttpSession域中的某個(gè)對(duì)象的狀態(tài)的事件監(jiān)聽器。對(duì)ServletContext的監(jiān)聽:ServletContextListener<br> 有兩個(gè)方法:初始化方法和銷毀方法<br> 用途:定時(shí)器 加載全局屬性

    ?@FirstListener.java public class FirstListener implements ServletContextListener { public void contextDestroyed(ServletContextEvent arg0) { System.out.println("contextDestroyed"); } public void contextInitialized(ServletContextEvent arg0) { String user = arg0.getServletContext().getInitParameter("user"); System.out.println("contextInitialized:" + user); } } @web.xml <context-param> <param-name>user</param-name> <param-value>admin</param-value> </context-param>

    查看全部
  • 有多個(gè)監(jiān)聽器的時(shí)候,按web.xml中注冊(cè)順序啟動(dòng) 監(jiān)聽器>過濾器>servlet的啟動(dòng)順序

    查看全部
  • @FirstListener.java public class FirstListener implements ServletContextListener { public void contextDestroyed(ServletContextEvent arg0) { System.out.println("contextDestroyed"); } public void contextInitialized(ServletContextEvent arg0) { System.out.println("contextInitialized"); } } @web.xml <listener> ? ? ? ?<listener-class>com.imooc.listener.FirstListener</listener-class> ? ?</listener> @輸出: //Tomcat啟動(dòng) contextInitialized //Tomcat關(guān)閉 contextDestroyed

    查看全部
  • Web監(jiān)聽器由Servlet規(guī)范提供的,可以監(jiān)聽客戶端的請(qǐng)求以及服務(wù)端的操作,即監(jiān)聽ServletContext、HttpSession、ServletRequest對(duì)象.(這三個(gè)對(duì)象稱為域?qū)ο?.監(jiān)聽事件分為這三個(gè)對(duì)象的創(chuàng)建、銷毀事件以及這三個(gè)對(duì)象屬性的變化事件.與監(jiān)聽綁定到HttpSession域中的某個(gè)對(duì)象的狀態(tài)的時(shí)間,分別要實(shí)現(xiàn)不同的監(jiān)聽器接口. ServletContext-->對(duì)應(yīng)jsp的application對(duì)象. HttpSession-->對(duì)應(yīng)jsp的session對(duì)象. ServletRequest-->對(duì)應(yīng)jsp的request對(duì)象.

    ?application:是上下文對(duì)象,由容器創(chuàng)建并初始化的。范圍整個(gè)web應(yīng)用,只會(huì)有一個(gè)存在,服務(wù)器關(guān)閉時(shí)銷毀。 ? ?session:保存上下文的機(jī)制,針對(duì)每一個(gè)會(huì)話,放在服務(wù)器端通過sessionId區(qū)分的,瀏覽器和服務(wù)器關(guān)閉后,銷毀。 ? ?request:當(dāng)客戶 發(fā)送請(qǐng)求時(shí),容器創(chuàng)建對(duì)象,用來封裝請(qǐng)求數(shù)據(jù),同時(shí)會(huì)創(chuàng)建ServletResponse對(duì)象來封裝響應(yīng)數(shù)據(jù)。訪問結(jié)束請(qǐng)求時(shí)銷毀。 ? ?監(jiān)聽器是servlet定義的一種特殊類。監(jiān)聽域?qū)ο蟮膭?chuàng)建銷毀以及屬性變化的事件。

    查看全部
    0 采集 收起 來源:概述

    2018-04-26

  • spacer.gif

    查看全部
  • https://img1.sycdn.imooc.com//5adfd93e000171c810460535.jpg

    查看全部
  • 監(jiān)聽器總結(jié):
    一、監(jiān)聽器分類
    在Servlet規(guī)范中定義了多種類型的監(jiān)聽器,它們用于監(jiān)聽的事件源分別為SerlvetConext,HttpSession和ServletRequest這三個(gè)域?qū)ο蟆?br />Servlet規(guī)范針對(duì)這三個(gè)對(duì)象上的操作,又把這多種類型的監(jiān)聽器劃分為三種類型:
    1>監(jiān)聽三個(gè)域?qū)ο髣?chuàng)建和銷毀的事件監(jiān)聽器
    2>監(jiān)聽域?qū)ο笾袑傩缘脑黾雍蛣h除的事件監(jiān)聽器
    3>監(jiān)聽綁定到HttpSession域中的某個(gè)對(duì)象的狀態(tài)的時(shí)間監(jiān)聽器。
    a、如三個(gè)域?qū)ο蟮膭?chuàng)建與銷毀方法簽名:
    ServletRequestListener有以下兩個(gè)方法
    void requestDestroyed(ServletRequestEvent sre)
    void requestInitialized(ServletRequestEvent sre)
    HttpSessionListener有以下兩個(gè)方法
    void sessionCreated(HttpSessionEvent se)
    void sessionDestroyed(HttpSessionEvent se)
    ServletContextListener
    void contextDestroyed(ServletContextEvent sce)
    void contextInitialized(ServletContextEvent sce)
    b、三個(gè)類型對(duì)象域中屬性增、刪、改的監(jiān)聽器(3個(gè))
    ServletContextAttributeListener,
    HttpSessionAttributeListener,
    ServletRequestAttributeListener
    c、感知型監(jiān)聽器(2個(gè)):監(jiān)聽自己何時(shí)被幫到session上,何時(shí)解綁;何時(shí)被鈍化,何時(shí)被活化(序列化到某個(gè)存儲(chǔ)設(shè)置中)。
    注意:這種監(jiān)聽器不需要注冊(cè)。某個(gè)javabean實(shí)現(xiàn)這些接口后就可以監(jiān)聽何時(shí)被綁定、解綁或被激活或鈍化。
    HttpSessionBindingListener:實(shí)現(xiàn)該接口的類,能檢測(cè)自己何時(shí)被Httpsession綁定和解綁
    HttpSessionActivationListener:實(shí)現(xiàn)該接口的類(要求些javabean必須是實(shí)現(xiàn)了Serializable接口的),能監(jiān)測(cè)自己何時(shí)隨著HttpSession一起激活和鈍化。

    查看全部
  • @統(tǒng)計(jì)在線用戶及人數(shù)——(下)
    @MyServletRequestListener.java
    @WebListener
    public class MyServletRequestListener implements ServletRequestListener {

    private ArrayList<User> userList;//在線用戶List

    @Override
    public void requestDestroyed(ServletRequestEvent arg0) {

    }

    @Override
    public void requestInitialized(ServletRequestEvent arg0) {

    userList = (ArrayList<User>)arg0.getServletContext().getAttribute("userList");

    if(userList==null)
    userList = new ArrayList<User>();

    HttpServletRequest request = (HttpServletRequest) arg0.getServletRequest();
    String sessionIdString = request.getSession().getId();

    if(SessionUtil.getUserBySessionId(userList,sessionIdString)==null){
    User user = new User();
    user.setSessionIdString(sessionIdString);
    user.setFirstTimeString(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
    user.setIpString(request.getRemoteAddr());
    userList.add(user);
    }
    arg0.getServletContext().setAttribute("userList", userList);
    }
    }

    查看全部
  • @統(tǒng)計(jì)在線用戶及人數(shù)——(中)
    @MyHttpSessionListener.java
    @WebListener
    public class MyHttpSessionListener implements HttpSessionListener {

    private int userNumber = 0;

    @Override
    public void sessionCreated(HttpSessionEvent arg0) {
    userNumber++;
    arg0.getSession().getServletContext().setAttribute("userNumber", userNumber);
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent arg0) {
    userNumber--;
    arg0.getSession().getServletContext().setAttribute("userNumber", userNumber);

    ArrayList<User> userList = null;//在線用戶List

    userList = (ArrayList<User>)arg0.getSession().getServletContext().getAttribute("userList");

    if(SessionUtil.getUserBySessionId(userList, arg0.getSession().getId())!=null){
    userList.remove(SessionUtil.getUserBySessionId(userList, arg0.getSession().getId()));
    }
    }
    }

    查看全部
  • @統(tǒng)計(jì)在線用戶及人數(shù)——(上)
    @index.jsp
    當(dāng)前在線用戶人數(shù):${userNumber}
    <hr>
    <%
    ArrayList<User> userList = (ArrayList<User>) request.getServletContext().getAttribute("userList");
    if (userList != null) {
    for (int i = 0; i < userList.size(); i++) {
    User user = userList.get(i);
    %>
    IP:<%=user.getIpString()%>
    <hr>
    FirstTime:<%=user.getFirstTimeString()%>
    <hr>
    SessionId:<%=user.getSessionIdString()%>
    <hr>
    <%
    }
    }
    %>

    @SessionUtil.java
    public class SessionUtil {

    public static Object getUserBySessionId(ArrayList<User> userList, String sessionIdString) {
    for (int i = 0; i < userList.size(); i++) {
    User user = userList.get(i);
    if (user.getSessionIdString().equals(sessionIdString)) {
    return user;
    }
    }
    return null;
    }
    }

    @User.java
    public class User {
    private String sessionIdString;
    private String ipString;
    private String firstTimeString;
    //setter、getter...
    }

    Ps:session是沒有獲取IP地址方法,但request有。

    查看全部
  • 2、監(jiān)聽綁定到HttpSession域中的某個(gè)對(duì)象的狀態(tài)的事件監(jiān)聽器<br>
    鈍化:1,由Session.StandardManager:Tocat服務(wù)器關(guān)閉或Web應(yīng)用程序被重新加載時(shí)把當(dāng)前內(nèi)存中的Session序列化到文件或數(shù)據(jù)庫中。<br>
    2,由Session.Persistentmanager:除了1,中的兩種,第3種可以將不常用的Session序列化到文件或數(shù)據(jù)庫中。<br>
    (默認(rèn)Tocat兩種鈍化驅(qū)動(dòng):org.apache.Catalina.FileStore和org.apache.Catalina.JDBCStore)<br>
    活化:服務(wù)器啟動(dòng)是把鈍化的Seesion反序列化到服務(wù)器上
    前提:先綁定session<br>? 綁定就是session.setAttribute()把屬性保存到Session對(duì)象當(dāng)中,解除綁定:session.getAttribute()
    (1)HttpSession【Binding】Listener //綁定、解除綁定<br>
    a) 創(chuàng)建一個(gè)javabean類,實(shí)現(xiàn)接口【HttpSessionBindingListener,】無需到Web.xml注冊(cè)<br>
    b) 2個(gè)方法<br>
    1) void valueBound 綁定 JSP: request.getsession.setattribute("ab",new javabean全名);<br>
    2) void valueUnbound 解除綁定 JSP: request.getsession().removeAttribute("ab")<br>
    (2)HttpSessionActivationListener //鈍化(持久化到存儲(chǔ)設(shè)備時(shí))、活化(從存儲(chǔ)設(shè)備恢復(fù))<br>
    a) 在已經(jīng)創(chuàng)建的javabean類,實(shí)現(xiàn)接口HttpSessionActivationListener無需到Web.xml注冊(cè)<br>
    b) 2個(gè)方法<br>
    1) void sessionWillPassivate 鈍化 JSP: 無需寫,前提javabean進(jìn)行綁定了<br>
    2) void sessionDidActivate 活化 JSP:request.getSession.getAttribute("ab");<br>
    需要【活化必須】再繼承一個(gè)接口:【Serializable】

    public void valueBound(HttpSessionBindingEvent arg0) {
    System.out.println("valueBound:" + arg0.getName());
    }

    public void valueUnbound(HttpSessionBindingEvent arg0) {
    System.out.println("valueUnbound:" + arg0.getName());
    }

    // 活化
    public void sessionDidActivate(HttpSessionEvent se) {
    System.out.println("sessionDidActivate:" + se.getSource());
    }

    // 鈍化
    public void sessionWillPassivate(HttpSessionEvent se) {
    System.out.println("sessionWillPassivate:" + se.getSource());
    }
    要想實(shí)現(xiàn)鈍化和活化,除了需實(shí)現(xiàn)HttpSessionActivationListener接口還需要實(shí)現(xiàn)Serializable接口。

    查看全部
  • 還好
    查看全部
    0 采集 收起 來源:概述

    2018-04-22

  • servet 3.0 下監(jiān)聽器的用法

    查看全部
  • 1

    查看全部
  • 2

    查看全部

舉報(bào)

0/150
提交
取消
課程須知
親,要學(xué)習(xí)本門課程需要對(duì)JSP和Servlet有所了解呦。如未學(xué)習(xí)上述知識(shí),可移步網(wǎng)站相關(guān)課程。
老師告訴你能學(xué)到什么?
通過對(duì)本課程的學(xué)習(xí),可以掌握監(jiān)聽器的基礎(chǔ)知識(shí),深入了解監(jiān)聽器的處理機(jī)制和分類方式,并可以讓自己更快的動(dòng)手編寫監(jiān)聽器的例子。

微信掃碼,參與3人拼團(tuán)

微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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

友情提示:

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