JavaWeb16-HTML篇筆記(一)
阿新 • • 發佈:2018-06-04
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 監聽器的術語:
- GUI,Android.
- 事件源:指的是被監聽的對象.(汽車)
- 監聽器:值的是監聽的對象.(報警器)
- 事件源與監聽器的綁定:就是在汽車上安裝報警器.
- 事件:指的是事件源的改變.(踹汽車一腳)---主要的功能獲得事件源對象.
1.2.2 WEB中的監聽器的概述:1.2.2.1 WEB中的監聽器:
WEB中的Listener和Filter是屬於Servlet規範中的高級的技術. - 事件源: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何時創建和銷毀的】
- Timer,TimerTask
- 創建:服務器端第一次調用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> :當前這個工程按照配置執行.
- 通過配置<Context>標簽配置定時session序列化.
JavaWeb16-HTML篇筆記(一)