【設計改變世界】 果然如此的專欄
阿新 • • 發佈:2019-01-01
web.xml
<display-name>javawebdemo</display-name> <context-param> <param-name></param-name> <param-value></param-value> </context-param> <listener> <listener-class>myServlet.MyServletContextListener</listener-class> </listener> <listener> <listener-class>myServlet.SessionListener</listener-class> </listener> <listener> <listener-class>myServlet.FirstServletRequestListener</listener-class> </listener> <listener> <listener-class>myServlet.SecondServletRequestListener</listener-class> </listener> <filter> <filter-name>FirstFilter</filter-name> <filter-class>myServlet.FirstFilter</filter-class> </filter> <filter-mapping> <filter-name>FirstFilter</filter-name> <url-pattern>/MyServlet</url-pattern> </filter-mapping> <filter> <filter-name>SecondFilter</filter-name> <filter-class>myServlet.SecondFilter</filter-class> </filter> <filter-mapping> <filter-name>SecondFilter</filter-name> <url-pattern>/MyServlet</url-pattern> </filter-mapping> <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>javawebdemo.MyServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/MyServlet</url-pattern> </servlet-mapping>
啟動日誌:
MyServletContextListener.contextInitialized
FirstFilter.init
SecondFilter.init
MyServlet.init
請求/javawebdemo/MyServlet日誌
FirstServletRequestListener.requestInitialized
SecondServletRequestListener.requestInitialized
FirstFilter.doFilter Begin
SecondFilter.doFilter Begin
MyServlet.doGet
SessionListener.sessionCreated //HttpSession session = request.getSession(true);需要強制建立session
SecondFilter.doFilter End
FirstFilter.doFilter End
SecondServletRequestListener.requestDestroyed
FirstServletRequestListener.requestDestroyed
以上看出啟動流程啟動階段:contextInitialized->Filter.init->Servlet.init(web.xml設定<load-on-startup>1</load-on-startup>) 訪問階段:RequestListener.requestInitialized->FirstFilter.doFilter->SecondFilter.doFilter->Servlet->返回SecondFilter.doFilter->返回FirstFilter.doFilter->RequestListener.requestDestroyed 簡單:Listener->Filter->Servlet->Filter->Listener
配置說明
listener:不配置url請求過濾
filter:需要配置url或servlet過濾
servlet:需要配置url或servlet過濾
按監聽的物件劃分
ServletContext物件監聽器
HttpSession物件監聽器
ServletRequest物件監聽器
按監聽的事件劃分
物件自身的建立和銷燬的監聽器
物件中屬性的建立和消除的監聽器
session中的某個物件的狀態變化的監聽器