更新時間:2020-10-22 17:56:23 來源:動力節(jié)點 瀏覽1406次
Java Web的三大組件:Filter、Servlet和Listener,一直是Java Web開發(fā)基礎(chǔ)中非常重要的知識和面試考點,盡管我們在實際中很難同時接觸這三個組件,但是還是有備無患的了解一下。下面為大家一一介紹JavaWeb三大組件。
一、JavaWeb組件一:Servlet
在Java web b/s架構(gòu)中,servlet扮演了重要的角色,作為一個中轉(zhuǎn)處理的容器,他連接了客戶端和服務(wù)器端的信息交互和處理。簡單來說,客戶端發(fā)送請求,傳遞到servlet容器,而servlet將數(shù)據(jù)轉(zhuǎn)換成服務(wù)器端可以處理的數(shù)據(jù)再發(fā)送給服務(wù)器端,再數(shù)據(jù)處理之后,再傳遞到servlet容器,servlet再轉(zhuǎn)譯到客戶端,完成了一次客戶端和服務(wù)器端的信息交互。
Servlet是通過Java編寫的,因為他也具備了Java的一些特點,比如跨平臺性,可擴(kuò)展性高,然而他的優(yōu)點不僅僅是局限于語言方面,因為Servlet的出現(xiàn),可以使我們將JSP頁面中的一些JAVA代碼移植到Servlet中來,可無疑使前端人員深受喜歡,方便了項目的修改完善,而Servlet的使用也是非常的簡單。
Servlet的生命周期有四個階段,第一個階段,實例化,會調(diào)用構(gòu)造方法,第二個階段是初始化,會調(diào)用init()方法,第三個階段是請求處理,調(diào)用service方法,第四個階段,服務(wù)終止也就是銷毀階段,調(diào)用destroy方法。
前臺如何將數(shù)據(jù)傳遞給Servlet?也是非常簡單的,只需表單提交就可以輕松完成,Servlet可以使用request.getParameter來接受,傳遞給前臺就可以使用request.setA什么的來賦值。
頁面提交的時候有g(shù)et和post兩種方式,這倆種方式都會在Servlet中處理,如果是get則會調(diào)用doget,post則會dopost,而同時使用,只需要post調(diào)用doget方法就可以。
二、JavaWeb組件二:Filter
Filter的字面意思是過濾、篩選,同樣Filter是javaweb的過濾器。filter是一個可以復(fù)用的代碼片段,可以用來轉(zhuǎn)換HTTP請求、響應(yīng)和頭信息。Filter不像Servlet,它不能產(chǎn)生一個請求或者響應(yīng),它只是修改對某一資源的請求,或者修改從某一的響應(yīng)。在javaweb中使用方法大致和Servlet一樣,也需要配置web.xml文件,也有三個生命周期,初始化參數(shù)創(chuàng)建Filter調(diào)用init()方法——攔截到請求時調(diào)用doFilter()方法——銷毀Filter時調(diào)用destroy()方法。但是Filter和Servlet的功能是不一樣的,servlet負(fù)責(zé)處理請求,filter負(fù)責(zé)攔截請求和放行,可以實現(xiàn)Url級別的權(quán)限訪問,敏感詞匯過濾,解決編碼格式問題等等。
三、JavaWeb組件三:Listener
Listener主要是javaweb中的監(jiān)聽器,使用的話,我們需要專門創(chuàng)建一個特定接口的java類,用這個java類去監(jiān)聽另一個java類的方法調(diào)用,如果另一個類的屬性改變了,前面的java類就會監(jiān)聽到后面java類所發(fā)生的變化,監(jiān)聽器中的某個方法就會立刻執(zhí)行。Listener主要用來監(jiān)聽ServletContext,HttpSession,ServletReques這三個域?qū)ο蟆?/p>
Javaweb三大組件Filter、Servlet、Listener的功能分別是攔截請求和放行,處理請求,監(jiān)聽網(wǎng)站的訪問量、在線人數(shù)等信息。他們之間各有分工,因為他們的存在,JavaWeb的功能才能變得越來越強(qiáng)大。Javaweb三大組件Filter、Servlet、Listener三者相互協(xié)作,共同鑄就了Java Web在前端開發(fā)中的不可撼動的地位!