Web學習日記_07:servlet的學習之servlet的概述以及方法
Servlet的概述
servlet是JavaWeb三大元件之一,屬於動態資源。其作用的處理請求,伺服器會把接收到的請求交給servlet來處理。
通常需要:
- 接受請求資料
- 處理請求
- 完成迴應
sevelet需要tomcat呼叫,但是需要自己編寫servlet,每個servlet必須實現javax.servlet.Servlet介面。
servlet的編寫
package cn.itcode.code; import java.io.IOException; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class servletDome implements Servlet { public void destroy() { } public ServletConfig getServletConfig() { return null; } public String getServletInfo() { return null; } public void init(ServletConfig arg0) throws ServletException { } public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException { } }
在寫servlet時,需要實現javax.servlet.Servlet並重寫Servlet介面中的方法。由上可以看出,Servlet介面有五個方法。下面將會對這五個方法一一介紹。
介紹:在這五個方法中有三個是屬於生命週期方法:
第一個方法:
public void init(ServletConfig arg0) throws ServletException {
}
這個方法是在servlet建立物件之後立馬被呼叫,可以用這個方法來獲取初始化引數或者獲取全部的初始化引數名稱,但是隻能執行一次。
第二個方法:
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException { } }
它會被呼叫多次,每次處理請求都是在呼叫這個方法!
第三個方法:
public void destroy() {
}
這個方法是在在Servlet被銷燬之前呼叫,並且它只會被呼叫一次!可使用它銷燬一些程序等。但是這個方法不常用,java已經自帶垃圾處理器了。
第四個方法:
public ServletConfig getServletConfig() {
return null;
}
獲取servlet的配置資訊
第五個方法:
public String getServletInfo() {
return null;
}
獲取Servlet的資訊
在上面這個方法中,前三個屬於生命週期方法。
那再寫好servlet之後,這麼去執行servlet呢?
這是需要修改web.xml配置檔案中的程式碼了。
開啟WEB-INF》WEB-INF,在裡面找到web.xml。若沒有可以自己寫或者去tomcat裡面借一個過來。點選開啟在裡面寫入:
<servlet>
<servlet-name>自定義名稱</servlet-name>
<servlet-class>專案中類所在路徑</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>與自定義名稱相同名</servlet-name>
<url-pattern>/自定義訪問路徑</url-pattern>
</servlet-mapping>
在瀏覽器執行時,先是解析到 <url-pattern>/自定義訪問路徑</url-pattern>,後面解析到<servlet-name>與自定義名稱相同名</servlet-name>,在獲取到“與自定義名稱相同名”後對映到與之名稱相同的<servlet-name>自定義名稱</servlet-name>(通過名稱相同的方式進行連線訪問)。最後才訪問到 <servlet-class>專案中類所在路徑</servlet-class>。也就是訪問我們所寫的servlet服務。
完結!!!!!
下節在續QAQ