javax.servlet
Interface Servlet
是規(guī)范的接口,為了深入了解Servlet原理,要實際開發(fā)一個實現(xiàn)該接口的類,來作為第一個Servlet。
public void init(ServletConfig config)
throws ServletException
這個方法,是由容器在實例化一個Servlet實例后,確切會調(diào)用該方法一次。通過判斷是否拋出異常來確認(rèn)Servlet是否被正確初始化。
public void service(ServletRequest req,
ServletResponse res)
throws ServletException,
java.io.IOException
這個方法,是我們實現(xiàn)業(yè)務(wù)邏輯的方法,req和res就是由Web服務(wù)器對于請求和相應(yīng)的有效封裝。
沒有什么神秘的,java網(wǎng)絡(luò)編程中,ServerSocket的accept方法返回之后,會獲得相應(yīng)的一個Socket對象,通過該對象可以進而獲得對應(yīng)客戶端的輸入流和輸出流。在對其進行封裝就進而到Request和Response對象。
傳入service方法,req可以獲得請求的頭部信息,res.getWriter,獲得一個輸出,進行輸出信息,作為真正響應(yīng)。
public void destroy()
This method is only called once all threads within the servlet's service
method have exited or after a timeout period has passed.
只有在service方法運行完,或者一個timeout后,會被調(diào)用。
After the servlet container calls this method, it will not call the service
method again on this servlet.
一旦調(diào)用它,就不會再提供服務(wù)。
public ServletConfig getServletConfig()
返回傳入init方法的那個ServletConfig,也就是服務(wù)器的ServletConfig。這個方法主要為了其他實例來使用ServletConfig實例。
public java.lang.String getServletInfo()
好比普通的toString()方法,返回注冊信息。
編譯注意事項:
要在環(huán)境變量的classpath中將servlet-api.jar的路徑加上,這樣編譯才能通過。
所以最好先準(zhǔn)備好tomcat服務(wù)器,以便利用它內(nèi)置的jar文件。
D:\jakarta-tomcat-5.0.19\common\lib\servlet-api.jar
======================================
編譯好后,是一個帶包結(jié)構(gòu)的.class文件目錄層次。
如何部署呢?
很簡單,在D:\jakarta-tomcat-5.0.19\webapps中建立一個自己的應(yīng)用文件夾,例如:imshark
這時就可以將靜態(tài)網(wǎng)頁放入該文件夾了,然后要按照java web 應(yīng)用的規(guī)范,建立一個WEB-INF的文件夾,然后里面放置一個標(biāo)準(zhǔn)的web.xml文件,就可以訪問了。
web.xml









然后部署servlet,在WEB-INF文件夾中,建立一個classes的目錄,然后,將帶目錄結(jié)構(gòu)的.class文件放入該文件夾,然后修改web.xml


















http://localhost:8080/imshark/getTime.jsp
所以可看出getTime.jsp是一個虛擬的路徑地址,并不實際存在,完全有web.xml構(gòu)造的。
以上就是最基本的Servlet的知識點。