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

在JSP Servlet開發中導入事件驅動技術

開發 后端
本文介紹在JSP Servlet開發中導入事件驅動技術,以及介紹act方法進行的處理。

JSP Servlet為WEB應用程序開發者提供了一個優秀的平臺。但是,現在國內大多數的基于JSP Servlet的開發都處在最基礎的狀態,代碼重用率低,開發效率低,無法適應大型、復雜的WEB開發要求。

首先,要實現事件驅動,必須在JSP Servlet開發中采用MVC技術。
M=Model(模型)
V=View(視圖)
C=Control(控制)

視圖(V)定義了用戶界面。模型(M)定義了抽象類和邏輯。控制(C)則負責根據視圖發生的事件調用模型的邏輯完成業務處理。
Model(模型)由普通的java類來實現。
View(視圖)由jsp來實現。
Control(控制)由servlet來實現。

視圖和模型是緊密關聯,又相互獨立的。模型是視圖的抽象,必須包含一定的邏輯來處理視圖所表現的對象的事件。同時對于相同的邏輯,視圖可以以各種方式表現。例如,在web開發中,
1) 對于一個代表“單選”抽象的SingleSelection類,在用戶的瀏覽器上可以顯示為Radio button, 也可以是單選下拉框,或者是其他任何的單選性質的控件。
2) 對于一個代表“提交”抽象的Submition類,在用戶的瀏覽器上可以顯示為Submit button, 也可以是超鏈接、圖片,甚至可以是可觸發JavaScript的submit()方法的任何控件。

事件驅動對于MVC技術是極其重要的,主要由Control(控制)來實現。而JSP-SERVLET的實現本身就非常適合于編寫事件驅動的程序。

眾所周知,javax.servlet.http.HttpServlet類每次都調用doPost(HttpServletRequest req, HttpServletResponse resp)或者doGet(HttpServletRequest req, HttpServletResponse resp)

方法來響應客戶端的submit操作。

Servlet響應的事件就是客戶端瀏覽器的submit操作。客戶端瀏覽器的submit事件觸發Servlet的特定事件處理方法,但是入口只有一個:javax.servlet.http.HttpServlet類的service(HttpServletRequest req, HttpServletResponse resp)方法。(具體到對于客戶端的操作的響應,則可能是doPost(HttpServletRequest req, HttpServletResponse resp)或者是doGet(HttpServletRequest req, HttpServletResponse resp)方法。所以可以重寫這些方法來控制Servlet對submit事件的響應處理,調用不同的JSP,JAVA BEAN,甚至于EJB。例:EventDrivenServlet繼承javax.servlet.http.HttpServlet,并且重寫 doPost(HttpServletRequest req, HttpServletResponse resp)和doGet(HttpServletRequest req, HttpServletResponse resp)方法,令這2個方法都直接調用同一個方法,我們把這個方法命名為“act”??void act(HttpServletRequest req, HttpServletResponse resp)act方法應該根據req參數傳入的信息,調用相應的類以及方法,***將resp返回給客戶端。

act方法進行的處理必須包括如下幾點:
1)解析req。
2)根據上一步的解析結果初始化(或者更新)相應的類。
3)調用相應的方法進行邏輯處理。
4)將處理結果反映到resp里。
5)根據邏輯處理結果指定下一個顯示的頁面
6)forward到下一個頁面。

但是,act方法又是怎么知道該調用哪一個類的哪一個方法,該遷移到哪一個畫面去的呢?答案是傳遞給act方法一個消息??Message。

Message類是消息的抽象,應該定義成abstract的,可以是一個空類。從這個Message類派生出所有的具體的消息類。所有的消息類都必須從Message類繼承。

前面講過,畫面上(JSP)的每一個可submit的控件在邏輯上都對應一個Submition,每一個Submition都和一個特定的消息類相關聯。這樣,只要我們在Control層能夠截獲這些消息類,并且解析這些消息類攜帶的信息,并將它們委派給相應的類的方法去處理,就可以實現事件驅動。例:畫面上有一個“登錄”按鈕,它對應著一個Submition類,并且產生一個LoginMessage的消息。LoginMessage繼承Message,并且加入了一個Hashtable成員變量,攜帶了用戶名和密碼的信息。畫面上還一個“變更密碼”按鈕,它對應著一個ChangePasswordSubmition類,并且產生一個 ChangePasswordMessage的消息。ChangePasswordMessage繼承Message,并且加入了一個Hashtable 成員變量,攜帶了用戶名和密碼的信息。當Servlet響應這個submit時,可以根據傳來的消息的類型和攜帶的信息來委派處理。具體實現時,我們應該重載EventDrivenServlet的act()方法,加入一個Message類的參數。void act(HttpServletRequest req, HttpServletResponse resp,Message message)

如果message instanceof LoginMessage為true,那么就將message造型成LoginMessage,并且將LoginMessage傳遞給相應的方法,處理完成后指定相應的畫面并發回客戶端。

如果message instanceof ChangePasswordMessage為true, 那么就將message造型成ChangePasswordMessage,并且將ChangePasswordMessage傳遞給相應的方法,處理完成后指定相應的畫面并發回客戶端。

以上是在JSP Servlet開發中導入事件驅動技術。

【編輯推薦】

  1. 拋開JSP,直接從JSF入手
  2. JSF和JSP是一對新的搭檔
  3. 在JSP程序中Application使用淺析
  4. JavaBean實現JSP頁面和代碼分離
  5. 在JSF/JSP中集成FCKEditor
責任編輯:佚名 來源: builder
相關推薦

2009-07-02 09:56:24

導入事件驅動技術JSP Servlet

2009-07-09 10:49:56

Servlet和JSP

2014-12-18 10:05:30

Eclipse

2009-07-03 10:46:48

JSP ServletJavaBean

2009-07-03 14:16:30

JSP Servlet

2009-07-08 15:25:56

Servlet和JSP

2009-07-03 14:41:03

2009-07-08 15:13:00

獲取所session數JSPServlet

2009-08-10 09:19:28

Servlet JSP

2019-04-19 21:06:23

事件驅動架構VANTIQ

2009-07-02 13:33:12

JSP技術

2009-07-03 14:46:42

JSP開發框架JSFTapestry

2009-06-30 15:37:27

Servlet和JSP

2009-07-07 14:04:55

JSP入門

2009-07-06 15:03:53

JSP向Servlet

2009-07-06 15:34:56

JSP和Servlet

2009-06-25 14:26:07

JSPJavaBeanServlet

2009-07-07 13:42:57

Servlet JSP

2010-12-10 14:24:02

JSPServlet

2009-07-07 11:18:59

JSP Servlet
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产激情精品一区二区三区 | 国产精品成人一区二区三区夜夜夜 | 秋霞电影一区二区三区 | 91亚洲国产精品 | 欧美国产亚洲一区二区 | 欧美综合在线视频 | 久久久免费少妇高潮毛片 | 国产精品成人一区二区三区 | 91影院 | 免费激情 | 欧美一区二区三区一在线观看 | 草久久久 | 久久久精品网 | 国产在线观看一区 | 亚洲高清视频在线观看 | 日韩国产一区二区 | 亚洲一区久久 | 午夜久久久久久久久久一区二区 | 亚洲成av人影片在线观看 | 亚洲欧美在线观看 | 久久精品一区 | 成人福利在线视频 | 在线色| 老牛影视av一区二区在线观看 | 国产日韩精品久久 | 九九久久国产 | 欧美偷偷| 伊人最新网址 | 一级看片免费视频囗交动图 | 日韩在线观看 | 龙珠z国语版在线观看 | 午夜综合| 99精品久久99久久久久 | 国产精品欧美精品 | 国产精品福利在线观看 | 91精品一区二区三区久久久久久 | 日本黄色激情视频 | 欧美高清视频一区 | 欧美三区视频 | 国产日韩精品在线 | 狠狠爱免费视频 |