Servlet工作原理解析
1 Servlet容器
Tomcat容器分四個等級,真正管理servlet的容器是context容器,一個web應用對應一個context容器,也就是servlet運行時的servlet容器。添加一個web應用創(chuàng)建一個standcontext容器,并且給這個context設置必要的參數(shù),url和path分別代表這個應該在tomcat中的訪問路徑和物理路徑。
2 web應用的初始化
應用的初始化主要是解析web.xml文件,這個文件描述了一個web應用的關鍵信息,也是一個web應用的入口。
web.xml中各個配置項將會被解析成對應屬性保存在webxml對象中,然后webxml對象的屬性設置在context容器中。
3 servlet工作原理
3.1創(chuàng)建servlet對象:servlet在load-on-startup配置項大于0,context容器啟動就會被實例化;否則,調用時實例化
3.2初始化servlet:調用servlet的init()方法
3.3tomcat接受到請求,根據(jù)url從mapper(mapper類保存了container容器中所有子容器信息)中選擇正確的servlet容器,并在請求到達最終的servlet之前還要完成必要的一些步驟,必須要執(zhí)行的Filter鏈,以及通知在web.xml中定義的listener。
3.4 執(zhí)行servlet的service()方法
3.5當servlet從servlet容器中移除,servlet生命周期結束,調用servlet的destroy方法,銷毀
4 servlet中l(wèi)istener
tomcat服務器中,listener使用非常廣泛,基于觀察者模式設計,listener設計給開發(fā)servlet應用程序帶來很大便捷,能夠方便的另一個縱向維度控制程序和數(shù)據(jù)。目前在servlet中提供了6種兩類事件的觀察者接口,分別是EventListener(某個事件出發(fā))ServletContextAttributeListener、ServletRequestAttributeListener、ServletRequestListener、HttpSessionAttributeListener和LifecycleListener(生命周期不同狀態(tài)觸發(fā))類型的ServletContextListener、HttpSessionListener。
5 Filter工作
在web.xml中<filter>和<filter-mapping>組合使用Filter
符合匹配規(guī)則的所有filter執(zhí)行完成之后才會執(zhí)行最終的servlet,如果在某個filter的doFilter方法中,調用FilterChain.doFilter請求繼續(xù)傳遞,否則,直接返回
6 Servlet中url-pattern
匹配規(guī)則
精準匹配
路徑匹配:/foo/*匹配以foo為前綴的url
后綴匹配:*.html會匹配以.html為后綴的url
理解最長路徑匹配規(guī)則
————————————————
原文鏈接:https://blog.csdn.net/android_gogogo/article/details/79532430
總結
以上是生活随笔為你收集整理的Servlet工作原理解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iText使用
- 下一篇: 使用C语言编写一个算数的除法运算(保留n