什麽是servlet?
一、servlet是什麽?
是用java編寫的應用在服務端的程序,具有獨立於平臺和協議的特性,主要功能在於交互式地瀏覽和修改數據,生成動態Web內容,例如頁面等等。從實現上講,Servlet可以響應任何類型的請求,但絕大多數情況下Servlet只用來擴展基於HTTP協議的Web服務器。
二、工作原理、流程
1、原理
Servlet容器將Servlet類載入內存,並產生Servlet實例和調用它具體的方法。但是要註意的是,在一個應用程序中,每種Servlet類型只能有一個實例。
2、servlet接口
public interface Servlet { voidinit(ServletConfig var1) throws ServletException; ServletConfig getServletConfig(); void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException; String getServletInfo(); void destroy(); }
init():很明顯,servlet的初始化,依賴於servletConfig對象。當Servlet第一次被請求時,Servlet容器就會開始調用這個方法來初始化一個Servlet對象出來,但是這個方法在後續請求中不會在被Servlet容器調用。
getServletConfig():返回由Servlet容器傳給init()方法的ServletConfig對象。
service():每當請求Servlet時,Servlet容器就會調用這個方法。
getServletInfo():返回Servlet的一段描述,可以返回一段字符串。
destroy():卸載應用程序或者關閉Servlet容器時,Servlet容器就會調用這個方法銷毀Servlet。
3、實現類
Servlet接口SUN公司定義了兩個默認實現類,分別為:GenericServlet、HttpServlet。
HttpServlet指能夠處理HTTP請求的servlet,它在原有Servlet接口上添加了一些與HTTP協議處理方法,它比Servlet接口的功能更為強大。因此開發人員在編寫Servlet時,通常應繼承這個類,而避免直接去實現Servlet接口。
4、示例
選擇要實現的方法
註意上面servlet使用了@WebServlet註解,因此就不需要在web.xml中進行配置。
啟動tomcat,效果如下:
或者去掉@WebServlet註解,配置web.xml
工作流程:
- 客戶端發送請求至服務器端;
- 服務器將請求信息發送至 Servlet;
- Servlet 生成響應內容並將其傳給服務器。響應內容動態生成,通常取決於客戶端的請求;
- 服務器將響應返回給客戶端。
最常用的Tomcat就是實現了servlet規範的servlet容器,servlet規範中定義了一些應用容器的職責、規範、約束等等。
tomcat簡單的工作流程圖:
什麽是servlet?