ServletGenericServletHttpServlet關系
javax.servlet.GenericServlet實現了Servlet接口
javax.servlet.http.HttpServlet繼承自javax.servlet.GenericServlet類
所以編寫Servlet繼承HttpServlet或GenericServlet即可。
如何編寫自定義的Servlet代碼
1、追加環(huán)境變量servlet-api.jar,編寫自定義servlet繼承HttpServlet,并重寫doGet方法,生成class文件待用(訪問控制符應該是public)
2、在webapps目錄下找到example中的WEB-INF,copy其中的web.xml
3.在webapps目錄下生成自己的文件夾,copyWEB-INF/web.xml
如何部署Servlet(web.xml)、ServletUrl映射路徑(注意*的使用)
servlet
!--servlet的名字,隨便起個名,但和下面的servlet-name名一致--
servlet-namemgc/servlet-name
!--WEB-INF中文件路徑--
servlet-classAnyDirectory.ServletClassName/servlet-class
!--或者可以用servletclass:jsp-file/WEB-INF/hello.jsp/jsp-file--
/servlet
servlet-mapping
!--servlet的名字,隨便起個名,但和上面的servlet-name名一致--
servlet-namemgc/servlet-name
!--訪問映射路徑--
url-pattern/hello/url-pattern
/servlet-mapping
Servlet生命周期:
類加載、實例化、初始化、服務、銷毀
service(HttpServletRequestrequest,HttpServletResponseresponse)方法的作用:
根據不同的請求,進行分發(fā)工作(Http協議)
init(ServletConfigconfig)與init()方法
當容器(tomcat)幫忙調用init(ServletConfigconfig)并且給傳過來一個參數config,這個方法把參數對象的引用指向類的成員變量this.config,并且調用類的this.init()方法。如果我們在寫Servlet類時只要重寫init(ServletConfigconfig)就可以了,但是init()不就成了多余的了嗎?實際上init()方法是為了防止程序員在寫Servlet類重寫init(ServletConfigconfig)時忘記寫super.init(ServletConfigconfig),這樣就容易造成出現空指針異常。而這就要求我們最好不要重寫init(ServletConfigconfig)。
配置Servlet初始化參數:
init-paramparam-nameparam-value
ServletContext上下文是什么?和Servlet、ServletConfig的關系
ServletContext:
servletContext接口是Servlet中最大的一個接口,呈現了web應用的Servlet視圖。ServletContext實例是通過getServletContext()方法獲得的,由于HttpServlet繼承Servlet的關系GenericServlet類和HttpServlet類同時具有該方法。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |