<%-- 靜态包含 --%>
<%-- 動态包含 --%>
<%-- 轉發 --%>
1)靜态包含--很常用
<%@ include file="" %>
靜态包含是把包含的頁面内容原封裝不動的輸出到包含的位置。
2)動态包含--很少用
<jsp:include page=""></jsp:include>
動态包含會把包含的 jsp 頁面單獨翻譯成 servlet 檔案,然後在執行到時候再調用翻譯的 servlet 程式。并把 計算的結果傳回。
動态包含是在執行的時候,才會加載。是以叫動态包含。
3)頁面轉發--常用
<jsp:forward page=""></jsp:forward>
<jsp:forward 轉發功能相當于
request.getRequestDispatcher("/xxxx.jsp").forward(request, response); 的功能
靜态包含和動态包含的差別:
在這裡需要補充說明一點:我們在工作中,幾乎都是使用靜态包含。理由很簡單。因為 jsp 頁面雖然可以寫 java 代碼,做其他的功能操作。但是由于 jsp 在開發過程中被定位為專門用來展示頁面的技術。也就是說。jsp 頁面中,基 本上隻有 html,css,js。還有一些簡單的 EL,表達式腳本等輸出語句。是以我們都使用靜态包含。![]()
jsp 的常用标簽(重點****)
1、什麼是 Listener 監聽器
什麼是監聽器?監聽器就是實時監視一些事物狀态的程式,我們稱為監聽器。 就好像朝陽群衆?朝陽區隻要有哪個明星有什麼不好的事,他們都會知道,然後舉報。 那麼朝陽群衆就是監聽器,明星就是被監視的事物,舉報就是響應的内容。
又或者說是,電動車的報警器。當報警器鎖上的時候。我們去碰電動車,電動車就會報警。 報警器,就是監聽器,電動車就是被監視的對象。報警就是響應的内容。
2、ServletContextListener 監聽器
javax.servlet.ServletContextListener ServletContext 監聽器
監聽器的使用步驟。
第一步:我們需要定義一個類。然後去繼承生命周期的監聽器接口。
第二步:然後在 Web.xml 檔案中配置。
ServletContextListener 監聽器,一定要在 web.xml 檔案中配置之後才會生效
<listener>
<listener-class>全類名</listener-class>
</listener>
生命周期監聽器兩個方法:
public void contextInitialized(ServletContextEvent sce)
是 ServletContext 對象的建立回調
public void contextDestroyed(ServletContextEvent sce)
是 ServletContext 對象的銷毀回調
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class ServletContextListenerImpl implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("ServletContext 對象被建立了");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("ServletContext 對象被銷毀了");
}
}
在 web.xml 檔案中的配置如下:
<listener>
<listener-class>com.atguigu.listener.RequestListener</listener-class>
</listener>
這個時候,啟動 web 工程和正常停止 web 工程,背景都會如下列印: