成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JSP開發(fā)中Servlet之導(dǎo)入事件驅(qū)動(dòng)技術(shù)

開發(fā) 后端
導(dǎo)入事件驅(qū)動(dòng)技術(shù)對于在Web開發(fā)中很有實(shí)力的JSP-Servlet來說是很有意義的,那么就這一樣技術(shù)本文將向你展現(xiàn)一些具體的事宜。

JSP-Servlet為Web應(yīng)用程序開發(fā)者提供了一個(gè)優(yōu)秀的平臺。但是,現(xiàn)在國內(nèi)大多數(shù)的基于JSP-Servlet的開發(fā)都處在最基礎(chǔ)的狀態(tài),代碼重用率低,開發(fā)效率低,無法適應(yīng)大型、復(fù)雜的Web開發(fā)要求。

對于在JSP-Servlet中導(dǎo)入事件驅(qū)動(dòng)技術(shù),首先,要實(shí)現(xiàn)事件驅(qū)動(dòng),必須在JSP-Servlet開發(fā)中采用MVC技術(shù)。

◆M=Model(模型)

◆V=View(視圖)

◆C=Control(控制)

視圖(V)定義了用戶界面。模型(M)定義了抽象類和邏輯。控制(C)則負(fù)責(zé)根據(jù)視圖發(fā)生的事件調(diào)用模型的邏輯完成業(yè)務(wù)處理。

一般

◆Model(模型)由普通的Java類來實(shí)現(xiàn)。

◆View(視圖)由Jsp來實(shí)現(xiàn)。

◆Control(控制)由Servlet來實(shí)現(xiàn)。

視圖和模型是緊密關(guān)聯(lián),又相互獨(dú)立的。

模型是視圖的抽象,必須包含一定的邏輯來處理視圖所表現(xiàn)的對象的事件。

同時(shí)對于相同的邏輯,視圖可以以各種方式表現(xiàn)。

對于在JSP-Servlet中導(dǎo)入事件驅(qū)動(dòng)技術(shù)的實(shí)例中的問題,例如,在Web開發(fā)中,

[1] 對于一個(gè)代表“單選”抽象的SingleSelection類,在用戶的瀏覽器上可以顯示為Radio button, 也可以是單選下拉框,或者是其他任何的單選性質(zhì)的控件。

[2] 對于一個(gè)代表“提交”抽象的Submition類,在用戶的瀏覽器上可以顯示為Submit button, 也可以是超鏈接、圖片,甚至可以是可觸發(fā)JavaScript的submit()方法的任何控件。

事件驅(qū)動(dòng)對于MVC技術(shù)是極其重要的,主要由Control(控制)來實(shí)現(xiàn)。而JSP-SERVLET的實(shí)現(xiàn)本身就非常適合于編寫事件驅(qū)動(dòng)的程序。

眾所周知,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的特定事件處理方法,但是入口只有一個(gè):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個(gè)方法都直接調(diào)用同一個(gè)方法,我們把這個(gè)方法命名為“act”??

void act(HttpServletRequest req, HttpServletResponse resp)

act方法應(yīng)該根據(jù)req參數(shù)傳入的信息,調(diào)用相應(yīng)的類以及方法,***將resp返回給客戶端。

act方法進(jìn)行的處理必須包括如下幾點(diǎn):

◆解析req。

◆根據(jù)上一步的解析結(jié)果初始化(或者更新)相應(yīng)的類。

◆調(diào)用相應(yīng)的方法進(jìn)行邏輯處理。

◆將處理結(jié)果反映到resp里。

◆根據(jù)邏輯處理結(jié)果指定下一個(gè)顯示的頁面

◆forward到下一個(gè)頁面。

但是,act方法又是怎么知道該調(diào)用哪一個(gè)類的哪一個(gè)方法,該遷移到哪一個(gè)畫面去的呢?

答案是傳遞給act方法一個(gè)消息 Message。

對于在JSP-Servlet中導(dǎo)入事件驅(qū)動(dòng)技術(shù),Message類是消息的抽象,應(yīng)該定義成abstract的,可以是一個(gè)空類。從這個(gè)Message類派生出所有的具體的消息類。所有的消息類都必須從Message類繼承。

前面講過,畫面上(JSP)的每一個(gè)可submit的控件在邏輯上都對應(yīng)一個(gè)Submition,每一個(gè)Submition都和一個(gè)特定的消息類相關(guān)聯(lián)。這樣,只要我們在Control層能夠截獲這些消息類,并且解析這些消息類攜帶的信息,并將它們委派給相應(yīng)的類的方法去處理,就可以實(shí)現(xiàn)事件驅(qū)動(dòng)。

例:

畫面上有一個(gè)“登錄”按鈕,它對應(yīng)著一個(gè)Submition類,并且產(chǎn)生一個(gè)LoginMessage的消息。LoginMessage繼承Message,并且加入了一個(gè)Hashtable成員變量,攜帶了用戶名和密碼的信息。

畫面上還一個(gè)“變更密碼”按鈕,它對應(yīng)著一個(gè)ChangePasswordSubmition類,并且產(chǎn)生一個(gè)ChangePasswordMessage的消息。ChangePasswordMessage繼承Message,并且加入了一個(gè)Hashtable成員變量,攜帶了用戶名和密碼的信息。

對于在JSP-Servlet中導(dǎo)入事件驅(qū)動(dòng)技術(shù),當(dāng)Servlet響應(yīng)這個(gè)submit時(shí),可以根據(jù)傳來的消息的類型和攜帶的信息來委派處理。

具體實(shí)現(xiàn)時(shí),我們應(yīng)該重載EventDrivenServlet的act()方法,加入一個(gè)Message類的參數(shù)。

void act(HttpServletRequest req, HttpServletResponse resp,Message message)

對于在JSP-Servlet中導(dǎo)入事件驅(qū)動(dòng)技術(shù),如果message instanceof LoginMessage為true,那么就將message造型成LoginMessage,并且將LoginMessage傳遞給相應(yīng)的方法,處理完成后指定相應(yīng)的畫面并發(fā)回客戶端。

對于在JSP-Servlet中導(dǎo)入事件驅(qū)動(dòng)技術(shù),如果message instanceof ChangePasswordMessage為true, 那么就將message造型成ChangePasswordMessage,并且將ChangePasswordMessage傳遞給相應(yīng)的方法,處理完成后指定相應(yīng)的畫面并發(fā)回客戶端。

以上就是對于在JSP-Servlet中導(dǎo)入事件驅(qū)動(dòng)技術(shù)的一點(diǎn)點(diǎn)闡述,對你是否有一點(diǎn)幫助呢? 

【編輯推薦】

  1. JSP和Servlet中的幾個(gè)編碼的作用及原理
  2. 使用JSP include機(jī)制改進(jìn)外觀
  3. 基于JSP實(shí)現(xiàn)數(shù)據(jù)庫中圖片的存儲與顯示
  4. 構(gòu)造JSP和Javabean開發(fā)和發(fā)布環(huán)境的方法
  5. JSP入門之網(wǎng)站環(huán)境搭建的步驟
責(zé)任編輯:仲衡 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2009-06-29 16:19:57

JSP Servlet

2009-07-03 10:46:48

JSP ServletJavaBean

2009-07-03 14:41:03

2009-07-09 10:49:56

Servlet和JSP

2009-07-03 14:16:30

JSP Servlet

2009-06-30 15:37:27

Servlet和JSP

2009-06-25 14:26:07

JSPJavaBeanServlet

2009-07-07 11:18:59

JSP Servlet

2009-07-08 15:25:56

Servlet和JSP

2009-06-30 17:16:43

jsp網(wǎng)站開發(fā)

2019-04-19 21:06:23

事件驅(qū)動(dòng)架構(gòu)VANTIQ

2009-08-10 09:19:28

Servlet JSP

2009-07-02 13:33:12

JSP技術(shù)

2009-07-02 15:02:44

JSP Servlet自動(dòng)跳轉(zhuǎn)

2009-07-08 15:13:00

獲取所session數(shù)JSPServlet

2009-07-03 14:46:42

JSP開發(fā)框架JSFTapestry

2009-07-02 11:34:42

JSP指令JSP開發(fā)

2009-06-30 10:37:56

JSP教程

2013-09-13 13:15:28

AndroidWebViewJavaScript

2009-07-07 14:04:55

JSP入門
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲精品视频在线播放 | 欧美日韩在线播放 | 91一区| 久久久久久久一区 | 欧美一区二区三区四区五区无卡码 | 综合精品 | 欧美亚洲视频 | 午夜性视频| 欧美理论片在线 | 免费午夜视频在线观看 | 老牛嫩草一区二区三区av | 国产精品伦一区二区三级视频 | 国产一区二区美女 | 国产精品综合一区二区 | 国产视频一区二区 | 亚洲欧美一区二区三区1000 | 一区二区三区在线 | 亚洲图片一区二区三区 | 精品一区二区久久久久久久网站 | 福利视频亚洲 | 欧美三级在线 | 中文字幕人成乱码在线观看 | aaa大片免费观看 | 久草在线| 欧美精品成人一区二区三区四区 | 日韩欧美高清 | 国产精品精品视频一区二区三区 | 亚洲综合婷婷 | 成人网址在线观看 | 亚洲av毛片| 一区二区三区视频在线免费观看 | 久久最新精品视频 | 视频二区在线观看 | 宅女噜噜66国产精品观看免费 | 欧美精品第一页 | 午夜视频在线免费观看 | 精品欧美一区二区久久久伦 | 亚洲天堂av在线 | 久久国产精品精品国产色婷婷 | 亚洲一区免费 | 91视视频在线观看入口直接观看 |