更新時間:2020-10-19 16:56:01 來源:動力節(jié)點 瀏覽1619次
Javaweb是學習java編程的重要內(nèi)容,和java框架、服務(wù)器一樣重要,也是java中的核心之一。因此,想要學好java,javaweb是必須要掌握的。在學習javaweb過程中,首先要知道javaweb三大組件是什么,各自扮演著什么角色,有什么樣的作用,這篇文章就為大家介紹javaweb三大組件的相關(guān)基本知識。
Javaweb三大組件是:Servlet,F(xiàn)ilter,Listener,下面詳細介紹javaweb三大組件:
1、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的一些特點,比如跨平臺性,可擴展性高,然而他的優(yōu)點不僅僅是局限于語言方面,因為Servlet的出現(xiàn),可以使我們將JSP頁面中的一些JAVA代碼移植到Servlet中來,可無疑使前端人員深受喜歡,方便了項目的修改完善,而Servlet的使用也是非常的簡單。
Servlet的生命周期有四個階段,第一個階段,實例化,會調(diào)用構(gòu)造方法,第二個階段是初始化,會調(diào)用init()方法,第三個階段是請求處理,調(diào)用service方法,第四個階段,服務(wù)終止也就是銷毀階段,調(diào)用destroy方法。
2、Filter
Filter用于攔截用戶請求,在服務(wù)器作出響應(yīng)前,可以在攔截后修改request和response,這樣實現(xiàn)很多開發(fā)者想得到的功能。
Filter是一個可以復用的代碼片段,可以用來轉(zhuǎn)換HTTP請求、響應(yīng)和頭信息。Filter不像Servlet,它不能產(chǎn)生一個請求或者響應(yīng),它只是修改對某一資源的請求,或者修改從某一的響應(yīng)。
Filter的生命周期:(1)構(gòu)造器:創(chuàng)建Filter實例時調(diào)用,F(xiàn)ilter實例服務(wù)器一旦啟動就會被創(chuàng)建;(2)init():實例創(chuàng)建后馬上被調(diào)用,用來對Filter做一些初始化的操作;(3)doFilter():Filter的主要方法,用來完成過濾器主要功能的方法,每次訪問目標資源時都會調(diào)用;(4)destroy():服務(wù)器停止時調(diào)用,用來釋放資源。
在使用MVC的時候,ActionFilter提供了一個Order屬性,用戶可以根據(jù)這個屬性控制Filter的調(diào)用順序,而Web API卻不再支持該屬性。Web API的Filter有自己的一套調(diào)用順序規(guī)則:所有Filter根據(jù)注冊位置的不同擁有三種作用域:Global、Controller、Action;通過HttpConfiguration類實例下Filters.Add()方法注冊的Filter(一般在App_Start\WebApiConfig.cs文件中的Register方法中設(shè)置)就屬于Global作用域;通過Controller上打的Attribute進行注冊的Filter就屬于Controller作用域;通過Action上打的Attribute進行注冊的Filter就屬于Action作用域。
3、Listener
顧名思義,Listener就是監(jiān)聽器,監(jiān)聽主要是對ServletContext,HttpSession,ServletRequest這三大域?qū)ο蟮膭?chuàng)建和銷毀事件監(jiān)聽,還有就是對域?qū)ο髮傩缘牟僮鞅O(jiān)聽,當監(jiān)聽這些事件發(fā)生是就會進行一些適當?shù)牟僮鳌?/p>
通常使用Web監(jiān)聽器做以下的內(nèi)容:統(tǒng)計在線人數(shù),利用HttpSessionLisener;加載初始化信息:利用ServletContextListener;統(tǒng)計網(wǎng)站訪問量;實現(xiàn)訪問監(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是學習java的重點,Servlet、Filter、Listener又是學習javaweb的重點,所以上面介紹的javaweb三大組件的基本概念和作用要好好的理解學習。三大組件在javaweb中各有各的功能,使得javaweb變的更為強大,希望朋友們平時多多學習javaweb教程,并多加練習,相信可以慢慢掌握javaweb技能。