1. 程式人生 > >JavaWeb16-HTML篇筆記(一)

JavaWeb16-HTML篇筆記(一)

Java

1.1 上次課內容回顧: AJAX: * AJAX:異步的JavaScript And XML. * XMLHttpRequest: * 屬性: * onreadystatechange :當對象的狀態改變的時候會觸發. * readyState :記錄的是對象的狀態. * status :狀態碼. * responseText :響應文本. * responseXML :響應的XML. * 方法: * open(“請求方式”,”請求路徑”,true); * send(“請求參數”); * setRequestHeader(“頭名稱”,”頭的值”); JQuery中的AJAX: * load(); * get(); * post(); * ajax(); * $.ajax({ url:, data:, success:function(){ } }); * AJAX中的數據的格式: * 文本,HTML代碼,XML,JSON.

1.2 監聽器:Listener1.2.1 監聽器的概述:1.2.1.1 什麽是監聽器:

  • 監聽器:就是一個Java類,用來監聽其他的Java的狀態的變化.
    1.2.1.2 監聽器的用途:
  • 用來監聽其他的對象的變化的.
  • 主要應用在圖形化界面中比較多:
    • GUI,Android.
      1.2.1.3 監聽器的術語:
  • 事件源:指的是被監聽的對象.(汽車)
  • 監聽器:值的是監聽的對象.(報警器)
  • 事件源與監聽器的綁定:就是在汽車上安裝報警器.
  • 事件:指的是事件源的改變.(踹汽車一腳)---主要的功能獲得事件源對象.
    1.2.2 WEB中的監聽器的概述:1.2.2.1 WEB中的監聽器:
    WEB中的Listener和Filter是屬於Servlet規範中的高級的技術.
    WEB中的監聽器共有三類八種(監聽三個域對象)
  • 事件源:Servlet中的三個域對象.ServletContext,HttpSession,ServletRequest.
  • 監聽器:自定義類實現8個接口.
  • 事件源和監聽器的綁定:配置.
    1.2.2.2 WEB中的監聽器的分類:
    三類八種:
  • 一類:監聽三個域對象的創建和銷毀的監聽器:
    • ServletContextListener
    • HttpSessionListener
    • ServletRequestListener
  • 二類:監聽三個域對象的屬性變更的監聽器(屬性添加,移除,替換):
    • ServletContextAttributeListener
    • HttpSessionAttributeListener
    • ServletRequestAttributeListener
  • 三類:監聽HttpSession中的JavaBean的狀態改變(綁定,解除綁定,鈍化,活化)
    • HttpSessionBindingListener
    • HttpSessionActivationListener
      1.2.2.3 WEB中的監聽器的使用:
      編寫一個類實現監聽器的接口:
      通過配置文件配置監聽器:
      1.2.3 一類:監聽三個域對象的創建和銷毀的監聽器:1.2.3.1 ServletContextListener:監聽ServletContext對象的創建和銷毀:
      【方法】:
      技術分享圖片
      【ServletContext對象的創建和銷毀】:
  • 創建:服務器啟動的時候,服務器為每個WEB應用創建一個屬於該web項目的對象ServletContext.
  • 銷毀:服務器關閉或者項目從服務器中移除的時候.
    【應用代碼】
    public class MyServletContextListener implements ServletContextListener{@Override
    br/>@Override
    }
    @Override
    br/>System.out.println("ServletContext對象被創建了...");
    }
    @Override
    System.out.println("ServletContext對象被銷毀了...");
    }
    }
    配置: com.itheima.weblistener.MyServletContextListener 【企業中的應用:】
  • 1.加載框架的配置文件 :Spring框架 ContextLoaderListener
  • 2.定時任務調度:
    • Timer,TimerTask
      1.2.3.2 HttpSessionListener:監聽HttpSession的創建和銷毀的監聽器:
      【方法】
      技術分享圖片
      【HttpSession何時創建和銷毀的】
  • 創建:服務器端第一次調用getSession();
  • 銷毀:
    • 非正常關閉服務器(正常關閉session會序列化):
    • session過期了默認30分鐘.
    • 手動調用session.invalidate();
      【HttpSession的問題】
  • 訪問Servlet會不會創建Session : 不會
  • 訪問JSP會不會創建Session :會.
  • 訪問html會不會創建Session :不會
    【應用的代碼】
    public class MyHttpSessionListener implements HttpSessionListener{
        @Override
        public void sessionCreated(HttpSessionEvent se) {
                System.out.println("HttpSession被創建了...");
        }
        @Override
        public void sessionDestroyed(HttpSessionEvent se) {
                System.out.println("HttpSession被銷毀了...");
        }
    }
    配置:
    <listener>
    <listener-class>com.itheima.weblistener.MyHttpSessionListener</listener-class>
    </listener>

    1.2.3.3 ServletRequestListener:監聽ServletRequest對象的創建和銷毀的監聽器:
    【方法】:
    技術分享圖片
    【request對象何時創建和銷毀】:

  • 創建:客戶端向服務器發送一次請求,服務器就會創建request對象.
  • 銷毀:服務器對這次請求作出響應後就會銷毀request對象.
    【問題】:
    訪問一個Servlet會不會創建request對象:會
    訪問一個JSP會不會創建request對象:會
    訪問一個HTML會不會創建request對象:會
    【應用的代碼】
    public class MyServletRequestListener implements ServletRequestListener{
        @Override
        public void requestDestroyed(ServletRequestEvent sre) {
                System.out.println("ServletRequest被銷毀了...");
        }
        @Override
        public void requestInitialized(ServletRequestEvent sre) {
                System.out.println("ServletRequest被創建了...");
        }
    }
    配置:

    <listener>
    <listener-class>com.itheima.weblistener.MyServletRequestListener</listener-class>
    </listener>
    1.2.4 二類:監聽三個域對象的屬性變更的監聽器:(屬性添加,移除,替換)1.2.4.1 ServletContextAttributeListener:監聽ServletContext對象的屬性變更:
    技術分享圖片
    1.2.4.2 HttpSessionAttributeListener:監聽HttpSession中的屬性變更:
    技術分享圖片
    1.2.4.3 ServletRequestAttributeListener:監聽ServletRequest對象的屬性變更的:
    技術分享圖片
    1.2.5 三類:監聽HttpSession中的JavaBean的對象的狀態改變的監聽器
    第三類監聽器很特殊,不需要進行配置的.作用在JavaBean上的監聽器.JavaBean可以自己感知到在Session中的狀態.
    1.2.5.1 HttpSessionBindingListener:監聽HttpSession中的JavaBean的綁定和解除綁定的
    技術分享圖片
    1.2.5.2 HttpSessionActivationListener:監聽HttpSession中的JavaBean的鈍化和活化的.
    技術分享圖片

  • sessionDidActivate(); :--活化(反序列化)
  • sessionWillPassivate(); :--鈍化(序列化到硬盤)
    ***** 優化Session:
    • 通過配置<Context>標簽配置定時session序列化.
      • 在tomcat/conf/context.xml中配置<Context> :在tomcat中所有的虛擬主機和虛擬路徑都會按照這個配置執行.
      • 在tomcat/conf/Catalina/localhost/context.xml配置<Context> :在tomcat中的localhost虛擬主機中的所有虛擬路徑按照這個配置執行.
      • 在當前的工程下的META-INF/context.xml配置<Context> :當前這個工程按照配置執行.

JavaWeb16-HTML篇筆記(一)