Servlet是單例的档桃,一個類只有一個對象枪孩,可能存在多個Servlet.線程不安全,效率高.
Servlet作用:接受請求數(shù)據(jù),處理請求藻肄,完成響應
Servlet : init(),destory(),service()為生命周期方法. init,destory只執(zhí)行一次蔑舞,service多次
實現(xiàn)Servlet有3種方法:
1.實現(xiàn)Servlet接口,并在web.xml中配置?
2.繼承GenericServlet(實現(xiàn)了Servlet,ServletConfig,Serializable接口)
init(ServletConfig sc){init();}生命周期方法種自定義init方法嘹屯,當執(zhí)行生命周期方法時會自動調(diào)用攻询,并且不覆蓋init周期方法
3.繼承HttpServlet(實現(xiàn)了Servlet,ServletConfig,Serializable接口,并且多了http相關(guān)功能)抚垄,HttpServlet是GenericServlet子類
客戶端瀏覽器對web服務器發(fā)出HTTP請求,http服務器將請求轉(zhuǎn)于Web容器處理谋逻,tomcat調(diào)用生命周期方法service,把servletrequest,servletresponse轉(zhuǎn)換成httpServletRequest和httpServletResponse,在調(diào)用自身的getmethod區(qū)別是get還是post請求呆馁,在分別調(diào)用。
我們只需要重寫doget,dopost方法
ServletContext: 一個項目只有一個ServletContext毁兆,服務器啟動時創(chuàng)建浙滤,服務器關(guān)閉時銷毀,他可以在整個項目中共享數(shù)據(jù)气堕。
setAttribute,getAttribute
ServletContext是javaweb四大域之一(pageContext,servletRequest,httpSession,servletContext)纺腊,域?qū)ο髢?nèi)部是Map畔咧,如果多次調(diào)用該方法,并且使用相同的name揖膜,那么會覆蓋上一次的值.
getRealPath:獲取Web應用下的資源
getResourceAsStream:獲取資源流