999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Java Web應用底層數據傳遞模式的分析與研究

2014-08-24 06:48:09陳卓妮

楊 懌,陳卓妮

(1.湖北師范學院 計算機科學與技術學院,湖北 黃石 435002;2.黃石市教育局,湖北 黃石 435000)

Java Web應用底層數據傳遞模式的分析與研究

楊 懌1,陳卓妮2

(1.湖北師范學院 計算機科學與技術學院,湖北 黃石 435002;2.黃石市教育局,湖北 黃石 435000)

在Java Web應用開發中,底層數據傳遞的模式和傳統本地應用有著不小的區別,對底層數據傳遞模式的了解和數據傳遞流程的設計決定了應用開發的復雜程度,影響著整個Java Web應用程序的開發效率和后期維護的難易度。筆者從開發模型入手對Java Web應用中的底層數據傳遞模式進行了分析,并詳細說明了底層數據流程和方法。

Web應用;Java;數據傳遞

0 概述

Web應用程序已成為現代應用軟件的一個重要分支。伴隨著網絡基礎設施的不斷完善,網絡帶寬的不斷提升,給了Web應用更大更廣闊的發展空間。加上Web應用在網絡上發布和使用的便捷性,越來越多的應用程序采用了Web應用的模式來進行開發。而Web應用的軟件結構和傳統的依附于操作系統的本地應用不同,其底層數據傳遞方式多樣且復雜。隨著越來越多的Java Web開發開始使用第三方框架,這些框架對底層數據傳遞的機制或多或少的做了一定的封裝,使得一部分開發者并沒有完全接觸到底層的代碼,不了解底層數據傳遞的模式,因而對項目的開發造成了影響。相反,對底層模式的熟悉可以更快的掌握框架的核心功能,來減輕數據發送、傳遞和獲取時重復代碼的編寫。Java Web應用中客戶端與服務器進行數據傳遞和服務器端內部數據流的處理時機制完全不同,前者使用網絡協議在網絡上傳輸數據最終使用Java代碼接受數據,而后者完全采用Java EE技術在服務器端的應用服務器軟件的支持下進行傳遞,見圖1.

圖1 Java Web應用底層數據傳遞模式

1 客戶端到應用服務器的數據傳遞

Java Web應用程序數據傳遞的發起始于客戶端一個瀏覽器向Web應用服務器發出請求,應用服務器把請求中需要程序處理的數據放在由服務器生成的request對象中,接著調用相應程序處理后將最終結果放在response對象中發送給客戶端的用戶瀏覽器。不斷往返的請求和響應構成了客戶端到服務器的數據傳遞。

從客戶端向服務器傳遞數據常用兩種方式。簡單的數據可以直接放在請求URL的后面加上問號接著寫上參數名等于參數值的值對。例如:請求的URL是"abc?x=1&y=2",會把x和y這兩個參數值傳遞給了URL"abc"所對應的程序代碼。在程序代碼中使用request對象的getParameter()方法即可接受到參數值。第二種方式采用表單從客戶端提交數據給服務器,在提交數據之前需先向服務器請求一個表單頁,可以把這個服務器返回的表單頁看做數據的載體,在這個載體中填好數據后,再次提交時,數據就會傳遞給表單中指明的處理程序,在程序中同樣適用request對象的getParameter()方法來取得表單中的各項數據。使用此方法取得的數據都是字符串類型,如果原始數據是基本數據類型,則要進行一次數據類型轉化。

從服務器向客戶端發送數據也有兩種形式,第一種方式中服務器中的程序會直接把最終的數據結果插入到顯示頁面上,一起作為HTML頁面響應發給瀏覽器顯示。另一種則把數據放在response對象中傳遞給頁面的JavaScript來處理。

2 應用服務器內部的數據傳遞

Java Web應用程序的底層技術是Servlet,因為JSP在運行時也要轉化為Servlet,他們兩者的實質是一樣的,都需要使用URL來調用。當服務器端的程序接收客戶端的數據以后,往往不僅僅是由一個Servlet或JSP來處理,因此會在多個Servlet或JSP中進行傳遞。他們之間的數據傳遞與傳統的本地應用中直接通過函數調用時通過函數的參數來傳遞數據的形式完全不同。

首先把需要傳遞的數據通過request對象的setAttribute()方法與一個屬性名綁定保存在request對象中。然后通過語句request.getRequestDispatcher(name).forward(request, response)轉發到另一個Servlet或JSP,其中第一個括號中的參數值是轉發目標的URL。最后再在目標代碼中使用request對象getAttribute()方法通過保存時的屬性名來取得數據值。

除了以線性方式傳遞數據以外,在服務器端很多時候還需要以一種離散的方式來保存和傳遞數據。例如在一些需要用戶登錄的Web應用中,很多界面都需要顯示用戶信息,那么在第一次取得用戶信息以后,這一數據需要一直存在并多次被讀取。Java Web編程中提供了幾個對象來完成這些工作,session對象可以在一個會話即打開瀏覽器到關閉瀏覽器的整個過程中一直存在,這個對象也使用setAttribute()和getAttribute()方法來保存和取得數據。

需要注意的是,傳遞過程中數據是作為object對象類型來保存的,取得數據對象以后需要做一次強制類型轉換,將object類型對象轉換成傳遞前的對象類型。有時客戶端頁面需要展示從數據庫讀取的多行數據,或者若干的獨立的對象數據,為了方便數據的傳遞,在傳遞之前可以把數據保存在一個集合類對象中。

3 數據傳遞與控制層

為了讓數據傳遞處理更加高效,在Java Web應用開發中經常使用的MVC開發模式將整個Web應用分為了Model邏輯層,View表示層和Control控制層三個部分,其中控制層的主要作用之一就是負責整個應用程序的數據傳遞。控制層的獨立把用于數據傳遞的代碼分離出來,讓數據傳遞的流程成為了應用程序的血管,同時也讓表示層和邏輯層的任務更加明確,整個Web應用構架更加清晰。

控制層的作用是從客戶端接受數據請求,然后根據請求,把客戶端數據傳遞給相關的邏輯處理代碼,待數據被邏輯層處理完畢后,再將處理完成的數據傳遞給表示層展示給客戶端用戶。控制層不僅是數據流的管道,同時也扮演這一個數據控制中心的角色,負責數據在業務邏輯和展示界面之間的調度。這樣的開發模型能讓開發者把更多的時間投入到業務邏輯和用戶體驗的設計當中。

4 結論

雖然Java EE的版本不斷升級,新的框架不斷出現,但底層數據傳遞始終是開發Java Web應用中的重要一環。采用各自針對性的模式來處理客戶端到服務器的數據傳遞和服務器內部數據傳遞,在應用服務器內部選擇不同的對象來保存生命周期不同的數據,同時在開發模式中建立控制層獨立的處理數據流,不但可以讓數據傳遞流程的設計更加合理,也是Java Web應用程序運行穩定和高效的保證。

[1]馬衛華,馬滿增,劉文慧.Web應用系統設計與實現的原理[J]. 電腦編程技巧與維護,2008,15:48~49.

[2]姜宇鳴,劉瑞玲.基于MVC模式的B/S架構系統的開發與探討[J]. 科技致富向導, 2012,18:19~21.

[3]郝玉龍.Java EE編程技術[M].北京:清華大學出版社,北京交通大學出版社,2008.

[4]李 剛.瘋狂Java第二版[M].北京 :電子工業出版社,2012.

[5]鄧子云.Java Web輕量級應用開發[M]. 北京:電子工業出版社,2012.

ThetransfermodeoftheunderlyingdatainJavaWebapplication

YANG Yi1,CHEN Zhuo-ni2

(1.College of Computer Science &Technology,Hubei Normal University,Huangshi 435002,China;2.Education Bureau,Huangshi 435000,China)

When an Java Web application system developed,the transfer mode of the underlying data is greatly different from that of the traditional local application system.How complicated the application development is depends on the understanding of the transfer mode of the underlying data and the design of the data transfer flow,which effects the development efficiency and the maintenance difficulty in later period.A transfer mode of the underlying data of the Java Web application system is analyzed in this paper,and the way of the data transfer flow is expained in detail.

Web application;Java;data transfer

2013—11—27

楊 懌(1979— ),男,湖北黃石人,碩士,實驗師,研究方向為Java Web應用、軟件工程.

TP311

A

1009-2714(2014)01- 0027- 03

10.3969/j.issn.1009-2714.2014.01.006

主站蜘蛛池模板: 久久窝窝国产精品午夜看片| 日韩福利在线观看| 国产一级毛片网站| 亚洲免费黄色网| 免费无码AV片在线观看中文| 亚洲成av人无码综合在线观看| 婷婷亚洲最大| 在线观看91精品国产剧情免费| 中文字幕亚洲专区第19页| 日韩在线影院| 无码视频国产精品一区二区| 亚洲国产综合精品一区| 小说区 亚洲 自拍 另类| 91九色视频网| 国内精品免费| 国产99欧美精品久久精品久久| 亚洲无码不卡网| 奇米影视狠狠精品7777| 蜜芽国产尤物av尤物在线看| 九色在线视频导航91| 国产精品第三页在线看| 精品久久久久久久久久久| 日本不卡视频在线| 欧美一级高清免费a| 精品免费在线视频| 日本欧美中文字幕精品亚洲| 免费A级毛片无码无遮挡| 9久久伊人精品综合| 67194亚洲无码| 欧美无专区| 中文字幕无线码一区| 国产精品亚欧美一区二区| 精品天海翼一区二区| 亚洲欧美成人在线视频| 亚洲人成网站在线观看播放不卡| 日韩亚洲综合在线| 91精品aⅴ无码中文字字幕蜜桃| 国产一二三区视频| 亚洲天堂久久新| 青青草国产精品久久久久| 最新痴汉在线无码AV| 国产精品嫩草影院av| 欧美国产日韩在线观看| 日本人又色又爽的视频| 91丝袜乱伦| 日韩成人免费网站| 成人精品在线观看| 国产成人a在线观看视频| 2020亚洲精品无码| 国产日韩欧美一区二区三区在线| 伊人中文网| 久久综合干| 乱人伦视频中文字幕在线| 欧美不卡视频一区发布| 色哟哟国产精品一区二区| 亚洲黄色视频在线观看一区| 日本黄色a视频| 91青青草视频在线观看的| 成人午夜网址| 亚洲成a人在线播放www| 国产一级二级三级毛片| 五月婷婷欧美| 日韩麻豆小视频| 波多野结衣无码视频在线观看| 久久9966精品国产免费| 国产区成人精品视频| 欧洲一区二区三区无码| 在线国产综合一区二区三区| 91久久偷偷做嫩草影院精品| 无码一区18禁| 国产丰满成熟女性性满足视频| 国产精品入口麻豆| 无码高潮喷水专区久久| 国产成人一区在线播放| 2018日日摸夜夜添狠狠躁| 国产va免费精品观看| 婷婷六月色| 久久精品视频亚洲| 美女被躁出白浆视频播放| a天堂视频在线| 欧美日韩国产系列在线观看| 天天躁夜夜躁狠狠躁图片|