国产中文字幕免费观看_国产高清精品软男同_日韩免费视频播放_亚洲午夜激情

聚集網(wǎng)(jujiwang.com) - 收錄免費(fèi)分類目錄信息軟文發(fā)布網(wǎng)址提交
免費(fèi)加入

HttpServletRequest 的最佳實(shí)踐:構(gòu)建健壯且高效的 Java Web 應(yīng)用程序

文章編號(hào):11487時(shí)間:2024-10-01人氣:


的最佳實(shí)踐

在 Java Web 應(yīng)用程序中,HttpServletRequest 對(duì)象是一個(gè)至關(guān)重要的組件,它代表客戶端發(fā)送到服務(wù)器端的 HTTP 請(qǐng)求。通過 HttpServletRequest,您可以訪問諸如請(qǐng)求方法、請(qǐng)求 URI、請(qǐng)求參數(shù)、請(qǐng)求標(biāo)頭以及其他與請(qǐng)求相關(guān)的信息。為了構(gòu)建健壯且高效的 Java Web 應(yīng)用程序,遵循 HttpServletRequest 的最佳實(shí)踐非常重要。

最佳實(shí)踐

1. 始終檢查 null 值

由于各種原因,HttpServletRequest 對(duì)象有時(shí)可能為 null。例如,在某些情況下,如在 Servlet 過濾器或攔截器中,如果請(qǐng)求未通過過濾器或攔截器,則無法訪問 HttpServletRequest。因此,在使用 HttpServletRequest 之前始終檢查其是否為 null 至關(guān)重要。例如:

java if (request != null) {// 使用 HttpServletRequest }

2. 使用正確的編碼

HttpServletRequest 中的請(qǐng)求參數(shù)和數(shù)據(jù)應(yīng)使用適當(dāng)?shù)淖址幋a解碼。如果不使用正確的編碼,則可能會(huì)導(dǎo)致數(shù)據(jù)損壞或亂碼問題。大多數(shù)情況下,建議使用 UTF-8 編碼,因?yàn)樗且环N廣泛支持的 Unicode 編碼。您可以使用以下代碼獲取正確的字符編碼:

java String encoding = request.getCharacterEncoding(); if (encoding == null) {encoding = "UTF-8"; }

3. 驗(yàn)證和清理請(qǐng)求數(shù)據(jù)

客戶端發(fā)送的請(qǐng)求數(shù)據(jù)可能不可靠或不完整。因此,在使用請(qǐng)求數(shù)據(jù)之前驗(yàn)證和清理它是非常重要的。您可以使用 Java 驗(yàn)證框架(如 Bean Validation)或自定義驗(yàn)證方法來驗(yàn)證數(shù)據(jù)。您可以使用 Apache Commons Lang 或其他庫中的工具來清理字符串和其他類型的數(shù)據(jù)。

java import javax.validation.ConstraintViolation; import javax.validation.Validation; import javax.validation.Validator; import javax.validation.ValidatorFactory;// 驗(yàn)證請(qǐng)求參數(shù) ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); Validator validator = factory.getValidator(); Set > violations = validator.validate(myForm); if (violations.isEmpty()) {// 參數(shù)有效 } else {// 參數(shù)無效,處理錯(cuò)誤 }

4. 處理異常

在處理 HttpServletRequest 時(shí),可能會(huì)發(fā)生各種異常。例如,如果請(qǐng)求數(shù)據(jù)損壞或無效,則可能會(huì)拋出異常。始終處理異常并提供有意義的錯(cuò)誤消息非常重要。您可以使用 try-catch 塊來處理異常,如下所示:

java try {// 使用 HttpServletRequest } catch (Exception e) {// 處理異常 }

5. 使用 HttpServletRequestWrapper

有時(shí),您可能需要擴(kuò)展 HttpServletRequest 的功能,例如添加額外的驗(yàn)證或清理邏輯。在這種情況下,您可以創(chuàng)建一個(gè)自定義的 HttpServletRequestWrapper,它繼承自 HttpServletRequest 并添加額外的功能。這使您可以輕松地?cái)U(kuò)展 HttpServletRequest 的功能,而無需修改原始類。

java public class MyHttpServletRequestWrapper extends HttpServletRequestWrapper {// 自定義邏輯}

6. 避免 Servlet 3.0 之前的版本

在 Servlet 3.0 之前,HttpServletRequest 的某些方法已棄用或被更現(xiàn)代的方法所取代。例如,getRemoteAddr() 已被 getRemoteHost() 取代,getCookies() 已被 getCookies(String name) 取代。使用最新的 Servlet API 版本可以確保您的應(yīng)用程序與最新標(biāo)準(zhǔn)兼容,并避免使用已棄用的方法。

7. 使用優(yōu)化技術(shù)

為了提高應(yīng)用程序的性能,您可以使用一些優(yōu)化技術(shù),例如:
- 緩存 HttpServletRequest 對(duì)象,以避免在每個(gè)請(qǐng)求中重新創(chuàng)建它。
- 使用 Servlet 過濾器或攔截器來處理通用任務(wù),例如驗(yàn)證或清理,從而避免在每個(gè) servlet 中重復(fù)相同的代碼。
- 避免在 HttpServletRequest 中存儲(chǔ)大量數(shù)據(jù),因?yàn)檫@會(huì)對(duì)性能產(chǎn)生負(fù)面影響。

結(jié)論

遵循 HttpServletRequest 的最佳實(shí)踐對(duì)于構(gòu)建健壯且高效的 Java Web 應(yīng)用程序至關(guān)重要。通過檢查 null 值、使用正確的編碼、驗(yàn)證和清理請(qǐng)求數(shù)據(jù)、處理異常、使用 HttpServletRequestWrapper、避免 Servlet 3.0 之前的版本以及使用優(yōu)化技術(shù),您可以確保您的應(yīng)用程序可靠、安全且高性能。


有人知道電腦服務(wù)器的發(fā)展沿革?

應(yīng)用服務(wù)器的發(fā)展傳統(tǒng)的應(yīng)用系統(tǒng)模式是“主機(jī)/終端”或“客戶機(jī)/服務(wù)器”,隨著Internet 的發(fā)展壯大 ,這些傳統(tǒng)模式已經(jīng)不能適應(yīng)新的環(huán)境,于是就產(chǎn)生了新的分布式應(yīng)用系統(tǒng),相應(yīng)地, 新的開發(fā)模式也應(yīng)運(yùn)而生,即所謂的“瀏覽器/服務(wù)器”結(jié)構(gòu)、“瘦客戶機(jī)”模式。 如何 實(shí)現(xiàn)這種模式呢?應(yīng)用服務(wù)器便是一種核心技術(shù)。 據(jù)Forrester Research 預(yù)測,到200 2年時(shí),應(yīng)用服務(wù)器的營業(yè)額將超過20億美元。 既然有這么好的前景,那么到底何謂應(yīng)用 服務(wù)器?它是如何分類的呢?它有什么樣的特點(diǎn)呢?本期技術(shù)特寫將向大家全面闡述應(yīng) 用服務(wù)器的概念、分類、產(chǎn)生、發(fā)展以及應(yīng)用服務(wù)器的代表性產(chǎn)品。 概念篇 目前應(yīng)用服務(wù)器市場還是一個(gè)非常容易弄混的市場,有大約40家公司聲稱他們擁有應(yīng)用 服務(wù)器產(chǎn)品,而每家提供的功能卻往往大相徑庭。 所以,盡管今天有許多應(yīng)用服務(wù)器可 供選擇??從知名的領(lǐng)先于市場的大公司到小型新興公司的產(chǎn)品,應(yīng)有盡有,但這種技 術(shù)還沒有成為一種完全成熟的商品,所以選購者在在購買時(shí)難下決斷。 由于應(yīng)用服務(wù)器是門新的技術(shù),它的概念還尚未統(tǒng)一,它到底應(yīng)該包含什么還是仁者見 仁,智者見智,但總體來說,應(yīng)用服務(wù)器通過把用戶接口、商業(yè)邏輯和后端服務(wù)分割開 來,向開發(fā)者提供了一種創(chuàng)建、部署和維護(hù)企業(yè)規(guī)模的Web應(yīng)用的模塊化方式,為要轉(zhuǎn)向 Web的用戶提供了高性能多線程的環(huán)境。 它是一種支持多種工業(yè)標(biāo)準(zhǔn)的協(xié)議和界面引擎, 它支持的標(biāo)準(zhǔn)包括數(shù)據(jù)庫互聯(lián)標(biāo)準(zhǔn)ODBC和JDBC、CORBA、COM/DCOM、Enterprise JavaBe ans(EJB)對(duì)象模型等。 三層或N層分布式Web計(jì)算技術(shù)的發(fā)展導(dǎo)致了應(yīng)用服務(wù)器技術(shù)的革新。 在分布式三層環(huán)境 中,應(yīng)用服務(wù)器駐留在中間層,夾在客戶器前端的用戶界面與后端的數(shù)據(jù)和企業(yè)應(yīng)用之 間。 分布式多層體系結(jié)構(gòu)要求應(yīng)用服務(wù)器主要考慮三方面的技術(shù)。 首先是開發(fā)環(huán)境,開發(fā)人 員需要 一種創(chuàng)建新組件、并將已有組件加以集成的開發(fā)環(huán)境。 其次是應(yīng)用程序的集成, 由于企業(yè)計(jì)算環(huán)境比較復(fù)雜,它綜合了傳統(tǒng)的應(yīng)用程序和新型應(yīng)用程序,因此開發(fā)人員 需要集成各種應(yīng)用程序,以創(chuàng)建出更強(qiáng)大的應(yīng)用。 第三是應(yīng)用程序的配置,由于典型的 Web 應(yīng)用程序是分布式,其組件運(yùn)行在不同的服務(wù)器上,并且有大量的用戶對(duì)其進(jìn)行訪 問,因此需要配置平臺(tái)的支持,以便在用戶劇增時(shí)能有效地?cái)U(kuò)展,并保持系統(tǒng)的穩(wěn)定。 這種分布式多層應(yīng)用體系結(jié)構(gòu)將會(huì)為企業(yè)帶來實(shí)際利益。 首先,應(yīng)用功能被分為幾個(gè)模 塊化部分,使應(yīng)用的創(chuàng)建、修改和維護(hù)更加容易。 其次,當(dāng)業(yè)務(wù)邏輯從后端移向中層的 一般較便宜的硬件上時(shí),就會(huì)帶來實(shí)際利益。 這種體系結(jié)構(gòu)的模塊化特征還使公司能實(shí) 施革新應(yīng)用,從而改善業(yè)務(wù)流程,保持對(duì)競爭者的優(yōu)勢。 分類篇 目前的應(yīng)用服務(wù)器已根據(jù)功能劃分為獨(dú)立的類別,在購買時(shí)請(qǐng)檢查應(yīng)用服務(wù)器所支持的 功能。 隨著應(yīng)用服務(wù)器市場的發(fā)展,新的和合并的功能將會(huì)出現(xiàn),但目前市場中主要有六種類 型:事務(wù)服務(wù)器、知識(shí)服務(wù)器、帶有集成開發(fā)工具的應(yīng)用服務(wù)器、協(xié)作服務(wù)器、瘦服務(wù) 器和主機(jī)訪問服務(wù)器。 事務(wù)服務(wù)器包括從電子商務(wù)實(shí)施到處理幫助桌面或人力資源數(shù)據(jù)共享的部門服務(wù)器的種 種功能。 事務(wù)服務(wù)器離商用功能還有很長一段距離。 每種實(shí)施計(jì)劃都需要用戶進(jìn)行努力 開發(fā),因此,這些計(jì)劃成本仍在增加。 21世紀(jì)將會(huì)有大量需求事務(wù)部署。 有鑒于此,帶有集成開發(fā)工具的事務(wù)服務(wù)器和應(yīng)用服 務(wù)器正合并成一種能同時(shí)處理事務(wù)管理和開發(fā)需求的服務(wù)器。 IBM、Oracle、微軟、Net scape、BEA和Sun等廠商在支持企業(yè)大型事務(wù)應(yīng)用功能的同時(shí),正在努力簡化自己的產(chǎn)品 的設(shè)計(jì)和開發(fā)。 知識(shí)服務(wù)器是一種更新的應(yīng)用服務(wù)器,一般能從結(jié)構(gòu)化和非結(jié)構(gòu)化來源中搜集數(shù)據(jù)并編 索引。 這些服務(wù)器通常具有HTTP支持、編索引功能和支持廣泛的數(shù)據(jù)和文件格式的檢查 和析取的工具。 知識(shí)服務(wù)器還可以支持工作流和業(yè)務(wù)邏輯處理能力。 Lotus和Netscape等廠商正增加大量工作流,由于知識(shí)服務(wù)器支持工作流,因而,協(xié)作服 務(wù)器可能會(huì)與之合并,以改善公司的數(shù)據(jù)管理。 這一領(lǐng)域的供貨商正在制定標(biāo)準(zhǔn)化協(xié)作 方面的協(xié)議,可能將提高使用不同的協(xié)作服務(wù)器的機(jī)構(gòu)間的互操作性。 這一協(xié)議有可能 大大使基于Web的商家對(duì)商家事務(wù)的集成更加容易。 帶有集成開發(fā)工具的應(yīng)用服務(wù)器在激烈的競爭中走向成熟。 該領(lǐng)域的供貨商正在為開發(fā) 和部署工具補(bǔ)充事務(wù)能力,創(chuàng)建一種更加完善的解決方案。 許多早期采用應(yīng)用服務(wù)器技術(shù)的人士抱怨它缺乏足夠的開發(fā)工具支持。 BEA/Weblogic、 Bluestone、Forte和SilverStream等供貨商在支持部署能力的同時(shí)大幅簡化了開發(fā)程序 。 但是,這種服務(wù)器仍很復(fù)雜,應(yīng)予以認(rèn)真的分析對(duì)待。 瘦服務(wù)器是一類與眾不同的應(yīng)用服務(wù)器。 這些解決方案通常是支持HTTP及另外的具體功 能(如Web頁面緩存)的軟、硬件的組件。 將來,它們可能與其它種類合并。 Cobalt等廠商推出了瘦服務(wù)器功能,當(dāng)這種功能與另一種解決方案集成時(shí),性能將超過 同類特征;這對(duì)某種關(guān)鍵功能的高度優(yōu)化來說至關(guān)重要。 最近,主機(jī)訪問服務(wù)器已接近商用服務(wù)器。 這些服務(wù)器管理著主機(jī)應(yīng)用的訪問和表示, 通常是通過服務(wù)器管理的基于瀏覽器的5250或3270仿真對(duì)話進(jìn)行管理。 IBM、Attachmate等添加了平臺(tái)支持、可管理性和客戶端自定義特征。 下一代主機(jī)訪問服 務(wù)器可能將通過支持對(duì)主機(jī)數(shù)據(jù)更具客戶化的訪問與其它應(yīng)用服務(wù)器合并。 在某些情況下,應(yīng)用服務(wù)器可能會(huì)不受分類所限,支持不只一種服務(wù)。 例如,SilverSt ream和Sybase所推出的應(yīng)用服務(wù)器就有集成開發(fā)工具,同時(shí)還具備事務(wù)支持。 將來,服 務(wù)器操作系統(tǒng)中也可能包含一種或多種功能。 Solaris、OS/400、NetWare、Linux、Win dows和其它服務(wù)器操作系統(tǒng)已具備Web技術(shù),預(yù)計(jì)將來還會(huì)添加更多的應(yīng)用服務(wù)器功能。 其實(shí),這種方式意味著把所有的雞蛋都放在一個(gè)籃子里。 在購買前對(duì)應(yīng)用服務(wù)器作出評(píng)價(jià)并非易事。 你必須衡量它是否滿足你的需求,關(guān)鍵是要 檢查部署能力和安全功能,評(píng)估可伸縮性和可靠性。 最后,還要考慮到這種市場處于不 斷發(fā)展變化之中。 專家篇 應(yīng)用服務(wù)器走向成熟 中國科學(xué)院軟件所 李淵明() 應(yīng)用服務(wù)器的由來 回顧軟件平臺(tái)的主要發(fā)展過程及趨勢,對(duì)于理解應(yīng)用服務(wù)器的發(fā)展是非常有幫助的。 軟 件發(fā)展的過程就是一個(gè)從舊平臺(tái)不斷向新平臺(tái)進(jìn)化的過程。 每當(dāng)一個(gè)新平臺(tái)出現(xiàn)的時(shí)候,都會(huì)有許多人首先開發(fā)出局部產(chǎn)品,每個(gè)產(chǎn)品可以滿足一 小部分的功能。 隨著市場的發(fā)展成熟,會(huì)出現(xiàn)幾個(gè)主導(dǎo)公司,他們將許多局部產(chǎn)品的功 能綜合到他們的產(chǎn)品中,形成主導(dǎo)產(chǎn)品。 關(guān)系數(shù)據(jù)庫市場就是一個(gè)很好的例子,一開始 有許多局部產(chǎn)品,如數(shù)據(jù)倉庫、對(duì)象存儲(chǔ)、全文檢索、事務(wù)處理、位圖索引等,現(xiàn)在這 些都已經(jīng)包含在主導(dǎo)產(chǎn)品中了,如Orcale 8、Sybase Adaptive Server等。 在客戶應(yīng)用 中,一開始有各種各樣的小型軟件產(chǎn)品,分別用于文字處理、電子表格、圖文處理、郵 件處理、拼寫檢查、記事簿、活動(dòng)安排等等,現(xiàn)在微軟、Lotus等已經(jīng)將許多標(biāo)準(zhǔn)的辦公 功能集成到了一個(gè)單一的產(chǎn)品套裝中,成為主導(dǎo)產(chǎn)品,現(xiàn)在我們一般不再需要五花八門 的單一功能的辦公軟件產(chǎn)品了。 我認(rèn)為Web市場和應(yīng)用服務(wù)器市場也會(huì)如此。 Web市場現(xiàn)在還處于百家爭鳴的時(shí)代,開發(fā) 一個(gè)Web系統(tǒng)往往需要六、七種工具,但往往還不湊手,需要時(shí)刻注意新的小工具的出現(xiàn) ,包括網(wǎng)上查找、四處搜集,這些都可能是解決問題的素材。 更大的難度是將所有這些 小工具集成到一起,因?yàn)檫@些小工具是各自獨(dú)立開發(fā)的,誰也沒有考慮集成的問題。 不 象客戶機(jī)/服務(wù)器開發(fā)中,PowerBuilder、Delphi已全面集成了幾乎所有所需的功能,我 們只需專心開發(fā)。 現(xiàn)在,Web的主導(dǎo)產(chǎn)品已經(jīng)出現(xiàn),如SilverStream、NetDynamics、Bluestone等,他們?nèi)?面集成了開發(fā)所需的功能,包括集成開發(fā)環(huán)境、分層次開發(fā)機(jī)制、源代碼控制功能、安 全管理功能、加密功能、服務(wù)器集群(構(gòu)造Cluster)能力、不間斷的失敗恢復(fù)能力、廣 泛的協(xié)議標(biāo)準(zhǔn)支持能力、廣泛的數(shù)據(jù)連接能力、事務(wù)處理能力、電子郵件處理能力、工 作流處理能力、觸發(fā)代理功能等,各項(xiàng)功能分工合理,和諧統(tǒng)一。 這個(gè)市場正處于統(tǒng)一 的過程中。 隨著基于Web的瘦客戶機(jī)結(jié)構(gòu)的發(fā)展,Web世界發(fā)生了巨大的變化,這種變化將Web開發(fā)和 傳統(tǒng)的IT開發(fā)聯(lián)系在一起。 IT系統(tǒng)需要Web的規(guī)范界面,廣泛應(yīng)用,方便維護(hù),而Web系 統(tǒng)需要IT系統(tǒng)的規(guī)范化數(shù)據(jù)存儲(chǔ)、海量數(shù)據(jù)訪問、安全性及事務(wù)完整性保證。 在這種情 況下,就需要一種新的產(chǎn)品將兩個(gè)平臺(tái)聯(lián)系到一起,在這種平臺(tái)上,各組織機(jī)構(gòu)可以結(jié) 合這兩種技術(shù)進(jìn)行開發(fā)。 這種平臺(tái),就是三層體系結(jié)構(gòu)的中間層。 下一代的計(jì)算平臺(tái)已經(jīng)很明顯是基于瘦客戶端和Web的計(jì)算了。 支持Web和瘦客戶應(yīng)用自 然就必須將更多的處理放到中間層去,中間層的重要性就是顯而易見的了。 瘦客戶端就 需要一個(gè)肥服務(wù)器,不能兩者都瘦。 而一般的Web服務(wù)器實(shí)在是太瘦了,因此需要我們費(fèi) 很大力氣到處尋找營養(yǎng)來養(yǎng)肥它。 應(yīng)用服務(wù)器則是一個(gè)全面集成的肥服務(wù)器,本身就能 夠滿足我們大多數(shù)的需求。 應(yīng)用服務(wù)器的發(fā)展過程 在基于Web和瘦客戶計(jì)算之前,我們可以看到一些局部產(chǎn)品具有中間層,如: 分布對(duì)象服務(wù)(ORB、OTM等) TP監(jiān)視器,事務(wù)管理器等 連接產(chǎn)品,提供應(yīng)用程序訪問歷史遺留數(shù)據(jù)、ERP應(yīng)用、關(guān)系數(shù)據(jù)庫等 這些產(chǎn)品的一個(gè)突出特點(diǎn)是不能提供任何功能來支持用戶界面,就是所謂的表演性服務(wù) 。 并且這些產(chǎn)品都是分立的專用產(chǎn)品。 基于Web的中間層服務(wù)??表演性服務(wù)器(PresentationServer) 從1994年開始,基于要?jiǎng)?chuàng)建動(dòng)態(tài)交互式Web應(yīng)用的想法,逐漸導(dǎo)出了一種新的中間層產(chǎn)品 思想:應(yīng)用服務(wù)器思想。 這種產(chǎn)品的第一代是簡單的Web服務(wù)器運(yùn)行CGI程序,第二代產(chǎn) 品則致力于使開發(fā)和發(fā)布動(dòng)態(tài)生成的HTML頁面變得容易。 這一代產(chǎn)品的主要目的是提供 表演性功能,這種結(jié)構(gòu)的主要缺點(diǎn)是業(yè)務(wù)邏輯是嵌在Web頁面的Script中的。 這一代產(chǎn)品 的主要功能為: 表演性服務(wù):動(dòng)態(tài)HTML生成、狀態(tài)和會(huì)話管理 集成工具:服務(wù)器附帶有集成開發(fā)工具,用來幫助開發(fā)基于HTML的應(yīng)用。 表演性服務(wù)器廠商著眼于擴(kuò)充性及各種不同的數(shù)據(jù)源的連接性。 如果你習(xí)慣于生成些Se rvlet及使用JDBC編寫組件,則這種服務(wù)器就可能引起你的興趣。 代表性的服務(wù)器包括M icrosoft ASP、IBM WebSphere等,這些產(chǎn)品各不相同,大致來說,這些服務(wù)器注重幫助 開發(fā)者采用COM、EJB組件和Servlet等,并將其作裁減縮放。 用戶可以使用自己喜歡的I DE生成組件,并裝入應(yīng)用服務(wù)器中。 因?yàn)镠TML頁面生成是通過Servlet完成,因此用戶可 以使用服務(wù)器的Wizards來幫助創(chuàng)建頁面或使用任何HTMLIDE來生成Servlet。 基于事務(wù)處理的中間層服務(wù)??事務(wù)處理服務(wù)器(TransactionServer) 事務(wù)處理服務(wù)器是第三代應(yīng)用服務(wù)器,第三代應(yīng)用服務(wù)器有了長足的發(fā)展,具備了許多 新特性: 有限的分布對(duì)象服務(wù) 當(dāng)開發(fā)者認(rèn)識(shí)到將業(yè)務(wù)邏輯放到Web頁面的Script中的缺陷之后,便希望能將這部分邏輯 放到可重用的中間層對(duì)象中去。 這一代服務(wù)器大多數(shù)支持通過RMI和CORBA訪問這些對(duì)象 。 有些產(chǎn)品還支持COM對(duì)象。 連接服務(wù) 這一代產(chǎn)品加入了健壯的、服務(wù)器級(jí)的關(guān)系數(shù)據(jù)庫連接驅(qū)動(dòng)程序,可以方便地訪問大多 數(shù)ERP應(yīng)用和歷史遺留數(shù)據(jù)。 企業(yè)配置服務(wù) 如果要使電子商務(wù)站點(diǎn)支持大量的并發(fā)用戶訪問,可擴(kuò)展性和可靠性就變得非常重要了 。 負(fù)載平衡和失敗恢復(fù)功能是必不可少的,安全性和可管理性也是關(guān)鍵的功能。 Java客戶程序 基于Web的HTML應(yīng)用可以滿足很多Internet用戶的需要,但對(duì)于Intranet上的用戶,他們 往往長時(shí)間地和同一個(gè)系統(tǒng)打交道,他們需要更為豐富、方便的用戶界面。 這一點(diǎn)HTML 往往難以作到,而Java客戶可以方便地作到,而且不失瘦客戶計(jì)算的本質(zhì)。 這種服務(wù)器主要用于事務(wù)處理性的應(yīng)用,代表性的服務(wù)器包括:Oracle Application S erver,Microsoft MTS,BEA Weblogic,Gemstone,Sybase Jaguar等。 但這類服務(wù)器不提供 豐富的基于WEB的用戶界面生成功能,即表演性服務(wù)器提供的那些功能。 綜合性中間層服務(wù)??綜合應(yīng)用服務(wù)器 到現(xiàn)在為止,我們已經(jīng)看到了Web應(yīng)用服務(wù)器和事務(wù)處理服務(wù)器,這兩種服務(wù)器都有缺點(diǎn) ,以SilverStream、Bluestone為代表的新一代應(yīng)用服務(wù)器是這兩種服務(wù)器的結(jié)合。 它不 僅具備事務(wù)處理能力,還具備表演性服務(wù)能力,并且還包括集成的開發(fā)工具。 這是一種 集成完美的開發(fā)環(huán)境,是一種將開發(fā)、應(yīng)用、表演、事務(wù)捆綁在一起的應(yīng)用服務(wù)器。 利 用它,開發(fā)者能很快建立和使用Web應(yīng)用。 其著重點(diǎn)是在優(yōu)美的環(huán)境下高度交互式地進(jìn)行 開發(fā)。 這一代產(chǎn)品具備的功能包括: 表演性服務(wù)、分布式對(duì)象服務(wù)、分布式事務(wù)服務(wù)、應(yīng)用服務(wù)、連接服務(wù)、企業(yè)配置服務(wù) 、集成開發(fā)工具以及對(duì)第三方開發(fā)工具的開放性。 應(yīng)用服務(wù)器的發(fā)展方向 由上述發(fā)展?fàn)顩r,筆者認(rèn)為,應(yīng)用服務(wù)器是朝著集成、擴(kuò)展的方向發(fā)展的,正如關(guān)系數(shù) 據(jù)庫和辦公軟件的發(fā)展一樣。 一方面,應(yīng)用服務(wù)器會(huì)集成越來越多的功能,不管是應(yīng)用 服務(wù)器廠家自己開發(fā)的,還是從第三方廠家買來的,對(duì)用戶來說是一個(gè)和諧的整體。 另 一方面,應(yīng)用服務(wù)器會(huì)向著多方兼容和中立的方向發(fā)展,包括: 跨平臺(tái)能力:UNIX、NT等 跨數(shù)據(jù)庫能力:Oracle、DB/2、Microsoft SQLServer、Sybase、Informix等 跨分布式對(duì)象標(biāo)準(zhǔn)能力:CORBA、DCOM、EJB、RMI等 兼容多種應(yīng)用和歷史遺留數(shù)據(jù)的能力:SAP、Peoplesoft、Lotus Notes、CICS、MQ、Tu xedo等 應(yīng)用服務(wù)器市場是一個(gè)快速發(fā)展的市場,在過去的一年里得到了飛快的發(fā)展,在今后的 一到兩年里還會(huì)有激烈的競爭。 盡管現(xiàn)在還沒有統(tǒng)一,但用戶對(duì)該技術(shù)的需求已比較明 朗,統(tǒng)一的趨勢已經(jīng)非常明顯,它正在逐漸走向成熟。 產(chǎn)品篇 盡管應(yīng)用服務(wù)器的市場還相當(dāng)稚嫩,但它的發(fā)展相當(dāng)迅猛,除了有一些新興廠商之外, 很多著名的廠商紛紛進(jìn)入這一領(lǐng)域,包括IBM、微軟、SUN、Oracle等。 以下便是幾種有 代表性的應(yīng)用服務(wù)器產(chǎn)品,希望讀者能從中更加深入地了解應(yīng)用服務(wù)器。 BEA WebLogic BEA WebLogic產(chǎn)品系列包括可單獨(dú)使用或結(jié)合使用的適用于各種規(guī)模企業(yè)的一系列應(yīng)用 服務(wù)器解決方案: BEA WebLogic Enterprise是高可伸縮、高可用、支持企業(yè)Java標(biāo)準(zhǔn)和CORBA且具有主機(jī) 互操作性的企業(yè)應(yīng)用服務(wù)器,是運(yùn)行關(guān)鍵任務(wù)Web應(yīng)用的擴(kuò)展型WebLogic組件中間件系列 的旗艦產(chǎn)品。 BEA WebLogic Enterprise能夠幫助大型企業(yè)將其Web和Java應(yīng)用與現(xiàn)有臺(tái) 式機(jī)應(yīng)用、企業(yè)數(shù)據(jù)和原有系統(tǒng)集成起來。 BEA WebLogic Server是BEA Web應(yīng)用服務(wù)器的旗艦產(chǎn)品,為用戶提供了一個(gè)可伸縮、滿 足企業(yè)Java標(biāo)準(zhǔn)的應(yīng)用服務(wù)器。 BEA WebLogic Server通過支持建立在網(wǎng)絡(luò)上互聯(lián)的Jav a應(yīng)用程序而對(duì)BEA WebLogic Express進(jìn)行擴(kuò)展。 BEA WebLogic Server是第一個(gè)提供EJ B組件、Java消息傳遞和事件服務(wù)、微軟COM集成以及零管理客戶機(jī)的Web應(yīng)用服務(wù)器。 BEA WebLogic Express為用戶提供了一個(gè)入門級(jí)Web應(yīng)用服務(wù)器。 使用BEA WebLogic Ex press能夠生成動(dòng)態(tài)Web頁面并放入數(shù)據(jù)庫查詢結(jié)果。 Web表示邏輯由企業(yè)Java Servlets 以及Java Server Pages定義,關(guān)系型數(shù)據(jù)則通過BEA的Java數(shù)據(jù)庫連接(JDBC)解決方案 實(shí)現(xiàn)。 BEA WebLogic Express支持HTML和Java客戶機(jī)。 IBM WebSphere Application Server IBM WebSphere Application Server是一個(gè)完善的、開放的Web應(yīng)用服務(wù)器。 它是IBM電 子商務(wù)應(yīng)用架構(gòu)的核心。 WebSphere應(yīng)用服務(wù)器嚴(yán)格地遵循普遍流行的開放標(biāo)準(zhǔn),如HTT P、HTML、JSP、JNDI和IIOP。 WebSphere應(yīng)用服務(wù)器基于Java Servlet引擎,將通常的Web服務(wù)器(如Apache Server, Microsoft IIS,Netsacpe Enterprise Server和Lotus Domino Go WebServer)增強(qiáng)為基 于Java的Web應(yīng)用服務(wù)器。 作為IBM電子商務(wù)應(yīng)用架構(gòu)的核心,WebSphere應(yīng)用服務(wù)器提供 了無限的擴(kuò)展性,允許用戶利用IBM或其它廠商提供的Java技術(shù)擴(kuò)展其運(yùn)行環(huán)境。 WebSphere應(yīng)用服務(wù)器滿足維護(hù)一個(gè)Web站點(diǎn)的任何需求:簡單安裝,圖形用戶界面(方便 Servlet管理),基于Web的遠(yuǎn)程管理和安全特性。 它支持標(biāo)準(zhǔn)的Java Servlet(包括Java Server Page scripts),并增強(qiáng)其服務(wù),例如會(huì)話狀態(tài),用戶描述文件,通過連接管理器 (連接緩沖區(qū))實(shí)現(xiàn)高性能的數(shù)據(jù)庫訪問。 利用IBM Connector系列,實(shí)現(xiàn)與后臺(tái)系統(tǒng)(CI CS,IMS,MQSeries)的連接。 WebSphere應(yīng)用服務(wù)器支持Enterprise Java Beans(EJB)編 程模型及CORBA。 聯(lián)合Enterprise Java Server(EJS)和一個(gè)Java Object Request Brok er(ORB),可以通過IIOP訪問分布的對(duì)象,利用這個(gè)標(biāo)準(zhǔn)的、廣泛的編程模型,可在您的 Web應(yīng)用中實(shí)現(xiàn)對(duì)各種商業(yè)對(duì)象的訪問和運(yùn)行服務(wù)。 Microsoft Transaction Server Microsoft Transaction Server (MTS) 2.0是 Windows NT 的一個(gè)重要特性,它采用Mi crosoft 組件對(duì)象模型 (COM) 技術(shù),簡化以服務(wù)器為中心的應(yīng)用程序的開發(fā)和配置。 M TS 2.0 是在Windows NT 上構(gòu)建和配置基于COM 的應(yīng)用程序的最簡便的方法。 MTS 完全 分成三層結(jié)構(gòu),從表示層到應(yīng)用邏輯, 這使 MTS 開發(fā)人員在構(gòu)造他們的應(yīng)用程序時(shí),就 象收集一組單用戶COM 組件,然后在相應(yīng)的層設(shè)置這些組件一樣。 MTS 2.0 提供全面的組件功能,如自動(dòng)事務(wù)支持、簡單但強(qiáng)大的基于角色的安全性、訪 問各種數(shù)據(jù)庫及消息隊(duì)列產(chǎn)品等。 IIS(Microsoft Internet InformationServer)與 MTS 2.0 集成 ,使用MTS 進(jìn)行許多運(yùn) 行時(shí)刻服務(wù),如事務(wù)管理。 事務(wù)支持使 IIS active Server Pages能夠在數(shù)據(jù)完整性的 完全保護(hù)下訪問數(shù)據(jù)庫、主機(jī)應(yīng)用程序和消息隊(duì)列。 MTS集成還給IIS 提供進(jìn)程來防止單 個(gè)故障影響Web站點(diǎn)的其它部分,增強(qiáng)的運(yùn)行時(shí)刻服務(wù)如線程和連接池提高了性能,并簡化 了組件管理。 MTS 2.0 與MSMQ(Microsoft Message Queue Server)的集成使基于 MTS 的 應(yīng)用程序能夠以可靠、松散耦合的方式通信。 MSMQ 操作 (如發(fā)送和接收)自動(dòng)得益于MT S事務(wù)以保護(hù)數(shù)據(jù)完整。 MTS 2.0 與 Microsoft SNA Server 4.0 的集成有助于主機(jī)應(yīng)用 程序的構(gòu)建及相應(yīng)的事務(wù)管理。 Oracle Application Server Oracle應(yīng)用服務(wù)器提供了一個(gè)開放的標(biāo)準(zhǔn)架構(gòu),是開發(fā)部署Web上的應(yīng)用的理想平臺(tái)。 它 的伸縮性、分布架構(gòu)和高度數(shù)據(jù)庫集成是支持關(guān)鍵事務(wù),交易型應(yīng)用的基礎(chǔ),通過采用 Netscape和Microsoft HTTP服務(wù)器,提供了易于使用的界面,并為Oracle方案提供了簡 易的升級(jí)方法。 以符合CORBA2.0標(biāo)準(zhǔn)的ORB為基礎(chǔ),Oracle Application Server將應(yīng)用程序插件(Appli cation Cartridge)與所有系統(tǒng)服務(wù)作為分布對(duì)象。 這樣的設(shè)計(jì)使應(yīng)用處理能被分散于數(shù) 部主機(jī),有效而經(jīng)濟(jì)地解決性能瓶頸。 與其它Web解決方案比較起來,Oracle Applicat ion Server架構(gòu)本身即保證其可擴(kuò)展性。 Oracle Application Server是聯(lián)系數(shù)據(jù)網(wǎng)絡(luò)應(yīng)用程序和數(shù)據(jù)庫最簡單的方法。 內(nèi)含的P L/SQL插件(PL/SQL Cartridge)使出版數(shù)據(jù)庫內(nèi)的資料非??焖俣唵?。 當(dāng)企業(yè)需出版動(dòng) 態(tài)資料訊息時(shí),傳統(tǒng)進(jìn)行靜態(tài)內(nèi)容設(shè)計(jì)的Web服務(wù)器需撰寫單調(diào)且困難的腳本,Oracle Application Server的應(yīng)用程序插件將使這些工作變得毫無需要。 集成各種類型數(shù)據(jù)庫 、舊型主機(jī)系統(tǒng)(legacy system)與網(wǎng)絡(luò)運(yùn)算、瘦客戶端時(shí),Oracle Application Serv er的表現(xiàn)尤其杰出。 以對(duì)所有網(wǎng)絡(luò)客戶端提供跨平臺(tái)支持為基礎(chǔ),Oracle Application Server提高對(duì)HTML、 Java、CORBA、DCOM等各種組件模型提供的易于擴(kuò)展的能力。 SilverStream SilverStream是一個(gè)全面的集成產(chǎn)品。 它既包含了高性能的應(yīng)用服務(wù)器,又包含了高效 的開發(fā)環(huán)境。 在統(tǒng)一的界面中,既支持HTML開發(fā),又支持Java開發(fā);既支持一般數(shù)據(jù), 又支持多媒體數(shù)據(jù)。 特別是,許多服務(wù)器基于對(duì)Web的擴(kuò)充,而SilverStream則基于對(duì)標(biāo) 準(zhǔn)的完整集成。 它使用HTTP1.1進(jìn)行客戶通訊,SMTP/POP3進(jìn)行郵件操作,JNDI/LDAP和X .509進(jìn)行認(rèn)證,SSL3.0進(jìn)行加密,SNMP進(jìn)行系統(tǒng)管理,CORBA,RMI和COM和遠(yuǎn)程對(duì)象通訊 ,JDBC/ODBC用于數(shù)據(jù)存取。 SilverStream具有完整的集成開發(fā)環(huán)境??可視化、事件驅(qū)動(dòng)工具和單一且一致的界面 。 所以無論你是構(gòu)造數(shù)據(jù)驅(qū)動(dòng)的HTML網(wǎng)頁、Java應(yīng)用程序或事物對(duì)象,利用SilverStre am提供的豐富的函數(shù),都能快速、方便的實(shí)現(xiàn)。 用戶可以使用SilverStream管理控制臺(tái)來管理和監(jiān)控任何事情,這包括安全性、服務(wù)器 統(tǒng)計(jì)數(shù)據(jù)、均衡負(fù)載能力、數(shù)據(jù)庫、電子郵件等等,或者通過SilverStream管理應(yīng)用編程 接口,創(chuàng)建自己的管理應(yīng)用程序。 這無疑給用戶提供了很大的靈活性。 SilverStream可連接的數(shù)據(jù)源非常廣泛,不管是存儲(chǔ)在關(guān)系數(shù)據(jù)庫中,還是存儲(chǔ)在IBM主 機(jī)中,不管是您自己開發(fā)的系統(tǒng),還是SAP、Notes、CICS、Peopsoft,都可以統(tǒng)一在Si lverStream中。 SilverStream為獲取最大的吞吐量和均衡性作了優(yōu)化,而并未犧牲其他性能。 它的應(yīng)用 級(jí)觸發(fā)器技術(shù),使得推技術(shù)的應(yīng)用簡單而自然。 Sybase Enterprise Application Server Sybase Enterprise Application Server 3.0(EA Server)是Sybase Internet應(yīng)用開 發(fā)包Enterprise Application Studio 3.0中的重要組成部分,它將Sybase 的組件事務(wù) 處理服務(wù)器Jaguar CTS 和Web 應(yīng)用服務(wù)器PowerDynamo 緊密集成并加以發(fā)展,是同時(shí)實(shí) 現(xiàn)Web OLTP 和動(dòng)態(tài)信息發(fā)布的企業(yè)級(jí)應(yīng)用服務(wù)器平臺(tái),并且支持所有標(biāo)準(zhǔn)的組件模型, 包括JavaBeans、COM和CORBA等。 Jaguar CTS支持基于各種組件模式和客戶類型的應(yīng)用的迅速開發(fā)和提交,而PowerDynam o 支持標(biāo)準(zhǔn)的Web技術(shù),二者的聯(lián)合對(duì)于要求動(dòng)態(tài)頁面服務(wù)、基于組件的業(yè)務(wù)邏輯和事務(wù) 處理的Web 應(yīng)用非常有利。 PowerDynamo 的模板和腳本語言能夠處理任何數(shù)據(jù)和業(yè)務(wù)邏 輯,并按客戶端需求生成相應(yīng)的HTML 頁面,送往Web 服務(wù)器,它通過嵌入在模板中的SQ L 指令訪問數(shù)據(jù),通過調(diào)用Jaguar CTS 組件的方法訪問復(fù)雜的業(yè)務(wù)邏輯。 EA Server 可以支持多種客戶類型。 客戶端可以用HTML、Java、ActiveX、PowerBuider 等工具開發(fā)或是它們中幾種工具組合開發(fā)。 原有的應(yīng)用程序可以完美地被移植到新的應(yīng) 用環(huán)境中,使得客戶端應(yīng)用可以根據(jù)它們的實(shí)現(xiàn)特征選擇合適的開發(fā)工具

JAVAweb選擇什么框架(javaweb最簡單的一個(gè)框架)

常用的JavaWeb框架簡介

Web框架是人們?cè)谑褂媚撤N語言編寫Web應(yīng)用服務(wù)端時(shí)關(guān)于架構(gòu)的最佳實(shí)踐

有些Web框架是從實(shí)際的Web項(xiàng)目抽取出來的也就是說做一個(gè)具體的應(yīng)用項(xiàng)目時(shí)采取的架構(gòu)比較理想就把這部分和領(lǐng)域無關(guān)而僅和Web的請(qǐng)求和響應(yīng)處理有關(guān)的設(shè)計(jì)拿出來形成一個(gè)基礎(chǔ)在開發(fā)別的應(yīng)用項(xiàng)目的時(shí)候則可以從這基礎(chǔ)做起讓開發(fā)者更關(guān)注領(lǐng)域問題而不是Web的請(qǐng)求和響應(yīng)的控制

也有些Web框架是直接設(shè)計(jì)出來的很多Web框架在設(shè)計(jì)的時(shí)候也都借鑒了別的框架吸取優(yōu)點(diǎn)修改不足并根據(jù)自己的框架的定位在特定方面有自己的發(fā)揮形成了自己的特點(diǎn)比如有的web框架追求的是松耦合性層次結(jié)構(gòu)之間都不密切綁定有的Web框架則追求敏捷性強(qiáng)調(diào)約定而不是配置

Java的Web框架雖然各不相同但基本也都是遵循特定的路數(shù)的使用Servlet或者Filter攔截請(qǐng)求使用MVC的思想設(shè)計(jì)架構(gòu)使用約定XML或Annotation實(shí)現(xiàn)配置運(yùn)用Java面向?qū)ο蟮奶攸c(diǎn)面向抽象實(shí)現(xiàn)請(qǐng)求和響應(yīng)的流程支持JspFreemarkerVelocity等視圖

優(yōu)點(diǎn)

JavaEE標(biāo)準(zhǔn)這意味著有很大的市場需求和更多的工作機(jī)會(huì)

上手快速并且相對(duì)容易

有大量可用的組件庫

缺點(diǎn)

大量的JSP標(biāo)簽

對(duì)REST和安全支持不好

應(yīng)用程序

沒有一個(gè)統(tǒng)一的實(shí)現(xiàn)既有SUN的實(shí)現(xiàn)又有Apache的實(shí)現(xiàn)——MyFaces

國內(nèi)的OperaMasks還支持AJAX以及有開發(fā)工具支持

優(yōu)點(diǎn)

對(duì)覆蓋綁定(overridingbinding)驗(yàn)證(validation)等提供生命周期管理

與許多表示層技術(shù)/框架無縫集成JSP/JSTLTilesVelocityFreeMarkerExcelXSLPDF等

便于測試——?dú)w功于IoC

缺點(diǎn)

大量的XML配置文件

太過靈活——沒有公共的父控制器

沒有內(nèi)置的Ajax支持

優(yōu)點(diǎn)

不需要書寫XML配置文件

良好的學(xué)習(xí)文檔

社區(qū)成員很熱心

缺點(diǎn)

社區(qū)比較小

不如其他的項(xiàng)目活躍

ActionBean里面的URL是硬編碼的

優(yōu)點(diǎn)

架構(gòu)簡單——易于擴(kuò)展

標(biāo)記庫很容易利用FreeMarker或者Velocity來定制

基于控制器或者基于頁面的導(dǎo)航

缺點(diǎn)

文檔組織得很差

對(duì)新特征過分關(guān)注

通過Google搜索到的大多是Strutsx的文檔

優(yōu)點(diǎn)

一旦學(xué)會(huì)它將極大地提高生產(chǎn)率

HTML模板——對(duì)頁面設(shè)計(jì)師非常有利

每出一個(gè)新版本都會(huì)有大量的創(chuàng)新

缺點(diǎn)

文檔過于概念性不夠?qū)嵱?

學(xué)習(xí)曲線陡峭

發(fā)行周期長——每年都有較大的升級(jí)

優(yōu)點(diǎn)

對(duì)Java開發(fā)者有利(不是Web開發(fā)者)

頁面和顯示綁定緊密

社區(qū)活躍——有來自創(chuàng)建者的支持

缺點(diǎn)

HTML模板和Java代碼緊挨著

需要對(duì)OO有較好的理解

Wicket邏輯——什么都用Java搞定

在Java的Web框架中我使用過StrutsStruts試用過StripesWicket了解過JSFSpringMVC以我使用的經(jīng)驗(yàn)我覺得看一個(gè)JavaWeb框架應(yīng)看看下面幾個(gè)方面

設(shè)計(jì)理念

一個(gè)框架設(shè)計(jì)出來應(yīng)該有一個(gè)基本的思路它為什么要要被設(shè)計(jì)出來?有的框架的目標(biāo)就是提高效率有的框架的目標(biāo)的給用戶充分的選擇有的框架的目標(biāo)是充分了解實(shí)際需求給用戶一個(gè)盡量合理的默認(rèn)選擇有的框架是要給使用者開發(fā)桌面程序的感覺應(yīng)該說一個(gè)好的框架應(yīng)該是實(shí)現(xiàn)了預(yù)期目標(biāo)體現(xiàn)出了自己的設(shè)計(jì)理念的

設(shè)計(jì)的合理性

設(shè)計(jì)的合理性表現(xiàn)在框架在一些關(guān)鍵問題上的處理比如靈活性和敏捷性之間的權(quán)衡硬編碼和文本配置之間的權(quán)衡靈活性指的是可以適應(yīng)用戶多樣的需求很特殊的要求也能得到支持有的框架的實(shí)現(xiàn)基于太多的約定使得用戶只能遵循而敏捷性指的是用戶在解決絕大多數(shù)常規(guī)問題的時(shí)候能盡量少做工作提高效率框架設(shè)計(jì)者只能在這兩者見達(dá)到一個(gè)平衡點(diǎn)權(quán)衡的怎么樣就很見水平了硬編碼和文本配置之間的權(quán)衡也很有意思文本配置的意義在于Java是一個(gè)編譯語言強(qiáng)調(diào)代碼的封閉講究擴(kuò)展而不是修改這種情況下文本配置信息可以很方便的在不修改程序的情況下改變程序行為但是隨著一些靈活的腳本語言實(shí)現(xiàn)的Web框架的出現(xiàn)人們發(fā)現(xiàn)在這樣的框架中腳本語言即做程序編碼語言也做配置語言還做視圖上的標(biāo)記語言這使我們對(duì)Java實(shí)現(xiàn)的框架有了一番新的審視既然配置文件并沒有消除對(duì)程序的修改為什么不能在應(yīng)編碼上下下功夫呢?

設(shè)計(jì)的平衡性

設(shè)計(jì)的平衡性指的是框架在設(shè)計(jì)流程中各階段各層次的實(shí)現(xiàn)方式時(shí)所達(dá)到的上述權(quán)衡(靈活性和敏捷性之間的權(quán)衡等)應(yīng)該是具有一致的水平一個(gè)在控制上過分靈活而視圖上具有非常大限制的框架是不能算做一個(gè)好的框架的

框架真的解放了開發(fā)者嗎

框架的目的是讓開發(fā)者把更多的精力放在領(lǐng)域問題而非Web的請(qǐng)求和響應(yīng)的處理問題上而事實(shí)上框架都做到這一點(diǎn)了嗎?不可否認(rèn)框架的使用提高代碼的可維護(hù)性但是框架在解放開發(fā)者這點(diǎn)上就未必了有時(shí)還給開發(fā)者帶來了額外的負(fù)擔(dān)事實(shí)上直接使用Servlet只要維持好代碼風(fēng)格一樣可以很有效率當(dāng)然直接使用Servlet的靈活性就不用說了

在我接觸的Web框架中我最推崇的是Struts設(shè)計(jì)優(yōu)雅偏重靈活也基本不造成額外的負(fù)擔(dān)當(dāng)然這些評(píng)價(jià)是和我參與的項(xiàng)目的規(guī)模有關(guān)的其他規(guī)模的項(xiàng)目Struts就未必合適了我希望Struts能在下面幾個(gè)方面有些改善

在提供文本配置方式的基礎(chǔ)上給一個(gè)約定配置的方式讓開發(fā)者在大多數(shù)情況下可以不配置

配置也支持硬編碼因?yàn)橛袝r(shí)候維護(hù)可修改的硬編碼是很有效率的

lishixinzhi/Article/program/Java/hx//

java里面那么多框架,選擇哪個(gè)啊

這里有一些步驟可以幫助你選擇正確的Java框架:

1.確定你的項(xiàng)目需求:在選擇Java框架之前,需要確定項(xiàng)目的具體需求,比如要構(gòu)建的應(yīng)用的類型、需要的特性、可伸縮性、應(yīng)用的性能等。

2.評(píng)估可用的框架:一旦你確定了項(xiàng)目需求,你就可以開始根據(jù)它們的特性、性能、可伸縮性、易用性、社區(qū)支持和文檔來評(píng)估可用的Java框架。

3.考慮一下學(xué)習(xí)曲線:考慮框架的學(xué)習(xí)曲線,指的是你的團(tuán)隊(duì)成員學(xué)習(xí)和有效使用框架所需的時(shí)間和精力。 有些框架比其他框架更復(fù)雜,因此選擇一個(gè)與團(tuán)隊(duì)成員的技能水平相匹配的框架非常重要。

4.看看社區(qū)支持:社區(qū)支持非常重要,因?yàn)樗峁┝藢?duì)論壇、教程和文檔等資源的訪問。 具有強(qiáng)大社區(qū)支持的框架可以幫助你快速解決問題并獲得幫助。

5.評(píng)估生態(tài)系統(tǒng):Java框架生態(tài)系統(tǒng)包括可以幫助你構(gòu)建應(yīng)用程序的庫、工具和資源。 一個(gè)具有健壯生態(tài)系統(tǒng)的框架可以節(jié)省你的時(shí)間和精力,并且可以幫助你避免重新發(fā)明輪子。

6.考慮長期可行性:當(dāng)選擇一個(gè)Java框架時(shí),考慮它的長期生存能力是很重要的。 確保框架有一個(gè)活躍的社區(qū),并定期更新,以避免框架過時(shí)和不受支持的風(fēng)險(xiǎn)。

java有什么常用開源的框架?

java常用開源框架如下:\x0d\【Java開源JEE框架】\x0d\x0a\x0d\x0aSpring是一個(gè)解決了許多在J2EE開發(fā)中常見的問題的強(qiáng)大框架。 Spring提供了管理業(yè)務(wù)對(duì)象的一致方法并且鼓勵(lì)了注入對(duì)接口編程而不是對(duì)類編程的良好習(xí)慣。 Spring的架構(gòu)基礎(chǔ)是基于使用JavaBean屬性的InversionofControl容器。 然而,這僅僅是完整圖景中的一部分:Spring在使用IoC容器作為構(gòu)建完關(guān)注所有架構(gòu)層的完整解決方案方面是獨(dú)一無二的。 \x0d\x0a\x0d\【Java開源Web開發(fā)框架】\x0d\x0a\x0d\x0aWebWork是由OpenSymphony組織開發(fā)的,致力于組件化和代碼重用的拉出式MVC模式J2EEWeb框架。 \x0d\x0a\x0d\【Java開源Web開發(fā)框架】\x0d\x0a\x0d\x0aStruts是一個(gè)基于SunJ2EE平臺(tái)的MVC框架,主要是采用Servlet和JSP技術(shù)來實(shí)現(xiàn)的。 由于Struts能充分滿足應(yīng)用開發(fā)的需求,簡單易用,敏捷迅速,在過去的一年中頗受關(guān)注。 Struts把Servlet、JSP、自定義標(biāo)簽和信息資源(messageresources)整合到一個(gè)統(tǒng)一的框架中\(zhòng)x0d\x0a\x0d\【Java開源持久層框架】\x0d\x0a\x0d\x0aHibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來操縱數(shù)據(jù)庫。 Hibernate可以應(yīng)用在任何使用JDBC的場合\x0d\x0a\x0d\【Java開源調(diào)度框架】\x0d\x0a\x0d\x0aQuartz是OpenSymphony開源組織在Jobscheduling領(lǐng)域又一個(gè)開源項(xiàng)目,它可以與J2EE與J2SE應(yīng)用程序相結(jié)合也可以單獨(dú)使用。 Quartz可以用來創(chuàng)建簡單或?yàn)檫\(yùn)行十個(gè),百個(gè),甚至是好幾萬個(gè)Jobs這樣復(fù)雜的日程序表。 \x0d\x0a\x0d\【Java開源模板引擎】\x0d\x0a\x0d\x0aVelocity是一個(gè)基于java的模板引擎(templateengine)。 它允許任何人僅僅簡單的使用模板語言(templatelanguage)來引用由java代碼定義的對(duì)象。 當(dāng)Velocity應(yīng)用于web開發(fā)時(shí),界面設(shè)計(jì)人員可以和java程序開發(fā)人員同步開發(fā)一個(gè)遵循MVC架構(gòu)的web站點(diǎn),也就是說,頁面設(shè)計(jì)人員可以只關(guān)注頁面的顯示效果,而由java程序開發(fā)人員關(guān)注業(yè)務(wù)邏輯編碼。 Velocity將java代碼從web頁面中分離出來,這樣為web站點(diǎn)的長期維護(hù)提供了便利,同時(shí)也為我們?cè)贘SP和PHP之外又提供了一種可選的方案。 \x0d\x0a\x0d\【Java開源持久層框架】\x0d\x0a\x0d\x0a使用ibatis提供的ORM機(jī)制,對(duì)業(yè)務(wù)邏輯實(shí)現(xiàn)人員而言,面對(duì)的是純粹的Java對(duì)象,這一層與通過Hibernate實(shí)現(xiàn)ORM而言基本一致,而對(duì)于具體的數(shù)據(jù)操作,Hibernate會(huì)自動(dòng)生成SQL語句,而ibatis則要求開發(fā)者編寫具體的SQL語句。 相對(duì)Hibernate等“全自動(dòng)”O(jiān)RM機(jī)制而言,ibatis以SQL開發(fā)的工作量和數(shù)據(jù)庫移植性上的讓步,為系統(tǒng)設(shè)計(jì)提供了更大的自由空間。 作為“全自動(dòng)”O(jiān)RM實(shí)現(xiàn)的一種有益補(bǔ)充,ibatis的出現(xiàn)顯得別具意義。

北大青鳥設(shè)計(jì)培訓(xùn):Javaweb現(xiàn)在流行用什么框架?

說到j(luò)ava,很多人頭都大成了兩個(gè),因?yàn)镴ava框架很多。

但是比較好的方面是,這些框架都能解決特定的問題,提高開發(fā)效率、簡化我們的代碼復(fù)雜度,現(xiàn)在除了很多大家通用的一些主流框架外,很多公司針對(duì)自己的業(yè)務(wù)會(huì)自定義一些公司內(nèi)部的框架,當(dāng)然作為學(xué)習(xí)者java課程告訴大家首先要清楚Javaweb都有哪些框架需要學(xué)習(xí)。

回答這個(gè)問題首先要看我們的項(xiàng)目規(guī)模,對(duì)于”體量”較小的單應(yīng)用項(xiàng)目,和需要處理海量數(shù)據(jù)、高并發(fā)的分布式項(xiàng)目所學(xué)習(xí)使用的框架還是不同的。

ORM型框架,很多Javaweb程序都需要使用關(guān)系數(shù)據(jù)庫來進(jìn)行數(shù)據(jù)的持久化,所以對(duì)于這種需要進(jìn)行數(shù)據(jù)庫操作的框架,也就是對(duì)JDBC進(jìn)行封裝的ORM框架是需要學(xué)習(xí)的,目前比較流行的是基于SQL的mybatis框架,這是一個(gè)輕量級(jí)的ORM框架,學(xué)習(xí)使用起來比較容易上手,同類型的還有Hibernate框架。

MVC型框架,MVC把程序從邏輯上分為視圖層、控制層、模型層,各層各司其職,之間是相互調(diào)用的關(guān)系而不是相互依賴的關(guān)系,這種模式能很好的適應(yīng)需求的變化及軟件的升級(jí)變更。

目前應(yīng)用較多的MVC框架是springMVC框架,這個(gè)框架有清晰的角色劃分,有強(qiáng)大而直接的配置方式,高效的綁定和驗(yàn)證等很多優(yōu)勢。

較早的Struts2框架也是MVC框架。

Spring框架,其實(shí)Java的從業(yè)者很多都繞不開Spring,Spring家族有很多“工具”,編程思想從面相過程到面相對(duì)象是一個(gè)巨大的進(jìn)步,然而隨著程序越來越復(fù)雜,對(duì)象越來越多,高效的“管理”及應(yīng)用這些對(duì)象變得越來越重要,Spring的IoC就是把對(duì)象的創(chuàng)建、“管理”交由Spring容器來進(jìn)行,來實(shí)現(xiàn)控制反轉(zhuǎn),同時(shí)提供了各種注入值(DI)的方式,大大提高和簡化了我們的工作,這就是javaweb需要學(xué)習(xí)的spring的IoC/DI;我們程序的業(yè)務(wù)比較復(fù)雜時(shí),除了要完成核心功能外,還需要完成注入異常處理、日志記錄、事務(wù)處理等常規(guī)功能,這些常規(guī)的操作比較耗費(fèi)精力,springAOP(面向切面編程)就是解決這個(gè)問題的。

Javaweb需要學(xué)習(xí)一些前端框架,尤其是問題中提到的已經(jīng)寫好了數(shù)據(jù)接口,或者是已經(jīng)有了簡單的后臺(tái),前端框架jQuery是一定要學(xué)習(xí)的,如果項(xiàng)目基于效率考慮,需要前后端分離,可以學(xué)習(xí)vue等框架。

javaEE和javaweb的區(qū)別?

javaweb是特制原sun公司出的一套以servlet規(guī)范的web層規(guī)范,是java在web方面的開發(fā).圍繞此規(guī)范的web服務(wù)器有tomcat,jetty,jboss等,我們可以使用sun公司提供的servlet規(guī)范結(jié)合實(shí)現(xiàn)了servlet規(guī)范的這些web服務(wù)器做java網(wǎng)站,這就是javaweb。 Java EE是sun公司(2009年4月20日甲骨文將其收購)推出的企業(yè)級(jí)應(yīng)用程序版本。 這個(gè)版本以前稱為 J2EE。 能夠幫助我們開發(fā)和部署可移植、健壯、可伸縮且安全的服務(wù)器端 Java應(yīng)用程序。 Java EE 是在 Java SE 的基礎(chǔ)上構(gòu)建的,它提供Web 服務(wù)、組件模型、管理和通信 API,可以用來實(shí)現(xiàn)企業(yè)級(jí)的面向服務(wù)體系結(jié)構(gòu)是企業(yè)級(jí)應(yīng)用開發(fā)平臺(tái),主要是圍繞企業(yè)軟件的開發(fā)提出來的一整套業(yè)務(wù)和技術(shù)解決方案,比如EJB和Spring體系平臺(tái),主要是解決軟件開發(fā)過程中的數(shù)據(jù)持久化,事務(wù)機(jī)制,業(yè)務(wù)服務(wù)等。 其實(shí)這兩者只是一個(gè)平臺(tái)和一個(gè)模式的關(guān)系。 就相當(dāng)于電腦和操作系統(tǒng)。 可以是筆記本電腦,可以用windows操作系統(tǒng);也可以是臺(tái)式機(jī),用linux操作系統(tǒng)一個(gè)道理。 但是呢,java web一般情況都用的是j2ee這個(gè)平臺(tái)。

Java經(jīng)典書籍

一、Java編程入門類 對(duì)于沒有Java編程經(jīng)驗(yàn)的程序員要入門,隨便讀什么入門書籍都一樣,這個(gè)階段需要你快速的掌握J(rèn)ava基礎(chǔ)語法和基本用法,宗旨就是“囫圇吞棗不求甚解”,先對(duì)Java熟悉起來再說。 用很短的時(shí)間快速過一遍Java語法,連懵帶猜多寫寫代碼,要“知其然”。 1、《Java編程思想》 在有了一定的Java編程經(jīng)驗(yàn)之后,你需要“知其所以然”了。 這個(gè)時(shí)候《Java編程思想》是一本讓你知其所以然的好書,它對(duì)于基本的面向?qū)ο笾R(shí)有比較清楚的交待,對(duì)Java基本語法,基本類庫有比較清楚的講解,可以幫你打一個(gè)良好的Java編程基礎(chǔ)。 這本書的缺點(diǎn)是實(shí)在太厚,也比較羅嗦,不適合現(xiàn)代人快節(jié)奏學(xué)習(xí),因此看這本書要懂得取舍,不是每章每節(jié)都值得一看的,挑重點(diǎn)的深入看就可以了。 2、《Agile Java》中文版 這本書是出版社送給我的,我一拿到就束之高閣,放在書柜一頁都沒有翻過,但是前兩天整理書柜的時(shí)候,拿出來一翻,竟然發(fā)現(xiàn)這絕對(duì)是一本好書!這本書一大特點(diǎn)是以單元測試和TDD來貫穿全書的,在教你Java各種重要的基礎(chǔ)知識(shí)的過程中,潛移默化的影響你的編程思維走向敏捷,走向TDD。 另外這本書成書很新,以JDK5.0的語法為基礎(chǔ)講解,要學(xué)習(xí)JDK5.0的新語法也不錯(cuò)。 還有這本書對(duì)于內(nèi)容取舍也非常得當(dāng),Java語言畢竟類庫龐大,可以講的內(nèi)容太多,這本書選擇的內(nèi)容以及內(nèi)容的多寡都很得當(dāng),可以讓你以最少的時(shí)間掌握J(rèn)ava最重要的知識(shí),順便培養(yǎng)出來優(yōu)秀的編程思路,真是一本不可多得的好書。 雖然作者自己把這本書定位在入門級(jí)別,但我不確定這本書用來入門是不是稍微深了點(diǎn),我自己也準(zhǔn)備有空的時(shí)候翻翻這本書,學(xué)習(xí)學(xué)習(xí)。 二、Java編程進(jìn)階類 打下一個(gè)良好的Java基礎(chǔ),還需要更多的實(shí)踐經(jīng)驗(yàn)積累,我想沒有什么捷徑。 有兩本書值得你在編程生涯的這個(gè)階段閱讀,培養(yǎng)良好的編程習(xí)慣,提高你的代碼質(zhì)量。 1、《重構(gòu) 改善既有代碼的設(shè)計(jì)》 這本書名氣很大,不用多介紹,可以在閑暇的時(shí)候多翻翻,多和自己的實(shí)踐相互印證。 這本書對(duì)你產(chǎn)生影響是潛移默化的。 2、《測試驅(qū)動(dòng)開發(fā) by Example》 本書最大特點(diǎn)是很薄,看起來沒有什么負(fù)擔(dān)。 你可以找一個(gè)周末的下午,一邊看,一邊照做,一個(gè)下午就把書看完,這本書的所有例子跑完了。 這本書的作用是通過實(shí)戰(zhàn)讓你培養(yǎng)TDD的思路。 三、Java架構(gòu)師之路 到這個(gè)階段,你應(yīng)該已經(jīng)非常嫻熟的運(yùn)用Java編程,而且有了一個(gè)良好的編程思路和習(xí)慣了,但是你可能還缺乏對(duì)應(yīng)用軟件整體架構(gòu)的把握,現(xiàn)在就是你邁向架構(gòu)師的第一步。 1、《Expert One-on-One J2EE Design and Development》 這本書是Rod Johnson的成名著作,非常經(jīng)典,從這本書中的代碼誕生了springframework。 但是好像這本書沒有中譯本。 2、《Expert One-on-One J2EE Development without EJB》 這本書由gigix組織翻譯,多位業(yè)界專家參與,雖然署名譯者是JavaEye,其實(shí)JavaEye出力不多,實(shí)在是忝居譯者之名。 以上兩本書都是Rod Johnson的經(jīng)典名著,Java架構(gòu)師的必讀書籍。 在我所推薦的這些書籍當(dāng)中,是我看過的最仔細(xì),最認(rèn)真的書,我當(dāng)時(shí)讀這本書幾乎是廢寢忘食的一氣讀完的,有小時(shí)候挑燈夜讀金庸武俠小說的勁頭,書中所講內(nèi)容和自己的經(jīng)驗(yàn)知識(shí)一一印證,又被無比精辟的總結(jié)出來,讀完這本書以后,我有種被打通經(jīng)脈,功力爆增的感覺。 但是后來我看過一些其他人的評(píng)價(jià),似乎閱讀體驗(yàn)并沒有我那么high,也許是因?yàn)槊總€(gè)人的知識(shí)積累和經(jīng)驗(yàn)不同導(dǎo)致的。 我那個(gè)時(shí)候剛好是經(jīng)驗(yàn)知識(shí)積累已經(jīng)足夠豐富,但是還沒有系統(tǒng)的整理成型,讓這本書一梳理,立刻形成完整的知識(shí)體系了。 3、《企業(yè)應(yīng)用架構(gòu)模式》 Martin的又一本名著,但這本書我只是泛泛的看了一遍,并沒有仔細(xì)看。 這本書似乎更適合做框架的人去看,例如如果你打算自己寫一個(gè)ORM的話,這本書是一定要看的。 但是做應(yīng)用的人,不看貌似也無所謂,但是如果有空,我還是推薦認(rèn)真看看,會(huì)讓你知道框架為什么要這樣設(shè)計(jì),這樣你的層次可以晉升到框架設(shè)計(jì)者的角度去思考問題。 Martin的書我向來都是推崇,但是從來都沒有像Rod Johnson的書那樣非常認(rèn)真去看。 4、《敏捷軟件開發(fā) 原則、模式與實(shí)踐》 Uncle Bob的名著,敏捷的經(jīng)典名著,這本書比較特別,與其說是講軟件開發(fā)過程的書,不如說講軟件架構(gòu)的書,本書用了很大篇幅講各種面向?qū)ο筌浖_發(fā)的各種模式,個(gè)人以為看了這本書,就不必看GoF的《設(shè)計(jì)模式》了。 四、軟件開發(fā)過程 了解軟件開發(fā)過程不單純是提高程序員個(gè)人的良好編程習(xí)慣,也是增強(qiáng)團(tuán)隊(duì)協(xié)作的基礎(chǔ)。 1、《UML精粹》 UML其實(shí)和軟件開發(fā)過程沒有什么必然聯(lián)系,卻是軟件團(tuán)隊(duì)協(xié)作溝通,撰寫軟件文檔需要的工具。 但是UML真正實(shí)用的圖不多,看看這本書已經(jīng)足夠了,完全沒有必要去啃《UML用戶指南》之類的東西。 要提醒大家的是,這本書的中譯本翻譯的非常之爛,建議有條件的看英文原版。 2、《解析極限編程 擁抱變化》XP 這是Kent Beck名著的第二版,中英文對(duì)照。 沒什么好說的,必讀書籍。 3、《統(tǒng)一軟件開發(fā)過程》UP 其實(shí)UP和敏捷并不一定沖突,UP也非常強(qiáng)調(diào)迭代,測試,但是UP強(qiáng)調(diào)的文檔和過程驅(qū)動(dòng)卻是敏捷所不取的。 不管怎么說,UP值得你去讀,畢竟在中國真正接受敏捷的企業(yè)很少,你還是需要用UP來武裝一下自己的,哪怕是披著UP的XP。 4、《敏捷建?!稟M Scott Ambler的名著,這本書非常的progmatic,告訴你怎么既敏捷又UP,把敏捷和UP統(tǒng)一起來了,又提出了很多progmatic的建議和做法。 你可以把《解析極限編程 擁抱變化》、《統(tǒng)一軟件開發(fā)過程》和《敏捷建?!愤@三本書放在一起讀,看XP和UP的不同點(diǎn),再看AM是怎么統(tǒng)一XP和UP的,把這三種理論融為一爐,形成自己的理論體系,那么你也可以去寫書了。 五、軟件項(xiàng)目管理 如果你突然被領(lǐng)導(dǎo)提拔為項(xiàng)目經(jīng)理,而你完全沒有項(xiàng)目管理經(jīng)驗(yàn),你肯定會(huì)心里沒底;如果你覺得自己管理項(xiàng)目不善,很想改善你的項(xiàng)目管理能力,那么去考PMP肯定是遠(yuǎn)水不解近渴的。 1、《快速軟件開發(fā)》 這也是一本名著。 可以這樣說,有本書在手,你就有了一個(gè)項(xiàng)目管理的高級(jí)參謀給你出謀劃策,再也不必?fù)?dān)心自己不能勝任的問題了。 這本書不是講管理的理論的,在實(shí)際的項(xiàng)目管理中,講這些理論是不解決問題的,這本書有點(diǎn)類似于“軟件項(xiàng)目點(diǎn)子大全”之類的東西,列舉了種種軟件項(xiàng)目當(dāng)中面臨的各種問題,以及應(yīng)該如何解決問題的點(diǎn)子,你只需要稍加變通,找方抓藥就行了。 六、總結(jié) 在這份推薦閱讀書籍的名單中,我沒有列舉流行的軟件框架類學(xué)習(xí)書籍,例如Struts,Hibernate,Spring之類,也沒有列舉AJAX方面的書籍。 是因?yàn)檫@類書籍容易過時(shí),而上述的大半書籍的生命周期都足夠長,值得你去購買和收藏。

JAVA的簡介?

Java簡介 Java是由Sun MicroSystems公司于1995年5月推出的Java程序設(shè)計(jì)語言(以下簡稱Java語言)和Java平臺(tái)的總稱。 用Java實(shí)現(xiàn)的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平臺(tái)、動(dòng)感的Web、Internet計(jì)算。 從此,Java被廣泛接受并推動(dòng)了Web的迅速發(fā)展,常用的瀏覽器現(xiàn)在均支持Java applet。 另一方面,Java技術(shù)也不斷更新。 Java平臺(tái)由Java虛擬機(jī)(Java Virtual Machine)和Java 應(yīng)用編程接口(Application Programming Interface、簡稱API)構(gòu)成。 Java 應(yīng)用編程接口為Java應(yīng)用提供了一個(gè)獨(dú)立于操作系統(tǒng)的標(biāo)準(zhǔn)接口,可分為基本部分和擴(kuò)展部分。 在硬件或操作系統(tǒng)平臺(tái)上安裝一個(gè)Java平臺(tái)之后,Java應(yīng)用程序就可運(yùn)行。 現(xiàn)在Java平臺(tái)已經(jīng)嵌入了幾乎所有的操作系統(tǒng)。 這樣Java程序可以只編譯一次,就可以在各種系統(tǒng)中運(yùn)行。 Java應(yīng)用編程接口已經(jīng)從1.1x版發(fā)展到1.2版。 目前常用的Java平臺(tái)基于Java1.4,最近版本為Java1.6。 Java分為三個(gè)體系JavaSE,JavaEE,JavaME。 Java語言Java語言是一個(gè)支持網(wǎng)絡(luò)計(jì)算的面向?qū)ο蟪绦蛟O(shè)計(jì)語言。 Java語言吸收了Smalltalk語言和C++語言的優(yōu)點(diǎn),并增加了其它特性,如支持并發(fā)程序設(shè)計(jì)、網(wǎng)絡(luò)通信、和多媒體數(shù)據(jù)控制等。 主要特性如下:1、Java語言是簡單的。 Java語言的語法與C語言和C++語言很接近,使得大多數(shù)程序員很容易學(xué)習(xí)和使用Java。 另一方面,Java丟棄了C++ 中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動(dòng)的強(qiáng)制類型轉(zhuǎn)換。 特別地,Java語言不使用指針,并提供了自動(dòng)的廢料收集,使得程序員不必為內(nèi)存管理而擔(dān)憂。 2、Java語言是一個(gè)面向?qū)ο蟮摹? Java語言提供類、接口和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實(shí)現(xiàn)機(jī)制(關(guān)鍵字為implements)。 Java語言全面支持動(dòng)態(tài)綁定,而C++ 語言只對(duì)虛函數(shù)使用動(dòng)態(tài)綁定。 總之,Java語言是一個(gè)純的面向?qū)ο蟪绦蛟O(shè)計(jì)語言。 3、Java語言是分布式的。 Java語言支持Internet應(yīng)用的開發(fā),在基本的Java應(yīng)用編程接口中有一個(gè)網(wǎng)絡(luò)應(yīng)用編程接口(),它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫,包括URL、URLConnection、Socket、 ServerSocket等。 Java的RMI(遠(yuǎn)程方法激活)機(jī)制也是開發(fā)分布式應(yīng)用的重要手段。 4、Java語言是健壯的。 Java的強(qiáng)類型機(jī)制、異常處理、廢料的自動(dòng)收集等是Java程序健壯性的重要保證。 對(duì)指針的丟棄是Java的明智選擇。 Java的安全檢查機(jī)制使得Java更具健壯性。 5、Java語言是安全的。 Java通常被用在網(wǎng)絡(luò)環(huán)境中,為此,Java提供了一個(gè)安全機(jī)制以防惡意代碼的攻擊。 除了Java語言具有的許多安全特性以外,Java對(duì)通過網(wǎng)絡(luò)下載的類具有一個(gè)安全防范機(jī)制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、字節(jié)代碼檢查,并提供安全管理機(jī)制(類SecurityManager)讓Java應(yīng)用設(shè)置安全哨兵。 6、Java語言是體系結(jié)構(gòu)中立的。 Java程序(后綴為java的文件)在Java平臺(tái)上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為class的文件), 然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。 這種途徑適合于異構(gòu)的網(wǎng)絡(luò)環(huán)境和軟件的分發(fā)。 7、Java語言是可移植的。 這種可移植性來源于體系結(jié)構(gòu)中立性,另外,Java還嚴(yán)格規(guī)定了各個(gè)基本數(shù)據(jù)類型的長度。 Java系統(tǒng)本身也具有很強(qiáng)的可移植性,Java編譯器是用Java實(shí)現(xiàn)的,Java的運(yùn)行環(huán)境是用ANSI C實(shí)現(xiàn)的。 8、Java語言是解釋型的。 如前所述,Java程序在Java平臺(tái)上被編譯為字節(jié)碼格式, 然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。 在運(yùn)行時(shí),Java平臺(tái)中的Java解釋器對(duì)這些字節(jié)碼進(jìn)行解釋執(zhí)行,執(zhí)行過程中需要的類在聯(lián)接階段被載入到運(yùn)行環(huán)境中。 9、Java是高性能的。 與那些解釋型的高級(jí)腳本語言相比,Java的確是高性能的。 事實(shí)上,Java的運(yùn)行速度隨著JIT(Just-In-Time)編譯器技術(shù)的發(fā)展越來越接近于C++。 10、Java語言是多線程的。 在Java語言中,線程是一種特殊的對(duì)象,它必須由Thread類或其子(孫)類來創(chuàng)建。 通常有兩種方法來創(chuàng)建線程:其一,使用型構(gòu)為Thread(Runnable) 的構(gòu)造子將一個(gè)實(shí)現(xiàn)了Runnable接口的對(duì)象包裝成一個(gè)線程,其二,從Thread類派生出子類并重寫run方法,使用該子類創(chuàng)建的對(duì)象即為線程。 值得注意的是Thread類已經(jīng)實(shí)現(xiàn)了Runnable接口,因此,任何一個(gè)線程均有它的run方法,而run方法中包含了線程所要運(yùn)行的代碼。 線程的活動(dòng)由一組方法來控制。 Java語言支持多個(gè)線程的同時(shí)執(zhí)行,并提供多線程之間的同步機(jī)制(關(guān)鍵字為synchronized)。 11、Java語言是動(dòng)態(tài)的。 Java語言的設(shè)計(jì)目標(biāo)之一是適應(yīng)于動(dòng)態(tài)變化的環(huán)境。 Java程序需要的類能動(dòng)態(tài)地被載入到運(yùn)行環(huán)境,也可以通過網(wǎng)絡(luò)來載入所需要的類。 這也有利于軟件的升級(jí)。 另外,Java中的類有一個(gè)運(yùn)行時(shí)刻的表示,能進(jìn)行運(yùn)行時(shí)刻的類型檢查。 Java語言的優(yōu)良特性使得Java應(yīng)用具有無比的健壯性和可靠性,這也減少了應(yīng)用系統(tǒng)的維護(hù)費(fèi)用。 Java對(duì)對(duì)象技術(shù)的全面支持和Java平臺(tái)內(nèi)嵌的API能縮短應(yīng)用系統(tǒng)的開發(fā)時(shí)間并降低成本。 Java的編譯一次,到處可運(yùn)行的特性使得它能夠提供一個(gè)隨處可用的開放結(jié)構(gòu)和在多平臺(tái)之間傳遞信息的低成本方式。 特別是Java企業(yè)應(yīng)用編程接口(Java Enterprise APIs)為企業(yè)計(jì)算及電子商務(wù)應(yīng)用系統(tǒng)提供了有關(guān)技術(shù)和豐富的類庫。 1、JDBC(Java Database Connectivity)提供連接各種關(guān)系數(shù)據(jù)庫的統(tǒng)一接口。 2、EJB(Enterprise JavaBeans)使得開發(fā)者方便地創(chuàng)建、部署和管理跨平臺(tái)的基于組件的企業(yè)應(yīng)用。 3、Java RMI(Java Remote Method Invocation)用來開發(fā)分布式Java應(yīng)用程序。 一個(gè)Java對(duì)象的方法能被遠(yuǎn)程Java虛擬機(jī)調(diào)用。 這樣,遠(yuǎn)程方法激活可以發(fā)生在對(duì)等的兩端,也可以發(fā)生在客戶端和服務(wù)器之間,只要雙方的應(yīng)用程序都是用Java寫的。 4、Java IDL(Java Interface Definition Language) 提供與CORBA(Common Object Request Broker Architecture)的無逢的互操作性。 這使得Java能集成異構(gòu)的商務(wù)信息資源。 5、JNDI(Java Naming and Directory Interface)提供從Java平臺(tái)到的統(tǒng)一的無逢的連接。 這個(gè)接口屏蔽了企業(yè)網(wǎng)絡(luò)所使用的各種命名和目錄服務(wù)。 6、JMAPI(Java Management API)為異構(gòu)網(wǎng)絡(luò)上系統(tǒng)、網(wǎng)絡(luò)和服務(wù)管理的開發(fā)提供一整套豐富的對(duì)象和方法。 7、JMS(Java Message Service)提供企業(yè)消息服務(wù),如可靠的消息隊(duì)列、發(fā)布和訂閱通信、以及有關(guān)推拉(Push/Pull)技術(shù)的各個(gè)方面。 8、JTS(Java transaction Service)提供存取事務(wù)處理資源的開放標(biāo)準(zhǔn),這些事務(wù)處理資源包括事務(wù)處理應(yīng)用程序、事務(wù)處理管理及監(jiān)控。 在Java技術(shù)中,值得關(guān)注的還有JavaBeans,它是一個(gè)開放的標(biāo)準(zhǔn)的組件體系結(jié)構(gòu),它獨(dú)立于平臺(tái),但使用Java語言。 一個(gè)JavaBean是一個(gè)滿足JavaBeans規(guī)范的Java類,通常定義了一個(gè)現(xiàn)實(shí)世界的事物或概念。 一個(gè)JavaBean的主要特征包括屬性、方法和事件。 通常,在一個(gè)支持JavaBeans規(guī)范的開發(fā)環(huán)境(如Sun Java Studio 和IBM VisualAge for Java)中,可以可視地操作JavaBean,也可以使用JavaBean構(gòu)造出新的JavaBean。 JavaBean的優(yōu)勢還在于Java帶來的可移植性。 現(xiàn)在,EJB (Enterprise JavaBeans) 將JavaBean概念擴(kuò)展到Java服務(wù)端組件體系結(jié)構(gòu),這個(gè)模型支持多層的分布式對(duì)象應(yīng)用。 除了JavaBeans,典型的組件體系結(jié)構(gòu)還有DCOM和CORBA,關(guān)于這些組件體系結(jié)構(gòu)的深入討論超出了本書的范圍。 Java開源項(xiàng)目Spring FrameworkSpring 是一個(gè)解決了許多在J2EE開發(fā)中常見的問題的強(qiáng)大框架。 Spring提供了管理業(yè)務(wù)對(duì)象的一致方法并且鼓勵(lì)了注入對(duì)接口編程而不是對(duì)類編程的良好習(xí)慣。 Spring的架構(gòu)基礎(chǔ)是基于使用JavaBean屬性的 Inversion of Control容器。 然而,這僅僅是完整圖景中的一部分:Spring在使用IoC容器作為構(gòu)建完關(guān)注所有架構(gòu)層的完整解決方案方面是獨(dú)一無二的。 Spring提供了唯一的數(shù)據(jù)訪問抽象,包括簡單和有效率的JDBC框架,極大的改進(jìn)了效率并且減少了可能的錯(cuò)誤。 Spring的數(shù)據(jù)訪問架構(gòu)還集成了 Hibernate和其他O/R mapping解決方案。 Spring還提供了唯一的事務(wù)管理抽象,它能夠在各種底層事務(wù)管理技術(shù),例如JTA或者JDBC事務(wù)提供一個(gè)一致的編程模型。 Spring提供了一個(gè)用標(biāo)準(zhǔn)Java語言編寫的AOP框架,它給POJOs提供了聲明式的事務(wù)管理和其他企業(yè)事務(wù)--如果你需要--還能實(shí)現(xiàn)你自己的 aspects。 這個(gè)框架足夠強(qiáng)大,使得應(yīng)用程序能夠拋開EJB的復(fù)雜性,同時(shí)享受著和傳統(tǒng)EJB相關(guān)的關(guān)鍵服務(wù)。 Spring還提供了可以和IoC容器集成的強(qiáng)大而靈活的MVC Web框架。 是由OpenSymphony組織開發(fā)的,致力于組件化和代碼重用的拉出式MVC模式J2EE Web框架。 WebWork目前最新版本是2.1,現(xiàn)在的WebWork2.x前身是Rickard Oberg開發(fā)的WebWork,但現(xiàn)在WebWork已經(jīng)被拆分成了Xwork1和WebWork2兩個(gè)項(xiàng)目。 Xwork簡潔、靈活功能強(qiáng)大,它是一個(gè)標(biāo)準(zhǔn)的Command模式實(shí)現(xiàn),并且完全從web層脫離出來。 Xwork提供了很多核心功能:前端攔截機(jī)(interceptor),運(yùn)行時(shí)表單屬性驗(yàn)證,類型轉(zhuǎn)換,強(qiáng)大的表達(dá)式語言(OGNL – the Object Graph Notation Language),IoC(Inversion of Control倒置控制)容器等。 WebWork2建立在Xwork之上,處理HTTP的響應(yīng)和請(qǐng)求。 WebWork2使用ServletDispatcher將HTTP請(qǐng)求的變成 Action(業(yè)務(wù)層Action類), session(會(huì)話)application(應(yīng)用程序)范圍的映射,request請(qǐng)求參數(shù)映射。 WebWork2支持多視圖表示,視圖部分可以使用 JSP, Velocity, FreeMarker, JasperReports,XML等。 在WebWork2.2中添加了對(duì)AJAX的支持,這支持是構(gòu)建在DWR與Dojo這兩個(gè)框架的基礎(chǔ)之上 是一個(gè)基于Sun J2EE平臺(tái)的MVC框架,主要是采用Servlet和JSP技術(shù)來實(shí)現(xiàn)的。 由于Struts能充分滿足應(yīng)用開發(fā)的需求,簡單易用,敏捷迅速,在過去的一年中頗受關(guān)注。 Struts把Servlet、JSP、自定義標(biāo)簽和信息資源(message resources)整合到一個(gè)統(tǒng)一的框架中,開發(fā)人員利用其進(jìn)行開發(fā)時(shí)不用再自己編碼實(shí)現(xiàn)全套MVC模式,極大的節(jié)省了時(shí)間,所以說Struts是一個(gè)非常不錯(cuò)的應(yīng)用框架。 HibernateHibernate 是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來操縱數(shù)據(jù)庫。 Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序?qū)嵱?,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。 Eclipse平臺(tái)下的Hibernate輔助開發(fā)工具:QuartzQuartz 是OpenSymphony開源組織在Job scheduling領(lǐng)域又一個(gè)開源項(xiàng)目,它可以與J2EE與J2SE應(yīng)用程序相結(jié)合也可以單獨(dú)使用。 Quartz可以用來創(chuàng)建簡單或?yàn)檫\(yùn)行十個(gè),百個(gè),甚至是好幾萬個(gè)Jobs這樣復(fù)雜的日程序表。 Jobs可以做成標(biāo)準(zhǔn)的Java組件或 EJBs。 Quartz的最新版本為Quartz 1.5.0。 VelocityVelocity 是一個(gè)基于java的模板引擎(template engine)。 它允許任何人僅僅簡單的使用模板語言(template language)來引用由java代碼定義的對(duì)象。 當(dāng)Velocity應(yīng)用于web開發(fā)時(shí),界面設(shè)計(jì)人員可以和java程序開發(fā)人員同步開發(fā)一個(gè)遵循MVC架構(gòu)的web站點(diǎn),也就是說,頁面設(shè)計(jì)人員可以只關(guān)注頁面的顯示效果,而由java程序開發(fā)人員關(guān)注業(yè)務(wù)邏輯編碼。 Velocity將java代碼從web頁面中分離出來,這樣為web站點(diǎn)的長期維護(hù)提供了便利,同時(shí)也為我們?cè)贘SP和PHP之外又提供了一種可選的方案。 Velocity的能力遠(yuǎn)不止web站點(diǎn)開發(fā)這個(gè)領(lǐng)域,例如,它可以從模板(template)產(chǎn)生SQL和PostScript、XML,它也可以被當(dāng)作一個(gè)獨(dú)立工具來產(chǎn)生源代碼和報(bào)告,或者作為其他系統(tǒng)的集成組件使用。 Velocity也可以為Turbine web開發(fā)架構(gòu)提供模板服務(wù)(template service)。 Velocity+Turbine提供一個(gè)模板服務(wù)的方式允許一個(gè)web應(yīng)用以一個(gè)真正的MVC模型進(jìn)行開發(fā)。 IBATIS使用ibatis 提供的ORM機(jī)制,對(duì)業(yè)務(wù)邏輯實(shí)現(xiàn)人員而言,面對(duì)的是純粹的Java對(duì)象, 這一層與通過Hibernate 實(shí)現(xiàn)ORM 而言基本一致,而對(duì)于具體的數(shù)據(jù)操作,Hibernate 會(huì)自動(dòng)生成SQL 語句,而ibatis 則要求開發(fā)者編寫具體的SQL 語句。 相對(duì)Hibernate等 “全自動(dòng)”O(jiān)RM機(jī)制而言,ibatis 以SQL開發(fā)的工作量和數(shù)據(jù)庫移植性上的讓步,為系統(tǒng)設(shè)計(jì)提供了更大的自由空間。 作為“全自動(dòng)”O(jiān)RM 實(shí)現(xiàn)的一種有益補(bǔ)充,ibatis 的出現(xiàn)顯 得別具意義。 Compiere ERP&CRMCompiere ERP&CRM為全球范圍內(nèi)的中小型企業(yè)提供綜合型解決方案,覆蓋從客戶管理、供應(yīng)鏈到財(cái)務(wù)管理的全部領(lǐng)域,支持多組織、多幣種、多會(huì)計(jì)模式、多成本計(jì)算、多語種、多稅制等國際化特性。 易于安裝、易于實(shí)施、易于使用。 只需要短短幾個(gè)小時(shí),您就可以使用申購-采購-發(fā)票-付款、報(bào)價(jià)-訂單-發(fā)票-收款、產(chǎn)品與定價(jià)、資產(chǎn)管理、客戶關(guān)系、供應(yīng)商關(guān)系、員工關(guān)系、經(jīng)營業(yè)績分析等強(qiáng)大功能了。 Roller Weblogger 這個(gè)weblogging 設(shè)計(jì)得比較精巧,源代碼是很好的學(xué)習(xí)資料。 它支持weblogging應(yīng)有的特性如:評(píng)論功能,所見即所得HTML編輯,TrackBack,提供頁面模板,RSS syndication,blogroll管理和提供一個(gè)XML-RPC 接口。 Eclipse Eclipse平臺(tái)是IBM向開發(fā)源碼社區(qū)捐贈(zèng)的開發(fā)框架,它之所以出名并不是因?yàn)镮BM宣稱投入開發(fā)的資金總數(shù) —4千萬美元,而是因?yàn)槿绱司薮蟮耐度胨鶐淼某晒阂粋€(gè)成熟的、精心設(shè)計(jì)的以及可擴(kuò)展的體系結(jié)構(gòu)。 XPlanner XPlanner 一個(gè)基于Web的XP團(tuán)隊(duì)計(jì)劃和跟蹤工具。 XP獨(dú)特的開發(fā)概念如iteration、user stories等,XPlanner都提供了相對(duì)應(yīng)的的管理工具,XPlanner支持XP開發(fā)流程,并解決利用XP思想來開發(fā)項(xiàng)目所碰到的問題。 XPlanner特點(diǎn)包括:簡單的模型規(guī)劃,虛擬筆記卡(Virtual note cards),iterations、user stories與工作記錄的追蹤,未完成stories將自動(dòng)迭代,工作時(shí)間追蹤,生成團(tuán)隊(duì)效率,個(gè)人工時(shí)報(bào)表,SOAP界面支持。 HSQLDB HSQLDB(Hypersonic SQL)是純Java開發(fā)的關(guān)系型數(shù)據(jù)庫,并提供JDBC驅(qū)動(dòng)存取數(shù)據(jù)。 支持ANSI-92 標(biāo)準(zhǔn) SQL語法。 而且他占的空間很小。 大約只有160K,擁有快速的數(shù)據(jù)庫引擎。 Liferay 代表了完整的J2EE應(yīng)用,使用了Web、EJB以及JMS等技術(shù),特別是其前臺(tái)界面部分使用Struts 框架技術(shù),基于XML的portlet配置文件可以自由地動(dòng)態(tài)擴(kuò)展,使用了Web Services來支持一些遠(yuǎn)程信息的獲取,使用 Apahce Lucene實(shí)現(xiàn)全文檢索功能。 主要特點(diǎn):1、提供單一登陸接口,多認(rèn)證模式(LDAP或SQL);2、管理員能通過用戶界面輕松管理用戶,組,角色;3、用戶能可以根據(jù)需要定制個(gè)性化的portal layout;4、能夠在主流的J2EE應(yīng)用服務(wù)器上運(yùn)行,如JBoss+Jetty/Tomcat,JOnAS;5、支持主流的數(shù)據(jù)庫,如PostgreSQL,MySQL;6、使用了第三放的開源項(xiàng)目,如Hibernate, Lucene, Struts;7、支持包括中文在內(nèi)的多種語言;8、采用最先進(jìn)的技術(shù) Java, EJB, JMS, SOAP, XML;JetSpeed Jetspeed 是一個(gè)開放源代碼的企業(yè)信息門戶(EIP)的實(shí)現(xiàn),使用的技術(shù)是Java和XML。 用戶可以使用瀏覽器,支持WAP協(xié)議的手機(jī)或者其它的設(shè)備訪問Jetspeed架設(shè)的信息門戶獲取信息。 Jetspeed扮演著信息集中器的角色,它能夠把信息集中起來并且很容易地提供給用戶。 Jetspeed具有如下的特征:* 即將成為標(biāo)準(zhǔn)化的Java Portlet API* 基于模板的布局, 包括JSP和Velocity* 通過開放的內(nèi)容同步技術(shù)支持遠(yuǎn)程XML內(nèi)容交換* 定制默認(rèn)的主頁* 使用數(shù)據(jù)庫進(jìn)行用戶認(rèn)證* 內(nèi)存緩存技術(shù), 加快頁面的響應(yīng)* 通過Rich Site Summary技術(shù), 支持同步內(nèi)容* 和Cocoon, WebMacro, Velocity集成.* Wireless Markup Language (WML) 支持* 使用XML格式的配置文件注冊(cè)portlet.* 完整的Web Application Archive (WAR) 支持* Web應(yīng)用程序開發(fā)的基礎(chǔ)設(shè)施* 可以在本地緩存遠(yuǎn)程內(nèi)容* 與Avantgo同步* 可移植到所有支持JDK1.2和Servlet 2.2的平臺(tái)* 與Turbine模塊和服務(wù)集成* 可以根據(jù)用戶, 安裝媒體類型和語言的不同設(shè)定, 產(chǎn)生不同的個(gè)性化服務(wù)* 持續(xù)化服務(wù)使得所由的portlet能夠容易的存儲(chǔ)每個(gè)用戶的狀態(tài), 頁面和portlet* 使用皮膚技術(shù)使得用戶可以選擇portlet的顏色和顯示屬性* 自定義功能是的管理員可以選擇portlet以及定義個(gè)人頁面的布局* 在數(shù)據(jù)庫中存儲(chǔ)PSML* 通過Jetspeed的安全portlets管理用戶, 組,角色和權(quán)限* 基于角色對(duì)訪問portlet進(jìn)行控制JOnASJOnAS 是一個(gè)開放源代碼的J2EE實(shí)現(xiàn),在ObjectWeb協(xié)會(huì)中開發(fā)。 整合了Tomcat或Jetty成為它的Web容器,以確保符合Servlet 2.3和JSP 1.2規(guī)范。 JOnAS服務(wù)器依賴或?qū)崿F(xiàn)以下的Java API:JCA、JDBC、JTA 、JMS、JMX、JNDI、JAAS、JavaMail 。 JFox3.0JFox 是 Open Source Java EE Application Server,致力于提供輕量級(jí)的Java EE應(yīng)用服務(wù)器,從3.0開始,JFox提供了一個(gè)支持模塊化的MVC框架,以簡化EJB以及Web應(yīng)用的開發(fā)! 如果您正在尋找一個(gè)簡單、輕量、高效、完善的Java EE開發(fā)平臺(tái),那么JFox正是您需要的。 JFox 3.0 擁有以下特性: 1. 重新設(shè)計(jì)的 IoC 微內(nèi)核,融入 OSGi 模塊化思想 2. 設(shè)計(jì)成嵌入式架構(gòu),能夠和任何 Java Web Server集成部署 3. 支持 EJB3,JPA規(guī)范,支持容器內(nèi)和容器外兩種方式運(yùn)行EJB和JPA組件 4. 支持 EJB 發(fā)布成Web Service 5. 采用 JOTM()提供事務(wù)處理,支持兩階段提交(2PC) 6. 采用 XAPool() 提供 XA DataSource,支持智能連接池管理 7. 內(nèi)置 MVC 框架,實(shí)現(xiàn)自動(dòng)Form Mapping,Validator,Uploading等功能,支持JSP/Velocity/Freemarker頁面引擎,并支持直接在Action中注入EJB 8. 支持多應(yīng)用模塊部署,讓中大型應(yīng)用充分享受模塊化開發(fā)帶來的優(yōu)勢 9. 提供 Manager 管理模塊,可以查看和管理各種運(yùn)行時(shí)參數(shù)10. 提供根據(jù) JFox 特色重寫的 Petstore 應(yīng)用模塊



相關(guān)標(biāo)簽: HttpServletRequest、 Java的最佳實(shí)踐構(gòu)建健壯且高效的、 Web、 應(yīng)用程序

上一篇:從零開始了解HttpServletRequest為JavaWeb

下一篇:HttpServletRequest揭秘了解JavaWeb應(yīng)用程

內(nèi)容聲明:

1、本站收錄的內(nèi)容來源于大數(shù)據(jù)收集,版權(quán)歸原網(wǎng)站所有!
2、本站收錄的內(nèi)容若侵害到您的利益,請(qǐng)聯(lián)系我們進(jìn)行刪除處理!
3、本站不接受違法信息,如您發(fā)現(xiàn)違法內(nèi)容,請(qǐng)聯(lián)系我們進(jìn)行舉報(bào)處理!
4、本文地址:http://www.hudongshop.com/article/01fee8312e8a8644846b.html,復(fù)制請(qǐng)保留版權(quán)鏈接!


溫馨小提示:在您的網(wǎng)站做上本站友情鏈接,訪問一次即可自動(dòng)收錄并自動(dòng)排在本站第一位!
隨機(jī)文章
觸發(fā)器:如果在目標(biāo)表上定義了觸發(fā)器,ReplaceInto 語句可能會(huì)觸發(fā)它們。確保觸發(fā)器不會(huì)干擾預(yù)期行為。(觸發(fā)器如果某一值為空不執(zhí)行oracle)

觸發(fā)器:如果在目標(biāo)表上定義了觸發(fā)器,ReplaceInto 語句可能會(huì)觸發(fā)它們。確保觸發(fā)器不會(huì)干擾預(yù)期行為。(觸發(fā)器如果某一值為空不執(zhí)行oracle)

簡介ReplaceInto語句是一個(gè)強(qiáng)大的MySQL語句,它可以用于插入或更新目標(biāo)表中的數(shù)據(jù),與INSERT語句不同,ReplaceInto語句在目標(biāo)表中存在匹配的主鍵時(shí),它會(huì)更新現(xiàn)有行,而不是插入新行,這使得ReplaceInto語句非常適合于需要更新或插入數(shù)據(jù)的應(yīng)用程序,觸發(fā)器觸發(fā)器是數(shù)據(jù)庫對(duì)象,當(dāng)對(duì)目標(biāo)表進(jìn)行某些操作,例如插入、...。

本站公告 2024-09-27 07:41:08

ReactXP 實(shí)用技巧和竅門以提高您的跨平臺(tái)開發(fā)技能 (reactx與zoomx)

ReactXP 實(shí)用技巧和竅門以提高您的跨平臺(tái)開發(fā)技能 (reactx與zoomx)

ReactXP是一個(gè)跨平臺(tái)框架,可幫助您使用JavaScript和React構(gòu)建適用于iOS、Android和Web的原生應(yīng)用程序,使用ZoomXZoomX是ReactXP的一個(gè)可選組件,它可以通過CSS,like語法提供對(duì)nativeZoomSDK的訪問,它允許您在ReactXP應(yīng)用程序中輕松集成視頻會(huì)議功能,安裝ZoomX```b...。

技術(shù)教程 2024-09-16 01:45:36

當(dāng) ArgumentException 意外擾亂你的代碼時(shí):用最佳實(shí)踐解決它

當(dāng) ArgumentException 意外擾亂你的代碼時(shí):用最佳實(shí)踐解決它

簡介ArgumentException是.NET框架中一個(gè)常見的異常,它表示在方法調(diào)用中傳遞了一個(gè)無效或不可接受的參數(shù),這種異常可能會(huì)令人沮喪,因?yàn)樗赡軙?huì)中斷你的代碼并導(dǎo)致意外的行為,本文將探討ArgumentException的最佳實(shí)踐,以幫助你避免和處理此類異常,避免ArgumentException的最佳實(shí)踐以下是避免Argu...。

互聯(lián)網(wǎng)資訊 2024-09-15 14:33:32

前沿技術(shù)突破:蜘蛛程序如何推動(dòng)科學(xué)發(fā)現(xiàn)和商業(yè)創(chuàng)新 (前沿技術(shù)突破有哪些)

前沿技術(shù)突破:蜘蛛程序如何推動(dòng)科學(xué)發(fā)現(xiàn)和商業(yè)創(chuàng)新 (前沿技術(shù)突破有哪些)

蜘蛛程序,也稱為網(wǎng)絡(luò)爬蟲或網(wǎng)絡(luò)機(jī)器人,是一種自動(dòng)化的軟件程序,用于系統(tǒng)地瀏覽互聯(lián)網(wǎng)上的網(wǎng)頁,收集和提取數(shù)據(jù),這項(xiàng)技術(shù)近年來取得競爭優(yōu)勢,產(chǎn)品開發(fā),蜘蛛程序可以識(shí)別和分析有關(guān)用戶需求和偏好的數(shù)據(jù),幫助企業(yè)開發(fā)滿足市場需求的產(chǎn)品和服務(wù),客戶關(guān)系管理,蜘蛛程序可用于監(jiān)控社交媒體和在線論壇上的客戶反饋,從而提高客戶滿意度和忠誠度,蜘蛛程序技術(shù)...。

本站公告 2024-09-11 18:02:29

Socket 編程大師班:從原理到精通的進(jìn)階之旅 (socket服務(wù))

Socket 編程大師班:從原理到精通的進(jìn)階之旅 (socket服務(wù))

Socket服務(wù)在Socket編程中,服務(wù)端的作用是監(jiān)聽來自客戶端的連接請(qǐng)求,并為客戶端提供服務(wù),本文將深入探討Socket服務(wù)的原理和實(shí)現(xiàn),助你進(jìn)階為Socket編程大師,Socket服務(wù)端架構(gòu)Socket服務(wù)端通常由以下組件組成,服務(wù)器套接字,用于監(jiān)聽客戶端連接請(qǐng)求的套接字監(jiān)聽循環(huán),服務(wù)器端不斷監(jiān)聽服務(wù)器套接字上的連接請(qǐng)求客戶端連...。

互聯(lián)網(wǎng)資訊 2024-09-11 07:49:55

釋放C語言編程的潛力:定制C程序培訓(xùn)滿足您的特定需求 (c語言 釋放)

釋放C語言編程的潛力:定制C程序培訓(xùn)滿足您的特定需求 (c語言 釋放)

C語言是一種強(qiáng)大的編程語言,被廣泛用于開發(fā)各種應(yīng)用程序,從操作系統(tǒng)和嵌入式系統(tǒng)到圖形和游戲開發(fā),為了充分釋放C語言的潛力,定制化C程序培訓(xùn)至關(guān)重要,可以幫助您針對(duì)特定的需求和目標(biāo)定制您的學(xué)習(xí)體驗(yàn),本文將探討定制化C程序培訓(xùn)的優(yōu)勢,并提供一些技巧來創(chuàng)建符合您特定需求的培訓(xùn)計(jì)劃,定制化C程序培訓(xùn)的優(yōu)勢針對(duì)特定需求,定制化培訓(xùn)可以讓您針對(duì)您...。

互聯(lián)網(wǎng)資訊 2024-09-08 21:15:23

深入淺出 C 語言編程開發(fā)指南 (深入淺出c語言程序設(shè)計(jì)第2版)

深入淺出 C 語言編程開發(fā)指南 (深入淺出c語言程序設(shè)計(jì)第2版)

深入淺出C語言程序設(shè)計(jì),第2版C語言概述C語言是一種通用的計(jì)算機(jī)編程語言,由丹尼斯·里奇在20世紀(jì)70年代早期開發(fā),它以其簡潔、高效和可移植性而聞名,C語言廣泛用于開發(fā)操作系統(tǒng)、嵌入式系統(tǒng)和其他低級(jí)軟件,C語言特性簡潔和高效,C語言的語法非常簡單,易于學(xué)習(xí)和使用,它提供了強(qiáng)大的工具和特性,可以編寫高效的代碼,可移植性,C語言代碼可以...。

本站公告 2024-09-08 11:15:12

Java 中常量的類型與應(yīng)用:揭秘不可變性的強(qiáng)大 (java中常用的設(shè)計(jì)模式)

Java 中常量的類型與應(yīng)用:揭秘不可變性的強(qiáng)大 (java中常用的設(shè)計(jì)模式)

引言在Java編程中,常量是一種不可變的值,一旦定義就不能更改,常量在許多情況下都很有用,例如,確保代碼的健壯性,因?yàn)樗鼈儾荒茉谶\(yùn)行時(shí)意外更改,提高代碼的可讀性,因?yàn)樗鼈兦逦囟x了應(yīng)用程序中使用的固定值,支持單元測試,因?yàn)樗鼈兲峁┝朔€(wěn)定的值,常量的類型Java中有兩種類型的常量,1.字面量常量字面量常量直接用它們的原始值定義,例如,...。

最新資訊 2024-09-07 21:16:54

利用 Java 定時(shí)器在分布式系統(tǒng)中協(xié)調(diào)任務(wù): 確保協(xié)作和無縫運(yùn)行 (利用java做一個(gè)銀行系統(tǒng))

利用 Java 定時(shí)器在分布式系統(tǒng)中協(xié)調(diào)任務(wù): 確保協(xié)作和無縫運(yùn)行 (利用java做一個(gè)銀行系統(tǒng))

確保協(xié)作和無縫運(yùn)行銀行系統(tǒng)案例在分布式系統(tǒng)中,協(xié)調(diào)任務(wù)至關(guān)重要,以確保各個(gè)組件之間的協(xié)作和無縫運(yùn)行,Java定時(shí)器是一個(gè)強(qiáng)大的工具,可用于在分布式環(huán)境中安排和執(zhí)行任務(wù),通過利用Java定時(shí)器,我們可以實(shí)現(xiàn)一個(gè)高效且可擴(kuò)展的銀行系統(tǒng),以處理各種交易和操作,Java定時(shí)器概述Java定時(shí)器是一個(gè)Java類庫,它提供了在指定時(shí)間或間隔執(zhí)行任...。

最新資訊 2024-09-07 17:56:22

深入淺出解析彈窗代碼,掌握網(wǎng)站交互的精髓 (深入淺出解析怎么寫)

深入淺出解析彈窗代碼,掌握網(wǎng)站交互的精髓 (深入淺出解析怎么寫)

彈窗,Modal,是一種常見的網(wǎng)站交互元素,它可以用來顯示重要信息、收集用戶輸入或提供其他交互,創(chuàng)建一個(gè)彈窗代碼并不困難,只需要了解一些基本的HTML和CSS即可,HTML結(jié)構(gòu)彈窗的HTML結(jié)構(gòu)包括兩個(gè)主要部分,容器和內(nèi)容,容器負(fù)責(zé)定義彈窗的整體結(jié)構(gòu),它使用``元素創(chuàng)建,容器還包括關(guān)閉按鈕,它使用``元素創(chuàng)建,內(nèi)容部分定義彈窗中顯示的...。

本站公告 2024-09-07 01:10:22

JSP 購物車高級(jí)指南:集成支付網(wǎng)關(guān)和客戶管理工具 (jsp購物車數(shù)量加減)

JSP 購物車高級(jí)指南:集成支付網(wǎng)關(guān)和客戶管理工具 (jsp購物車數(shù)量加減)

簡介JSP購物車是基于JSP技術(shù)的電子商務(wù)網(wǎng)站的核心組件,它允許用戶瀏覽產(chǎn)品、將產(chǎn)品添加到購物車、查看購物車并結(jié)賬,使用JSP購物車的好處包括,快速簡便的開發(fā)可擴(kuò)展性和可定制性與多種支付網(wǎng)關(guān)和客戶管理工具集成集成支付網(wǎng)關(guān)支付網(wǎng)關(guān)是處理在線支付的第三方服務(wù),它充當(dāng)商店和客戶銀行之間的橋梁,確保資金安全轉(zhuǎn)移,集成支付網(wǎng)關(guān)涉及以下步驟,選擇...。

技術(shù)教程 2024-09-06 22:51:32

揭秘陰兵借道之謎:游走在生死邊緣的詭異事件 (揭秘陰兵借道的小說)

揭秘陰兵借道之謎:游走在生死邊緣的詭異事件 (揭秘陰兵借道的小說)

前言陰兵借道,是一種在中國民間廣為流傳的靈異傳說,相傳陰兵借道時(shí),會(huì)形成一支浩浩蕩蕩、旌旗蔽日的隊(duì)伍,所經(jīng)之處陰風(fēng)陣陣,令人不寒而栗,而對(duì)于陰兵借道的真實(shí)性,歷來眾說紛紜,莫衷一是,陰兵借道的傳說根據(jù)民間傳說,陰兵借道通常發(fā)生在夜晚,隊(duì)伍中由一位身著古代官服的將軍帶隊(duì),士兵們則披盔戴甲,手持兵器,他們會(huì)在特定的地點(diǎn)借用陽間道路,前往陰...。

互聯(lián)網(wǎng)資訊 2024-09-04 00:29:04

Copyright ? 2025 聚集網(wǎng) All Rights Reserved
此內(nèi)容系本站根據(jù)來路自動(dòng)抓取的結(jié)果,不代表本站贊成被顯示網(wǎng)站的內(nèi)容或立場。
本頁閱讀量次 | 本站總訪問次 | 本站總訪客人 | 今日總訪問次 | 今日總訪客人 | 昨日總訪問次 | 昨日總訪客人 |
技術(shù)支持:聚集網(wǎng)

国产中文字幕免费观看_国产高清精品软男同_日韩免费视频播放_亚洲午夜激情
九色视频成人porny| 久久久久久一区| 国产在线播放一区二区| 久久久久久草| 亚洲高清在线观看一区| 国产美女91呻吟求| 国产精品福利在线观看网址| 欧美在线视频网| 久久在线中文字幕| 亚洲午夜久久久影院伊人| 狠狠干一区二区| 久久精品国产清自在天天线| 日韩亚洲一区在线播放| 久久手机在线视频| 亚洲蜜桃av| 高清在线观看免费| 又粗又黑又大的吊av| 国产色一区二区三区| 免费97视频在线精品国自产拍| 欧美国产综合在线| 久久激情五月丁香伊人| 欧美综合在线第二页| 九色91国产| 日韩av三级在线| 国产黑人绿帽在线第一区| 天天综合五月天| 7777精品久久久久久| 午夜精品一区二区在线观看| 91精品国产一区二区三区动漫| 亚洲一区二区三区精品动漫| 国产精品一区二区免费看| 欧美激情视频在线免费观看 欧美视频免费一 | 97精品国产97久久久久久春色| 欧美激情一区二区三级高清视频| 国产日韩欧美在线看| 欧美wwwxxxx| 超碰网在线观看| 岛国视频一区| 久久久久久久久久久福利| 欧美在线一区二区视频| 国产精品美女www爽爽爽视频| 国产资源在线视频| 亚洲视频在线观看日本a| 久久久在线免费观看| 日韩精品最新在线观看| 国产精品久久久久久av下载红粉| 国产欧美久久久久| 中文视频一区视频二区视频三区| 99色精品视频| 日本少妇高潮喷水视频| 国产精品欧美亚洲777777| 国产啪精品视频| 性色av香蕉一区二区| 俺也去精品视频在线观看| 黄色影视在线观看| 亚洲制服中文| 久久久久久久久久久免费视频| 精品99在线视频| 亚洲熟女乱色一区二区三区 | 一区二区欧美日韩| 国产成人一区二区三区小说| 日韩免费在线观看视频| 国产精品日韩一区二区| 国产精品中文字幕久久久| 丁香六月激情婷婷| 国产精品视频99| 97久久超碰福利国产精品…| 欧美自拍视频在线观看| 欧美精品亚州精品| 国产精成人品localhost| 免费看又黄又无码的网站| 亚洲欧美久久234| 国产精品美乳在线观看| 99在线观看视频免费| 欧美无砖专区免费| 亚洲精品人成| 久久精品国产亚洲7777| 成人精品视频在线播放| 欧美图片激情小说| 亚洲人一区二区| 国产精品一区av| 日本wwwcom| 欧美wwwxxxx| 日日骚久久av| 91精品久久久久久久久久另类| 黄网站欧美内射| 日韩欧美在线免费观看视频| 在线观看免费黄色片| 久久久成人的性感天堂| 久久青青草综合| 国产精品一区二区久久| 青青草一区二区| 亚洲综合精品伊人久久| 国产精品手机在线| 国产成人精品日本亚洲| 成人91免费视频| 国产一区亚洲二区三区| 欧美日韩不卡在线视频| 日本中文字幕成人| 久久超碰亚洲| 国产成人在线视频| 91精品国产综合久久香蕉的用户体验| 国产在线播放一区二区| 欧美性视频在线播放| 手机成人av在线| 亚洲综合国产精品| 国产精品久久久久7777| 国产精品无码av无码| 久久久久久欧美| 国产极品精品在线观看| 99在线高清视频在线播放| 国产色综合一区二区三区| 麻豆成人av| 黄色小视频大全| 国产精品久久激情| 国产精品免费在线免费| 国产成人无码av在线播放dvd| 久久久久中文字幕2018| 国产成人综合亚洲| 91精品国产综合久久香蕉| 成人中文字幕av| 国产一区高清视频| 国产一区二区在线免费| 国产主播在线一区| 国产在线不卡精品| 国产日韩欧美大片| 国产精自产拍久久久久久 | 人人妻人人澡人人爽精品欧美一区 | 国产精品网址在线| 久久久999国产精品| 国产成人亚洲欧美| 国产av无码专区亚洲精品| 久久av二区| 精品国产视频在线| 久久精品国产欧美激情| 国产精品女主播视频| 久久亚洲一区二区三区四区五区高| 国产精品成人一区二区三区| 麻豆乱码国产一区二区三区| 精品国产一区二区三区四区vr | 欧美精品第一页在线播放| 亚洲影影院av| 五月天国产一区| 日韩成人av电影在线| 欧美专区在线观看| 国产视频不卡| 69**夜色精品国产69乱| 久久99精品久久久久久久久久| 国产精品无码人妻一区二区在线| 久久五月情影视| 亚洲国产精品久久久久久女王| 色女人综合av| 欧美精品久久久久久久自慰| 国模吧一区二区| 成人黄色一区二区| 久激情内射婷内射蜜桃| 国产精品欧美一区二区| 久久成人亚洲精品| 亚洲人成77777| 日本高清一区| 国产日韩欧美视频| 国产精品99一区| 黄色污污在线观看| 99精彩视频| 日韩中文娱乐网| 久久香蕉国产线看观看av| 亚洲最大成人网色| 日韩亚洲欧美一区二区| 色欲av无码一区二区人妻| 女女同性女同一区二区三区按摩| 国产美女久久久| 久久精品日产第一区二区三区精品版 | 国产精品美女999| 亚洲中文字幕久久精品无码喷水| 日韩视频在线免费看| 国产欧美日韩视频| 久久久久这里只有精品| 欧美激情亚洲自拍| 日韩精品―中文字幕| av在线不卡观看| 久久精品国产一区二区三区| 亚洲美女搞黄| 蜜桃免费区二区三区| 国产极品精品在线观看| 久久中文字幕视频| 日韩在线视频在线| 国产欧美一区二区三区久久| 日韩一区av在线| 亚洲不卡中文字幕| 国产一级二级三级精品| 日韩在线视频观看| 中文字幕一区二区三区最新 | 亚洲图色在线| 精品一区二区中文字幕| 久久久久久国产免费| 亚洲国产精品123| 国产女精品视频网站免费| 久久久久久精| 婷婷久久伊人| 成人av男人的天堂|