1.建立一個Java項目:HelloServletWeb;java
2.在HelloServletWeb中建立一個文件夾webapp,表示Web項目的根;web
3.在webapp中建立WEB-INF文件夾apache
4.在WEB-IN中建立文件夾:lib,classesapi
5.在WEB-IN中去Tomcat根/conf拷貝web.xml文件,只須要保留根元素tomcat
6.把當前項目的classpath路徑改爲webapp/WEB-IN下的classes中app
1:拷貝Tomcat根/lib/servlet-api.jar到項目的WEB-INF/lib目錄中,並作build pathwebapp
2:編寫Servlet程序,使之實現javax.servlet.Servlet接口,並覆蓋接口中的方法.ui
public class HelloServlet implements javax.servlet.Servlet{...實現方法...}
3:發現方法中參數出現arg0,arg1的狀況是由於沒有關聯Servlet的源代碼.spa
是否關聯源代碼和程序最終的運行沒有關係,只是在開發階段參數美觀,可閱讀源代碼. Tomcat的源代碼程序:apache-tomcat-7.0.57-src.zip
4:在service(ServletRequest req, ServletResponse res)方法,打印一句話.code
引導:此時HelloServlet類,和Tomcat一點關係都沒有:咱們須要告訴Tomcat來幫咱們管理HelloServlet類.(Tomcat是Servlet的容器,會負責Servlet對象的生命週期和方法調用).因此,得以配置的形式,告訴Tomcat來幫咱們管理自定義的Servlet類.
5:Servlet配置
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
部署項目,並訪問:
server.xml中:
<Context docBase="D:\javapro\demo\webapp" path="day3" /> 訪問: http://ip:port/contextPath/資源名 http://localhost:80/day3/hello
Servlet的生命週期:建立對象,初始化操做,運行操做,銷燬操做.
Tomcat管理了Servlet對象的生命週期,Servlet對象整個過程都是由Tomcat來管理的.
Servlet的建立,初始化,運行,銷燬的行爲都是Tomcat來負責調用的.
javax.servlet.Servlet接口中的方法:
String getServletInfo():獲取Servlet的信息(Servlet的做者,版本,版權相關).
ServletConfig getServletConfig():獲取Servlet的配置信息對象.
void init(ServletConfig config):初始化Servlet對象方法
void service(ServletRequest req, ServletResponse resp):服務方法,Web動態網頁的操做就編寫在該方法.
生命週期方法:
構造器:在服務端程序第一次被請求的時候,調用,只被調用一次.
void init(ServletConfig config):在構造器執行完畢以後,調用init方法,也只會執行一次.
void service(ServletRequest req, ServletResponse resp):每一次請求都會執行該方法.
void destroy():正常關閉Tomcat纔會執行(該方法不必定會被執行,咱們不必在其中編寫掃尾的操做).
總結:構造器--->init方法---->[ service方法 ]循環 ---->destory方法
注意:
1):Servlet類的構造器必須使用public修飾.
2):Servlet類必須是無參數構造器.
緣由:底層建立Servlet對象:Class.newInstance()方式.--->公共的無參數構造器.
總結:保證Servlet必須有一個公共的無參數構造器,方便Tomcat底層建立Servlet的對象.