web学习2--理解MVC及快速入门
1. mvc入門詳解:?點擊打開鏈接
2.1 web.xml簡介
?
1、啟動一個WEB項目的時候,WEB容器會去讀取它的配置文件web.xml,讀取<listener>和<context-param>兩個結點。?
2、緊急著,容創建一個ServletContext(servlet上下文),這個web項目的所有部分都將共享這個上下文。?
?
3. 容器以<context-param></context-param>的name作為鍵,value作為值,將其轉化為鍵值對,存入ServletContext。
?
4. 容器創建<listener></listener>中的類實例,根據配置的class類路徑<listener-class>來創建監聽,在監聽中會有contextInitialized(ServletContextEvent args)初始化方法,啟動Web應用時,系統調用Listener的該方法,在這個方法中獲得:
ServletContext?application =?ServletContextEvent.getServletContext();
context-param的值?=?application.getInitParameter("context-param的鍵");?得到這個context-param的值之后,你就可以做一些操作了。
5. 舉例:你可能想在項目啟動之前就打開數據庫,那么這里就可以在<context-param>中設置數據庫的連接方式(驅動、url、user、password),在監聽類中初始化數據庫的連接。這個監聽是自己寫的一個類,除了初始化方法,它還有銷毀方法,用于關閉應用前釋放資源。比如:說數據庫連接的關閉,此時,調用contextDestroyed(ServletContextEvent args),關閉Web應用時,系統調用Listener的該方法。
6. 接著,容器會讀取<filter></filter>,根據指定的類路徑來實例化過濾器。
7.?以上都是在WEB項目還沒有完全啟動起來的時候就已經完成了的工作。如果系統中有Servlet,則Servlet是在第一次發起請求的時候被實例化的,而且一般不會被容器銷毀,它可以服務于多個用戶的請求。所以,Servlet的初始化都要比上面提到的那幾個要遲。
8.?總的來說,web.xml的加載順序是:<context-param>-><listener>-><filter>-><servlet>。其中,如果web.xml中出現了相同的元素,則按照在配置文件中出現的先后順序來加載。
9. 對于某類元素而言,與它們出現的順序是有關的。以<filter>為例,web.xml中當然可以定義多個<filter>,與<filter>相關的一個元素是<filter-mapping>,注意,對于擁有相同<filter-name>的<filter>和<filter-mapping>元素而言,<filter-mapping>必須出現在<filter>之后,否則當解析到<filter-mapping>時,它所對應的<filter-name>還未定義。web容器啟動初始化每個<filter>時,按照<filter>出現的順序來初始化的,當請求資源匹配多個<filter-mapping>時,<filter>攔截資源是按照<filter-mapping>元素出現的順序來依次調用doFilter()方法的。<servlet>同<filter>類似,此處不再贅述。
2.2 web.xml標簽詳解
https://blog.csdn.net/believejava/article/details/43229361
?
總結
以上是生活随笔為你收集整理的web学习2--理解MVC及快速入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 泛微java笔试
- 下一篇: mysql-bin_MySQL - bi