色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

Tomcat是如何將JSP代碼編譯成Servlet代碼的

錢瀠龍2年前18瀏覽0評論

Tomcat是如何將JSP代碼編譯成Servlet代碼的?

要知道tomcat如何將JSP編譯成Servlet,還得從源代碼入手。

tomcat中,和jsp處理相關的功能都在org.apache.jasper包中,包中有一個JspC類,命名和java的編譯命令JAVAC有異曲同工之妙,我們在這個類里可以找到編譯JSP的相關代碼。

JspC.execute()方法是編譯的入口,我們來看看這個方法都是怎么做的。

首先是初始化工作,先初始化classloader 和 ServletContext,然后掃描所有的JSP文件。

接下來,就是將所有JSP文件編譯成Servlet了。processFile()方法,封裝了整個編譯過程,我們再來看看這個方法。

在這里,我們終于找到了編譯器(Compiler類),就要找到最終答案了!

org.apache.jasper.compiler.Compiler類是一個抽象類,它的核心方法是compile方法:

這里最重要的兩個步驟就是將JSP文件生成JAVA代碼,再將JAVA代碼編譯成class。

其中generateClass方法是抽象方法,由子類實現,tomcat中有兩個Compiler的實現:JDTCompiler和AntCompiler,這兩個類分別調用Eclipse JDT Compiler和Ant Compiler來編譯上一步生成的JAVA代碼。

以上就是tomcat將JSP文件編譯成Servlet的過程,希望能解答題主的疑惑。歡迎大家批評指正,如果喜歡請點贊,關注。