用途:讓伺服器端接收浏覽器端發來的請求并傳回資料。
使用:
1、建立實作了servlet接口的java類,一般繼承HttpServlet類
2、在web.xml中注冊,并配置通路路徑
HttpServlet類:該類實作了原始的servlet接口,并重寫了service()方法,主要完成了根據使用者通路的類型get或者post,來決定去調用doGet()還是doPost()方法,是以開發者不需要再重寫service方法了。
運作過程:
web容器隻會在使用者第一次通路servlet時執行個體化servlet,并調用init()方法,而每次使用者的通路請求都會調用service()方法。可以通過load-on-startup在web應用啟動時就執行個體化servlet,為系統準備必要的資料等。
<servlet>
<servlet-name>aa</servlet-name>
<servlet-class>
xxx
</servlet-class>
<load-on-startup>1</load-on-startup></span>
</servlet>
預設servlet
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
例子
<servlet-name>aa</servlet-name>
<servlet-class>xxx</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>aa</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Servlet中一些重要的對象
ServletConfig對象
servlet的init方法會接收一個ServletConfig對象,而在web.xml中注冊servlet時可以通過<init-param>設定一些參數,這些參數會被存到ServletConfig對象中。
ServletContext對象
容器會為每個web應用建立一個ServletContext對象,可以通過ServletConfig.getServletContext方法獲得ServletContext對象。該對象有幾個作用:
一、是完成同一個web應用内的各個servlet的通訊。就是在一個servlet中将資料setAttribute()進來,再從另一個servlet中getAttribute得到。
二、得到web應用的參數配置
在web.xml中可以通過<context-param>進行應用級别的參數配置,如下:
<context-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/test</param-value>
</context-param>
然後可以在doGet()方法中
servletContext.getInitParameter("url");
這樣得到。
三、請求轉發
在doGet()方法中,servletContext.getRequestDispatcher("另一個servlet").forward(request, response);
四、讀取資源檔案
InputStream in = this.getServletContext().getResourceAsStream("/db1.properties");