Tomcat加載JSP主要有以下幾個類:
JspServlet
JspServletWrapper
JspCompilationContext
JspRuntimeContext
JsperLoader
Compiler
?這幾個類都在jasper.jar包中
?
1.Tomat將http請求通過servlet轉給JspServlet
2.JspServlet在JspRuntimeContext的上下文中查找JspServletWrapper,如果沒有找到就新建實例,找到了話就取出來用
3.JspServletWrapper初始化時也會初始化一個JspCompilationContext
4.JspServlet將請求轉給JspServletWrapper的service方法進行處理
5.JspServletWrapper將判斷系統是否允許重加載this.options.getDevelopment,如果允許將調用JspCompilationContext的編譯方法compile
6.JspCompilationContext的compile方法通過判斷jsp文件的時間戳來決定是否將類加載器JsperLoader的引用置null
7.JspServletWrapper通過getServlet方法從JspCompilationContext加載(load方法)jsp編譯后的class類,并實例化
8.JspCompilationContext類在load時,首先要獲得JsperLoader,如果它為null將新建一個實例,然后讓JsperLoader這個類加載器加載jsp的class
9.JspServletWrapper獲得實例化的servlet后,將把JspServlet轉過來的請求交由這個servlet處理
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
