什么是Servlet旬蟋?
servlet(Server Applet)宠蚂,全稱(chēng)Java Servlet巾陕,一個(gè)servlet就是Java編程語(yǔ)言中的一個(gè)類(lèi)终抽,它被用來(lái)擴(kuò)展服務(wù)器的性能,服務(wù)器上駐留著可以通過(guò)"請(qǐng)求-響應(yīng)"編程模型來(lái)訪問(wèn)的應(yīng)用程序蛛倦。通俗的來(lái)說(shuō)就是服務(wù)器中處理用戶(hù)的網(wǎng)絡(luò)請(qǐng)求歌懒。
Servlet使用前提
-
搭建服務(wù)器環(huán)境
新手學(xué)習(xí)推薦使用Tomact服務(wù)器,畢竟主流溯壶,話不多說(shuō)直接上圖:
1及皂、General Information這里面沒(méi)什么可說(shuō),只要記住hostname 那列即可且改。當(dāng)你測(cè)試時(shí)要用到的验烧。
2、Server Locations這里面記得要選擇第二個(gè)選項(xiàng)又跛,否則你的項(xiàng)目資源會(huì)放在系統(tǒng)的路徑下碍拆,你找的時(shí)候也很難去找到。當(dāng)你選擇了第二個(gè)選項(xiàng)之后Deploy path是你的項(xiàng)目資源路徑慨蓝,你可以在你的tomcat服務(wù)器下的webapps下去尋找你項(xiàng)目的資源和項(xiàng)目文件信息感混。
3、Ports為你的服務(wù)器端口號(hào)礼烈,記得Http/1.1這一列改為你自己的想要設(shè)置的端口號(hào)弧满,一般自己設(shè)置的端口號(hào)要大于8000,否則會(huì)被某些系統(tǒng)程序占用端口就不能測(cè)試該服務(wù)器了济丘。
Servlet的創(chuàng)建方式
-
1.實(shí)現(xiàn)Servlet接口
實(shí)現(xiàn)Servlet接口之后有如下方法:> 1谱秽、init():服務(wù)器裝入 Servlet 時(shí)執(zhí)行的,在 Servlet 的生命期中摹迷,僅執(zhí)行一次 init() 方法疟赊,后面用戶(hù)再訪問(wèn)Servlet不在執(zhí)行init()方法。 >
2峡碉、service():當(dāng)用戶(hù)向服務(wù)器請(qǐng)求Servlet時(shí)都會(huì)調(diào)用該方法近哟,是Servlet的核心,service() 方法被調(diào)用時(shí)鲫寄,傳遞給這個(gè)方法一個(gè)"請(qǐng)求"(ServletRequest)對(duì)象和一個(gè)"響應(yīng)"(ServletResponse)對(duì)象作為參數(shù)吉执,通過(guò)對(duì)該兩個(gè)參數(shù)的操作做一系列的業(yè)務(wù)邏輯處理。
3地来、destroy() :Servlet被銷(xiāo)毀時(shí)調(diào)用該方法戳玫。
4、getServletConfig():獲取Servlet的配置信息未斑。
5咕宿、getServletInfo():它提供有關(guān) servlet 的信息,如作者、版本府阀、版權(quán)缆镣。
2.繼承GenericServlet抽象類(lèi)
該方式創(chuàng)建的Servlet只要實(shí)現(xiàn)service()方法即可。同時(shí)意思和上文的service()方法作用一樣试浙。-
3.繼承HttpServlet抽象類(lèi)
該方式創(chuàng)建的Servlet需要重寫(xiě)dopost()方法或者doget()方法董瞻,或者其他方法。- HttpServlet(繼承)-->GenericServlet(實(shí)現(xiàn))-->Servlet接口
Servlet類(lèi)的編寫(xiě)
1田巴、注解編寫(xiě):在tomcat7.0之后通過(guò)注解就可以實(shí)現(xiàn)Servlet類(lèi)了钠糊。
-
2、自定義配置:通過(guò)在web.xml文件下進(jìn)行Servlet配置固额。
<servlet> <servlet-name>TwoServlet</servlet-name> <servlet-class>包名加類(lèi)名</servlet-class> </servlet> <servlet-mapping> <servlet-name>TwoServlet</servlet-name> <url-pattern>/twoServlet</url-pattern> </servlet-mapping>
由此配置信息我們可以看出我們通過(guò)url-pattern地址去找到Servlet的名字眠蚂,在通過(guò)名字去找類(lèi)煞聪。
同時(shí)我們可以把光標(biāo)移動(dòng)在Servlet-class里面那一段中按住Ctrl鍵去判斷是否能夠去找到該類(lèi)斗躏。注意點(diǎn):
1、兩次Servlet的name名要一樣昔脯,否則會(huì)找不到啄糙。
2、若要使用自定義配置Servlet類(lèi)云稚,在創(chuàng)建動(dòng)態(tài)網(wǎng)頁(yè)項(xiàng)目時(shí)要吧web.xml給顯示出來(lái)隧饼,否則沒(méi)有。
3静陈、/twoServlet中燕雁,表示用localhost:8888/week2/twoServlet去訪問(wèn)該Servlet類(lèi)。
week2表示你的項(xiàng)目名字鲸拥。