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

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