開(kāi)發(fā)servlet步驟 Java官方?jīng)]有實(shí)現(xiàn)Servlet類,那在服務(wù)器運(yùn)行過(guò)程中,Servlet類的代碼是怎么起作用的?
Java官方?jīng)]有實(shí)現(xiàn)Servlet類,那在服務(wù)器運(yùn)行過(guò)程中,Servlet類的代碼是怎么起作用的?謝謝。首先,主要的問(wèn)題是如何實(shí)現(xiàn)servlet?實(shí)現(xiàn)了什么邏輯?你的業(yè)務(wù)代碼應(yīng)該寫在哪里?其次,對(duì)于s
Java官方?jīng)]有實(shí)現(xiàn)Servlet類,那在服務(wù)器運(yùn)行過(guò)程中,Servlet類的代碼是怎么起作用的?
謝謝。
首先,主要的問(wèn)題是如何實(shí)現(xiàn)servlet?實(shí)現(xiàn)了什么邏輯?你的業(yè)務(wù)代碼應(yīng)該寫在哪里?
其次,對(duì)于servlet的執(zhí)行,我們這里不直接給出答案,只是從外觀上引導(dǎo)思考,讓主體自己去尋找答案:
Tomcat是如何將JSP代碼編譯成Servlet代碼的?
要知道Tomcat是如何將JSP編譯成servlet的,我們必須從源代碼開(kāi)始。
在tomcat中,與JSP處理相關(guān)的所有函數(shù)都在org.apache.jasper網(wǎng)站在包中,包中有一個(gè)jspc類。命名類似于Java的編譯命令javac。我們可以在這個(gè)類中找到編譯JSP的相關(guān)代碼。
JspC.execute文件()方法是編譯的入口。讓我們看看這個(gè)方法是如何工作的。
第一步是初始化classloader和ServletContext,然后掃描所有JSP文件。
接下來(lái),將所有JSP文件編譯成servlet。processfile()方法封裝了整個(gè)編譯過(guò)程。我們來(lái)看看這個(gè)方法。
在這里,我們終于找到了編譯器(編譯器類),我們即將找到最終答案
! org.apache.jasper網(wǎng)站. 編譯器.編譯器類是一個(gè)抽象類,它的核心方法是compile方法:這里最重要的兩個(gè)步驟是從JSP文件生成java代碼,然后將java代碼編譯成類。
generateclass方法是一種抽象方法,由子類實(shí)現(xiàn)。Tomcat中有兩個(gè)編譯器:jdtcompiler和ant編譯器。這兩個(gè)類分別調(diào)用eclipsejdt編譯器和ant編譯器來(lái)編譯上一步生成的Java代碼。
以上是Tomcat將JSP文件編譯成servlet的過(guò)程,希望能回答這些問(wèn)題。歡迎批評(píng)指正。如果你喜歡它,請(qǐng)喜歡它并注意它。