概念:運行在服務器端的小程序java
Servlet就是一個接口,定義了Java類被瀏覽器訪問到(tomcat識別)的規則。web
未來咱們自定義一個類,實現Servlet接口,複寫方法。小程序
package com.jplus.action; import javax.servlet.*; import javax.servlet.http.HttpServlet; import java.io.IOException; public class ServletDemo implements Servlet { @Override public void init(ServletConfig servletConfig) throws ServletException { } @Override public ServletConfig getServletConfig() { return null; } //提供服務 @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { System.out.println("hello Servlet!"); } @Override public String getServletInfo() { return null; } @Override public void destroy() { } }
配置Servlet瀏覽器
在web.xml中配置tomcat
<!-- 配置Servelt --> <servlet> <servlet-name>Demo</servlet-name> <servlet-class>com.jplus.action.ServletDemo</servlet-class> </servlet> <servlet-mapping> <servlet-name>Demo</servlet-name> <url-pattern>/Demo</url-pattern> </servlet-mapping>
被建立:執行init方法,只執行一次安全
Servlet何時被建立服務器
默認狀況:在第一次被訪問時候被建立app
能夠配置web.xml,改變建立的時機ide
<servlet> <servlet-name>Demo</servlet-name> <servlet-class>com.jplus.action.ServletDemo</servlet-class> <!--指定Servlet建立時機 1.第一次被訪問時建立 <load-on-startup>負數 2.服務器啓動的時候被建立 <load-on-startup>0或正數 --> <load-on-startup>5</load-on-startup> </servlet>
Servlet的init方法,只執行一次,說明一個Servlet在內存中只存在一個對象,Servlet是單例的url
多個用戶同時訪問,可能存在線程安全問題
解決:不要再Servlet中定義成員變量,定義成員變量,不要修改值。
提供服務:執行service方法,執行屢次
每次訪問Servlet時,Service方法都會被調用一次
被銷燬:執行destroy方法,只執行一次
註解配置
選擇Servlet的版本3.0以上,能夠不建立web.xml
定義一個類,實現Servlet接口
複寫方法
使用註解
@WebServlet(「資源路徑」)
Servlet - -接口
GenericServlet - -抽象類
將Servlet接口中其餘方法作了默認空實現,只將service( )方法做爲抽象,
未來定義Servlet類時,能夠繼承GenericServlet,實現service( )方法便可
HttpServlet - -抽象類
定義類繼承HttpServlet
複寫doGet/doPost方法