小編給大家分享一下JSP開發(fā)中Servlet之如何實現(xiàn)導(dǎo)入事件驅(qū)動技術(shù),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)服務(wù)項目包括平遙網(wǎng)站建設(shè)、平遙網(wǎng)站制作、平遙網(wǎng)頁制作以及平遙網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,平遙網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到平遙省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
JSP-Servlet為Web應(yīng)用程序開發(fā)者提供了一個優(yōu)秀的平臺。但是,現(xiàn)在國內(nèi)大多數(shù)的基于JSP-Servlet的開發(fā)都處在最基礎(chǔ)的狀態(tài),代碼重用率低,開發(fā)效率低,無法適應(yīng)大型、復(fù)雜的Web開發(fā)要求。
對于在JSP-Servlet中導(dǎo)入事件驅(qū)動技術(shù),首先,要實現(xiàn)事件驅(qū)動,必須在JSP-Servlet開發(fā)中采用MVC技術(shù)。
◆M=Model(模型)
◆V=View(視圖)
◆C=Control(控制)
視圖(V)定義了用戶界面。模型(M)定義了抽象類和邏輯??刂疲–)則負責(zé)根據(jù)視圖發(fā)生的事件調(diào)用模型的邏輯完成業(yè)務(wù)處理。
一般
◆Model(模型)由普通的Java類來實現(xiàn)。
◆View(視圖)由Jsp來實現(xiàn)。
◆Control(控制)由Servlet來實現(xiàn)。
視圖和模型是緊密關(guān)聯(lián),又相互獨立的。
模型是視圖的抽象,必須包含一定的邏輯來處理視圖所表現(xiàn)的對象的事件。
同時對于相同的邏輯,視圖可以以各種方式表現(xiàn)。
對于在JSP-Servlet中導(dǎo)入事件驅(qū)動技術(shù)的實例中的問題,例如,在Web開發(fā)中,
[1] 對于一個代表“單選”抽象的SingleSelection類,在用戶的瀏覽器上可以顯示為Radio button, 也可以是單選下拉框,或者是其他任何的單選性質(zhì)的控件。
[2] 對于一個代表“提交”抽象的Submition類,在用戶的瀏覽器上可以顯示為Submit button, 也可以是超鏈接、圖片,甚至可以是可觸發(fā)JavaScript的submit()方法的任何控件。
事件驅(qū)動對于MVC技術(shù)是極其重要的,主要由Control(控制)來實現(xiàn)。而JSP-SERVLET的實現(xiàn)本身就非常適合于編寫事件驅(qū)動的程序。
眾所周知,javax.servlet.http.HttpServlet類每次都調(diào)用
doPost(HttpServletRequest req, HttpServletResponse resp)
或者
doGet(HttpServletRequest req, HttpServletResponse resp)
方法來響應(yīng)客戶端的submit操作。
Servlet響應(yīng)的事件就是客戶端瀏覽器的submit操作。客戶端瀏覽器的submit事件觸發(fā)Servlet的特定事件處理方法,但是入口只有一個:javax.servlet.http.HttpServlet類的service(HttpServletRequest req, HttpServletResponse resp)方法。(具體到對于客戶端的操作的響應(yīng),則可能是doPost(HttpServletRequest req, HttpServletResponse resp)或者是doGet(HttpServletRequest req, HttpServletResponse resp)方法。
所以可以重寫這些方法來控制Servlet對submit事件的響應(yīng)處理,調(diào)用不同的JSP,JAVA BEAN,甚至于EJB。
例:EventDrivenServlet繼承javax.servlet.http.HttpServlet,并且重寫doPost(HttpServletRequest req, HttpServletResponse resp)和doGet(HttpServletRequest req, HttpServletResponse resp)方法,令這2個方法都直接調(diào)用同一個方法,我們把這個方法命名為“act”??
void act(HttpServletRequest req, HttpServletResponse resp)
act方法應(yīng)該根據(jù)req參數(shù)傳入的信息,調(diào)用相應(yīng)的類以及方法,***將resp返回給客戶端。
act方法進行的處理必須包括如下幾點:
◆解析req。
◆根據(jù)上一步的解析結(jié)果初始化(或者更新)相應(yīng)的類。
◆調(diào)用相應(yīng)的方法進行邏輯處理。
◆將處理結(jié)果反映到resp里。
◆根據(jù)邏輯處理結(jié)果指定下一個顯示的頁面
◆forward到下一個頁面。
但是,act方法又是怎么知道該調(diào)用哪一個類的哪一個方法,該遷移到哪一個畫面去的呢?
答案是傳遞給act方法一個消息 Message。
對于在JSP-Servlet中導(dǎo)入事件驅(qū)動技術(shù),Message類是消息的抽象,應(yīng)該定義成abstract的,可以是一個空類。從這個Message類派生出所有的具體的消息類。所有的消息類都必須從Message類繼承。
前面講過,畫面上(JSP)的每一個可submit的控件在邏輯上都對應(yīng)一個Submition,每一個Submition都和一個特定的消息類相關(guān)聯(lián)。這樣,只要我們在Control層能夠截獲這些消息類,并且解析這些消息類攜帶的信息,并將它們委派給相應(yīng)的類的方法去處理,就可以實現(xiàn)事件驅(qū)動。
例:
畫面上有一個“登錄”按鈕,它對應(yīng)著一個Submition類,并且產(chǎn)生一個LoginMessage的消息。LoginMessage繼承Message,并且加入了一個Hashtable成員變量,攜帶了用戶名和密碼的信息。
畫面上還一個“變更密碼”按鈕,它對應(yīng)著一個ChangePasswordSubmition類,并且產(chǎn)生一個ChangePasswordMessage的消息。ChangePasswordMessage繼承Message,并且加入了一個Hashtable成員變量,攜帶了用戶名和密碼的信息。
對于在JSP-Servlet中導(dǎo)入事件驅(qū)動技術(shù),當(dāng)Servlet響應(yīng)這個submit時,可以根據(jù)傳來的消息的類型和攜帶的信息來委派處理。
具體實現(xiàn)時,我們應(yīng)該重載EventDrivenServlet的act()方法,加入一個Message類的參數(shù)。
void act(HttpServletRequest req, HttpServletResponse resp,Message message)
對于在JSP-Servlet中導(dǎo)入事件驅(qū)動技術(shù),如果message instanceof LoginMessage為true,那么就將message造型成LoginMessage,并且將LoginMessage傳遞給相應(yīng)的方法,處理完成后指定相應(yīng)的畫面并發(fā)回客戶端。
對于在JSP-Servlet中導(dǎo)入事件驅(qū)動技術(shù),如果message instanceof ChangePasswordMessage為true, 那么就將message造型成ChangePasswordMessage,并且將ChangePasswordMessage傳遞給相應(yīng)的方法,處理完成后指定相應(yīng)的畫面并發(fā)回客戶端。
以上是“JSP開發(fā)中Servlet之如何實現(xiàn)導(dǎo)入事件驅(qū)動技術(shù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)頁題目:JSP開發(fā)中Servlet之如何實現(xiàn)導(dǎo)入事件驅(qū)動技術(shù)
文章起源:http://muchs.cn/article16/joocdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、定制網(wǎng)站、營銷型網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、域名注冊、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)