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

Servlet容器中的事務

開發 后端
本文介紹Servlet容器中的事務,以及介紹J2EE事務的四個屬性定義,分別是原子性,一致性,獨立性和持久性。

J2EE除了提供了Servlet之外,還提供了大量的其它功能。Servlet開發者們也許難得使用這些功能,不情愿也沒有時間用一個超出所需的大型J2EE服務器來替換自己的簡單的Servlet容器。然而,依據J2EE的模塊化特征,有可能將負責特定J2EE功能的小組件整合到Servlet容器里,以此來增強WEB應用程序。其中之一就是事務。有關J2EE事務的完整描述,您可以參考Onjava上的其他三篇文章,現在只需知道事務是資源的操作步驟(例如:數據庫),它由四個屬性定義,這四個屬性根據其首字母濃縮為ACID:

原子性:事務的操作,或者是全部成功(此時提交事務),或者是全部不成功(此時回滾事務),謂之為all-or-nothing屬性。一個事務應該被視為單個工作單元,在一個事務里面絕對不可能同時存在完成了的和沒有完成的操作。

一致性:完成了的事務將資源從一個有效狀態轉變為另一個有效狀態。一致性的具體例子有:數據庫的參照完整性和表中的主鍵唯一性。

獨立性在事務沒有提交之前,事務作用的共享資源的改變在事務之外是不可見的。獨立性確保了不同事務不會同時訪問正在更新的數據。

持久性:由事務提交的改變會永久存在。

JOTM(Java Open Transaction Manager)是由ObjectWeb協會開發的功能完整的且資源開放的獨立的事務管理器。它提供了JAVA應用程序的事務支持,而且與JTA(JAVA事務API)兼容。您可以在JOTM home page了解到更多的詳細信息。在TOMCAT或其它Servlet容器整合了JOTM后,JSP和Servlet的開發者們就可以獲得事務的優勢輕而易舉的創建更多健壯的web應用程序。

為了突出事務是怎樣增強web應用程序的,舉一個常用的例子,web瀏覽器與客戶端交互的ATM。

ATM 樣例:

情景

此例比較簡單:一個客戶想從 ATM 提款,輸入了他的客戶名稱,john_doe;想提款數,$50。如果他的銀行帳戶上有足夠的錢并且在 ATM 機上有足夠的現金的話,應用程序就能給他相當數目的現金,并從銀行帳戶上提出同樣的數目。否則,操作中斷,并且除出現錯誤信息之外,其他都不會改變。我們無需擔心安全問題,只是在猜想用戶是否正確授權。

這是一個非常簡單的例子,但是如果不使用事務,用別的方法執行起來將會很難。客戶端操作將會涉及到兩個不同的資源:ATM 和客戶銀行帳號。它們會自動的在應用程序設計中產生 ACID 問題。例如:如果在 ATM 上操作成功而在銀行帳戶上卻失?。ㄒ苍S是因為交流失?。蛻魧〉藉X,但是他的帳戶將不會更新。對于銀行來說,這就虧大了。更糟的是,如果銀行帳戶更新了,但是由于一個錯誤阻止 ATM 傳送錢,客戶得不到現金,但是帳戶上卻提掉了這筆款。

為了防止出現上述事故,在你的應用程序里,你能夠 1) 聯系兩個資源,并告知兩者客戶執行的所有當前操作,2)詢問兩者是否能執行操作,3)如果兩者都同意,則請求操作。即使這樣,此方法也不能謂之足夠健壯,因為,如果客戶帳戶上的錢在第二步和第三步的時候被另外一操作提走,提款可能會失敗,例如,客戶帳戶不能出現逆差。

事務能使應用程序更簡單更健壯的之處就是:在同一事務的兩個資源上執行所有的操作的時候,它將會解決 ACID 的問題(尤其是原子性)。

【編輯推薦】

  1. Scala語言中的Scala Servlet
  2. 敘述Servlet API的討論
  3. 介紹Servlet容器與Context
  4. Servlet源文件到Class的過程
  5. 詳解Listener監聽Http Session
責任編輯:佚名 來源: 中國IT實驗室
相關推薦

2009-07-09 15:30:53

Servlet容器會話跟蹤

2009-07-09 11:27:59

Servlet容器

2009-07-07 16:23:05

Servlet容器

2009-07-08 14:22:36

Servlet容器匹配過程

2009-07-08 11:17:10

Servlet容器Servlet Con

2009-07-08 15:59:55

doFilter方法

2009-07-06 16:16:33

Servlet容器工作

2009-05-18 10:43:17

TomcatServletJetty

2022-03-31 15:17:04

JavaSocketServlet容器

2013-05-28 13:44:32

Android開發Android應用ijetty

2012-03-21 12:57:29

JavaJettyServlet

2017-01-19 15:32:36

Java全局事務本地事務

2009-07-03 16:53:11

Servlet容器

2019-12-09 15:00:48

TomcatServlet容器

2009-07-07 08:46:18

JettyServlet容器

2013-09-02 09:18:59

2020-07-21 14:35:44

Servlet容器ApacheTomcat

2011-04-29 09:15:16

Servlet

2009-06-06 19:25:44

javaServlet基礎結構

2010-05-27 15:05:23

ServletJava
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字字幕在线中文乱码范文 | 成人国产精品久久 | 一区二区在线观看av | 日韩欧美一区二区三区免费观看 | 成人久久18免费网站麻豆 | 亚洲国产精品一区二区第一页 | 一级高清免费毛片 | 天天干视频在线 | 成人不卡一区二区 | 99精品欧美一区二区三区 | 99综合 | 操人网站| 中文字幕国产视频 | 欧美在线观看一区二区 | 久久国产精品99久久久久久丝袜 | 亚洲视频1区 | 8x国产精品视频一区二区 | 91婷婷韩国欧美一区二区 | 精品国产一区二区三区久久久久久 | 免费在线黄 | 国产a区| 精品一区二区三区在线观看 | 日韩免费在线观看视频 | 一区二区三区四区在线视频 | 久久tv在线观看 | 91视频精选| 91免费福利在线 | 在线视频成人 | 亚洲网在线 | 亚洲精品一区二三区不卡 | 成年免费在线观看 | 人人操日日干 | 成人精品鲁一区一区二区 | 久久久一区二区 | 在线观看亚洲专区 | 成人在线免费视频观看 | 一区二区三区高清不卡 | 性色在线| 免费视频一区 | 国产精品高潮呻吟久久久久 | 毛片网络 |