




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Android中的網(wǎng)絡(luò)訪問8.1在Eclipse上搭建服務(wù)器8.2Android利用HttpURLConnection?訪問網(wǎng)絡(luò)8.3Android利用HttpClient訪問網(wǎng)絡(luò)8.4Android從服務(wù)器下載文件8.5xml的生成與解析8.6JSON的生成與解析8.7服務(wù)器與數(shù)據(jù)庫的通信8.8本章項(xiàng)目實(shí)戰(zhàn)
8.1在Eclipse上搭建服務(wù)器
8.1.1搭建服務(wù)器環(huán)境工具介紹Tomcat是Apache軟件基金會(huì)Jakarta項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun和其他一些公司及個(gè)人共同開發(fā)而成。
8.1.2工具軟件的安裝
1.Tomcat的安裝
從“開發(fā)所需工具”中找到安裝軟件apache-tomcat-8.0.24-windows-x64.zip壓縮文件,解壓縮里面的文件到E盤。
2.Tomcat環(huán)境變量的配置
右鍵“我的電腦”→“屬性”→“高級系統(tǒng)設(shè)置”,切換到高級選項(xiàng)卡,點(diǎn)擊“環(huán)境變量”,如圖8-1所示。圖8-1環(huán)境變量界面
點(diǎn)擊“Administrator的用戶變量”一欄的“新建”,在變量名一欄輸入“CATALINA_HOME”,在變量值一欄輸入“E:\apache-tomcat-8.0.24\bin”,如圖8-2所示,點(diǎn)擊“確定”,這樣,Tomcat的環(huán)境變量就配置好了。圖8-2新建用戶變量界面
8.1.3搭建服務(wù)器
在Eclipse工作窗口的右上角區(qū)域,找到“OpenPerspective”按鈕,點(diǎn)擊打開OpenPerspective窗口,選擇“JavaEE”,點(diǎn)擊“OK”,如圖8-3所示。
圖8-3選擇JavaEE界面
在ProjectExplorer一欄,單擊鼠標(biāo)右鍵,選擇new→DynamicWebProject,彈出如圖8-4所示的界面。圖8-4選擇Tomcat安裝路徑
在ProjectName一欄輸入服務(wù)器的名稱,比如輸入“MyServer”,Targetruntime一欄選擇要配置的服務(wù)器,點(diǎn)擊“NewRuntime”按鈕,在彈出的窗口中選擇“ApacheTomcatv8.0”,點(diǎn)擊“Next”,彈出圖8-5所示的界面。圖8-5RunOnServer窗口
8.2Android利用HttpURLConnection訪問網(wǎng)絡(luò)
8.2.1HttpURLConnection介紹隨著智能手機(jī)和平板電腦等移動(dòng)終端設(shè)備的迅速發(fā)展,現(xiàn)在的Internet已經(jīng)不再只是傳統(tǒng)的有線互聯(lián)網(wǎng),還包括移動(dòng)互聯(lián)網(wǎng)。同有線互聯(lián)網(wǎng)一樣,移動(dòng)互聯(lián)網(wǎng)也可以使用HTTP訪問網(wǎng)絡(luò)。在Android中,針對HTTP進(jìn)行網(wǎng)絡(luò)通信的方法主要有兩種:一種是使用HttpURLConnection實(shí)現(xiàn);另一種是使用HttpClient實(shí)現(xiàn)。
8.2.2HttpURLConnection的使用方法
1.HttpURLConnection連接URL
(1)創(chuàng)建一個(gè)URL對象。
URLurl=newURL();
(2)利用HttpURLConnection對象從網(wǎng)絡(luò)中獲取網(wǎng)頁數(shù)據(jù)。
HttpURLConnectionconn=(HttpURLConnection)url.openConnection();
(3)設(shè)置連接超時(shí)。
conn.setConnectTimeout(6*1000);
(4)對響應(yīng)碼進(jìn)行判斷。
if(conn.getResponseCode()!=200)//從Internet獲取網(wǎng)頁,發(fā)送請求,將網(wǎng)頁以流的形式讀回來
thrownewRuntimeException("請求url失敗");
(5)得到網(wǎng)絡(luò)返回的輸入流。
InputStreamis=conn.getInputStream();
(6)?Stringresult=readData(is,"GBK"); //文件流輸入出文件用outStream.write
(7)?conn.disconnect();
總結(jié):
①記得設(shè)置連接超時(shí),如果網(wǎng)絡(luò)不好,Android系統(tǒng)在超過默認(rèn)時(shí)間會(huì)收回資源中斷操作。
②返回的響應(yīng)碼若為200,則成功。
③在Android中對文件流的操作和JAVASE上面是一樣的。
④在對大文件操作時(shí),要將文件寫到SDCard上面,不要直接寫到手機(jī)內(nèi)存上。
⑤對文件流操作完,要記得及時(shí)關(guān)閉。
2.向Internet發(fā)送請求參數(shù)
向Internet發(fā)送請求參數(shù)的步驟如下:
(1)創(chuàng)建URL對象:
URLrealUrl=newURL(requestUrl);
(2)通過HttpURLConnection對象,向網(wǎng)絡(luò)地址發(fā)送請求:
HttpURLConnectionconn=(HttpURLConnection)realUrl.openConnection();
(3)設(shè)置允許輸出:
conn.setDoOutput(true);
(4)設(shè)置不使用緩存:
conn.setUseCaches(false);
(5)設(shè)置使用POST的方式發(fā)送:
conn.setRequestMethod("POST");
(6)設(shè)置維持長連接:
conn.setRequestProperty("Connection","Keep-Alive");
(7)設(shè)置文件字符集:
conn.setRequestProperty("Charset","UTF-8");
(8)設(shè)置文件長度:
conn.setRequestProperty("Content-Length",String.valueOf(data.length));
(9)設(shè)置文件類型:
conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
(10)以流的方式輸出。
8.2.3使用HttpURLConnection訪問服務(wù)器
在8.1.3中搭建好的“MyServer”服務(wù)器中,依次展開“MyServer”→“JavaResources”,在src目錄上單擊右鍵,選擇“new”→“Servlet”,在彈出的窗口中,在“Classname”一欄中輸入要新建的Servlet的名字,比如輸入“MyServlet”,這樣,一個(gè)Servlet就新建好了,接下來我們要運(yùn)行服務(wù)器,在“MyServer”項(xiàng)目上單擊右鍵,選擇“Runas”單擊右鍵“RunOnServer”,服務(wù)器的運(yùn)行就大功告成了,我們還要修改“MyServlet”里的“doGet”方法:
在訪問網(wǎng)絡(luò)的點(diǎn)擊事件中,服務(wù)器的地址通過getInfoFromServlet(path)傳進(jìn)去,然后通過newURL(path)構(gòu)建一個(gè)URL對象,之后通過url.openConnection()建立一個(gè)連接,通過con.getInputStream()得到輸入流,然后通過讀寫這個(gè)輸入流,最終得到我們需要的字符串
結(jié)果。
8.3Android利用HttpClient訪問網(wǎng)絡(luò)
8.3.1HttpClient的介紹在Android開發(fā)中,AndroidSDK附帶了Apache的HttpClient。HttpClient是一個(gè)完善的客戶端,提供了對HTTP協(xié)議的全面支持,可以使用HttpClient的對象來執(zhí)行HTTPGET和HTTPPOST調(diào)用。
HTTP工作原理:
(1)客戶端(一般是指瀏覽器,這里是指自己寫的程序)與服務(wù)器建立連接;
(2)建立連接后,客戶端向服務(wù)器發(fā)送請求;
(3)服務(wù)器接收到請求后,向客戶端發(fā)送響應(yīng)信息;
(4)客戶端與服務(wù)器斷開連接。
HttpClient的一般使用步驟:
(1)使用DefaultHttpClient類實(shí)例化HttpClient對象。
(2)創(chuàng)建HttpGet或HttpPost對象,將要請求的URL通過構(gòu)造方法傳入HttpGet或HttpPost對象。
(3)調(diào)用execute方法發(fā)送HTTPGET或HTTPPOST請求,并返回HttpResponse對象。
(4)通過HttpResponse接口的getEntity方法返回響應(yīng)信息,并進(jìn)行相應(yīng)的處理。
最后記得要在AndroidManifest.xml文件添加網(wǎng)絡(luò)權(quán)限:
8.3.2使用HttpClient來執(zhí)行GET調(diào)用
通過按鈕的點(diǎn)擊事件執(zhí)行g(shù)etInfoFromServlet(path)方法,就可以把服務(wù)器的URL傳進(jìn)去,用HttpClientgetClient=newDefaultHttpClient()得到一個(gè)HttpClient對象,用HttpGetrequest=newHttpGet(path)得到一個(gè)HttpGet對象,用HttpResponseresponse=getClient.execute(request)發(fā)起客戶端的請求,得到一個(gè)服務(wù)器的回應(yīng)“response”,用InputStreamis=response.getEntity().getContent()得到輸入流,之后就是從輸入流里面得到返回的字符串。使用HttpClient執(zhí)行GET請求的流程就是這樣。
8.3.3使用HttpClient來執(zhí)行POST調(diào)用
使用HTTPGET調(diào)用有一個(gè)缺點(diǎn)就是,請求的參數(shù)作為URL一部分來傳遞,以這種方式傳遞的時(shí)候,URL的長度應(yīng)該在2048個(gè)字符之內(nèi)。如果超出這個(gè)范圍,就要使用HTTPPOST調(diào)用。
下面新建一個(gè)服務(wù)器,命名為“MyServer_6-3-3”,依次展開“MyServer_6-3-3”→“JavaResources”,在src目錄上單擊右鍵,選擇“new”→“Servlet”。在彈出的窗口中,在“Classname”一欄中輸入要新建的Servlet名字,比如輸入“MyServlet”,這樣一個(gè)Servlet就新建好了。
在訪問網(wǎng)絡(luò)的點(diǎn)擊事件中,調(diào)用getInfoFromServlet(path)方法訪問網(wǎng)絡(luò),同時(shí)把服務(wù)器的URL傳進(jìn)去,使用NameValuePair來保存要傳遞的Post參數(shù),使用UrlEncodedFormEntityformEntity=newUrlEncodedFormEntity(postParameters)把參數(shù)放到formEntity中,通過request.setEntity(formEntity)把參數(shù)放入請求中,最后通過EntityUtils.toString(response.getEntity())得到服務(wù)器返回的字符串。
8.4Android從服務(wù)器下載文件
8.4.1從服務(wù)器下載圖片首先,要在服務(wù)器上放一張名為“myimage.jpg”的JPG格式的圖片,以便我們進(jìn)行測試,將圖片放在“MyServer”項(xiàng)目的“WebContent”目錄結(jié)構(gòu)下,最終結(jié)果如圖8-6所示。圖8-6MyServer項(xiàng)目結(jié)構(gòu)目錄界面
可以看到,關(guān)鍵下載代碼里用InputStreamis=con.getInputStream()得到輸入流,然后用BitmapFactory.decodeStream(is)方法將流轉(zhuǎn)換成一個(gè)Bitmap對象,最后用handler將bitmap對象設(shè)置在imageview控件上。
8.4.2從服務(wù)器下載文件
在“MyServer”服務(wù)器的“WebContent”目錄下放一個(gè)名為”mytext.txt”的文本文檔,里面隨便輸入測試文字,效果如圖8-7所示。圖8-7MyServer項(xiàng)目結(jié)構(gòu)目錄界面
8.5xml的生成與解析8.5.1什么是xmlxml是可擴(kuò)展標(biāo)記語言(ExtensibleMarkupLanguage)的縮寫,其中的標(biāo)記是關(guān)鍵部分。用戶可以創(chuàng)建內(nèi)容,然后使用限定標(biāo)記標(biāo)記它,從而使每個(gè)單詞、短語或塊成為可識別、可分類的信息。用戶創(chuàng)建的文件或文檔實(shí)例由元素(標(biāo)記)和內(nèi)容構(gòu)成。當(dāng)從打印輸出讀取或以電子形式處理文檔時(shí),元素能夠幫助用戶更好地理解文檔。元素的描述性越強(qiáng),文檔各部分越容易識別。
8.5.2在服務(wù)器端生成xml
在Eclipse中,新建“DynamicWebProject”,命名為“MyServer_6-5”,點(diǎn)擊“finish”,完成服務(wù)器的創(chuàng)建,搭建服務(wù)器的具體步驟可見本章8.1節(jié),之后在服務(wù)器上創(chuàng)建名為“MyServlet”的Servlet,完成Servlet的創(chuàng)建,創(chuàng)建Servlet的具體方法請看本章8.3.1節(jié)。
我們在這里生成xml數(shù)據(jù)需要用到dom4j.jar包,這個(gè)工具包已經(jīng)在本書的光盤里攜帶,當(dāng)然也可以從網(wǎng)絡(luò)上搜索并下載dom4j.jar包,有了dom4j.jar包以后,把它復(fù)制到服務(wù)器項(xiàng)目的“WebContent”→“WEB-INF”→“l(fā)ib”目錄下,右鍵dom4j.jar包,選擇“BuildPath”→“AddToBuildPath”,這樣,這個(gè)包就算導(dǎo)入到項(xiàng)目里了。
8.5.3在客戶端解析xml數(shù)據(jù)
在Android中常用的xml解析器有三種,分別為DOM解析器、SAX解析器和PULL解析器,下面是PULL解析器的方式。為什么要學(xué)習(xí)PULL解析器呢?因?yàn)镻ULL解析器是在xml文檔中尋找想要的標(biāo)記,把需要的內(nèi)容拉入內(nèi)存,而不是把整個(gè)文檔都拉入內(nèi)存,這種方式比較適合手機(jī)等內(nèi)存有限的小型的移動(dòng)設(shè)備。
Android并未提供對JavaStAXAPI的支持。但是,Android附帶了一個(gè)PULL解析器,其工作方式類似于StAX。它允許用戶的應(yīng)用程序代碼從解析器中獲取事件,這與SAX解析器自動(dòng)將事件推入處理程序相反。
PULL解析器的運(yùn)行方式和SAX類似,都是基于事件的模式。不同的是,在PULL解析過程中返回的是數(shù)字,且需要我們自己獲取產(chǎn)生的事件然后做相應(yīng)的操作,而不像SAX那樣由處理器觸發(fā)一種事件的方法,執(zhí)行代碼。
PULL解析器小巧輕便,解析速度快,簡單易用,非常適合在Android移動(dòng)設(shè)備中使用,Android系統(tǒng)內(nèi)部在解析各種xml時(shí)也是用PULL解析器,Android官方推薦開發(fā)者們使用PULL解析技術(shù)。PULL解析技術(shù)是第三方開發(fā)的開源技術(shù),它同樣可以應(yīng)用于JavaSE開發(fā)。
PULL解析器的工作原理:xmlPULL提供了開始元素和結(jié)束元素。當(dāng)某個(gè)元素開始時(shí),我們可以調(diào)用parser.nextText從xml文檔中提取所有字符數(shù)據(jù)。當(dāng)解析到一個(gè)文檔結(jié)束時(shí),自動(dòng)生成EndDocument事件。
常用的xmlPULL的接口和類:
XmlPullParser:xmlPULL解析器是一個(gè)在xmlPULLVlAP1中提供了定義解析功能的接口。
XmlSerializer:它是一個(gè)接口,定義了xml信息集的序列。
XmlPullParserFactory:這個(gè)類用于在xmlPULLV1API中創(chuàng)建xmlPULL解析器。
XmlPullParserException:拋出單一的xmlPULL解析器相關(guān)的錯(cuò)誤。
8.6JSON的生成與解析
8.6.1什么是JSON
JSON(JavaScriptObjectNotation)是一種輕量級的數(shù)據(jù)交換格式。簡單地說,JSON可以將JavaScript對象中表示的一組數(shù)據(jù)轉(zhuǎn)換為字符串,然后就可以在函數(shù)之間輕松地傳遞這個(gè)字符串,或者在異步應(yīng)用程序中將字符串從Web客戶機(jī)傳遞給服務(wù)器端程序。這個(gè)字符串看起來有點(diǎn)兒古怪,但是JavaScript很容易解釋它,而且JSON可以表示比“名稱/值對”更復(fù)雜的結(jié)構(gòu)。
JSON的值可以是:數(shù)字(整數(shù)或浮點(diǎn)數(shù))、字符串(在雙引號中)、邏輯值(true或false)、數(shù)組(在方括號中)、對象(在花括號中)。
JSON中有且只有兩種結(jié)構(gòu):對象和數(shù)組。
對象:對象在JS中表示為“{}”括起來的內(nèi)容,數(shù)據(jù)結(jié)構(gòu)為{key:value,key:value,…}鍵值對的結(jié)構(gòu),在面向?qū)ο蟮恼Z言中,key為對象的屬性,value為對應(yīng)的屬性值,所以很容易理解,取值方法為對象.key獲取屬性值,這個(gè)屬性值的類型可以是數(shù)字、字符串、數(shù)組、對象幾種。
數(shù)組:數(shù)組在JS中是中括號“[]”括起來的內(nèi)容,數(shù)據(jù)結(jié)構(gòu)為[“java”,“javascript”,“vb”,…],取值方式和所有語言中一樣,使用索引獲取,字段值的類型可以是數(shù)字、字符串、數(shù)組、對象幾種。
8.6.2JSON在服務(wù)端的生成
在Eclipse中,新建“DynamicWebProject”,命名為“MyServer_6-6”,點(diǎn)擊“finish”,完成服務(wù)器的創(chuàng)建,搭建服務(wù)器的具體步驟可見本章8.1節(jié)。然后在服務(wù)器上創(chuàng)建名為“MyServlet”的Servlet,完成Servlet的創(chuàng)建,創(chuàng)建Servlet的具體方法請看本章8.3.1節(jié)。
我們在這里生成JSON數(shù)據(jù)需要用到gson.jar包,這個(gè)工具包已經(jīng)在本書的光盤里攜帶,當(dāng)然也可以從網(wǎng)絡(luò)上搜索并下載gson.jar包,有了gson.jar包以后,把它復(fù)制到服務(wù)器項(xiàng)目的“WebContent”→“WEB-INF”→“l(fā)ib”目錄下,右鍵gson.jar包,選擇“BuildPath”→“AddToBuildPath”,這樣,這個(gè)包就算導(dǎo)入到項(xiàng)目里了。
8.6.3JSON在客戶端的解析
AndroidSDK提供了org.json用來解析JSON,在Android3.0又提供了android.util包中的JsonReader和JsonWriter來進(jìn)行JSON的解析和生成。使用org.json包JSONObject和JSONArray進(jìn)行JSON解析,我們知道JSON中只有兩種結(jié)構(gòu)array和object,因此就只對這兩個(gè)類進(jìn)行解析。
8.7服務(wù)器與數(shù)據(jù)庫的通信
8.7.1數(shù)據(jù)庫的安裝MySQL是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),MySQL數(shù)據(jù)庫系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言——結(jié)構(gòu)化查詢語言(SQL)進(jìn)行數(shù)據(jù)庫管理。在“開發(fā)所需工具”文件夾中,找到“mysql安裝包”,解壓縮至本地磁盤任意目錄,找到解壓縮后的“mysql-5.5.15-win32.msi”,雙擊進(jìn)行安裝,安裝界面如圖8-8所示。圖8-8mysql安裝界面
按照如下點(diǎn)擊事件進(jìn)行安裝:“Next”→“Next”→“Typical”→“Install”,之后會(huì)彈出幾個(gè)界面,一直點(diǎn)擊“Next”,直到出現(xiàn)如圖8-9所示界面。圖8-9mysql設(shè)置默認(rèn)編碼界面
需要注意要把選項(xiàng)切換到最下面的選項(xiàng)“ManualSelectedDefaultCharacterSet/Collation”,把“CharacterSet”設(shè)置為“utf8”,然后點(diǎn)擊“Next”,直到出現(xiàn)如圖8-10所示界面。圖8-10設(shè)置mysql密碼界面
但是到這里并沒有結(jié)束,我們?nèi)绻胍僮鲾?shù)據(jù)庫就只能在cmd的命令行里操作,這樣對我們來說太不方便了,現(xiàn)在需要安裝一個(gè)mysql的管理軟件,它是可視化的圖形管理界面,極大地方便了人們對于mysql的操作,打開之前解壓縮的文件夾,雙擊解壓縮“SQLyog-11.2.7-0.x64.rar”,打開里面的可執(zhí)行文件,打開如圖8-11的安裝界面。圖8-11SQLyog安裝界面
8.7.2服務(wù)器與mysql的連接
在mysql中,在菜單欄選擇“Database”→“createDatabase”,在“Databasename”一欄輸入“mytest”,點(diǎn)擊“Create”創(chuàng)建一個(gè)數(shù)據(jù)庫,然后選擇“mytest”數(shù)據(jù)庫,在右側(cè)的“Query”命令行里輸入“CREATETABLEUSER(idINTEGERPRIMARYKEYAUTO_INCREMENT,usernameVARCHAR(20),PASSWORDVARCHAR(20));”按“F9”執(zhí)行命令,再按“F5”刷新界面,此時(shí)可以看到一張名為“user”的表就被新建在了“mytest”數(shù)據(jù)庫中。
我們連接的是mysql數(shù)據(jù)庫,所以需要一個(gè)mysql的數(shù)據(jù)庫驅(qū)動(dòng),在“開發(fā)所需工具”文件夾中,找到“mysql-connector-java-5.1.7-bin.jar”這個(gè)包,當(dāng)然我們也可以去mysql的官網(wǎng)上下載,把它復(fù)制到服務(wù)器目錄下的“WebContent”→“WEB-INF”→“l(fā)ib”文件夾下,右鍵這個(gè)jar包,選擇“buildpath”→“AddToBuildPath”,這樣,數(shù)據(jù)庫的驅(qū)動(dòng)程序就被添加到我們的項(xiàng)目里。
8.7.3數(shù)據(jù)庫的增、刪、改、查語句
1.向數(shù)據(jù)庫增加一條數(shù)據(jù)
2.向數(shù)據(jù)庫刪除和更新數(shù)據(jù)
3.從數(shù)據(jù)庫查詢語句
8.8本章項(xiàng)目實(shí)戰(zhàn)
8.8.1項(xiàng)目流程分析經(jīng)過這一章的學(xué)習(xí),我們已經(jīng)掌握了Android訪問網(wǎng)絡(luò)的方法,以及怎樣解析生成xml數(shù)據(jù)和JSON數(shù)據(jù),如何搭建服務(wù)器,如何搭建數(shù)據(jù)庫,如何實(shí)現(xiàn)服務(wù)器與數(shù)據(jù)庫的通信。
下面分析大致流程,在進(jìn)入登錄界面以后,用戶點(diǎn)擊注冊按鈕,輸入用戶名密碼,點(diǎn)擊確定,將用戶名密碼發(fā)送給服務(wù)器,服務(wù)器接收到客戶端發(fā)送過來的數(shù)據(jù),連接數(shù)據(jù)庫,將用戶名密碼插入到“user”表里面,注冊功能就到這里完成了。其次就是登錄,在登錄界面,用戶輸入以前注冊過的用戶名密碼,將用戶名密碼發(fā)送到服務(wù)器,服務(wù)器將接收到的數(shù)據(jù)和數(shù)據(jù)庫里的用戶名密碼進(jìn)行比對,如果正確,則返回一個(gè)代表成功的字段,通知客戶端成功登錄,客戶端跳轉(zhuǎn)到登錄成功的界面,這時(shí)候用戶可以選擇做兩件事,一是從SD卡選擇文件進(jìn)行上傳,二是將之前上傳過的文件下載下來。
8.8.2做項(xiàng)目之前的準(zhǔn)備
在Eclipse上搭建服務(wù)器,命名為“MyServer_6-8”,因?yàn)槲覀冺?xiàng)目要用到JSON數(shù)據(jù),并且要操作數(shù)據(jù)庫,所以將“mysql-connector-java-5.1.7-bin.jar”和“gson-2.3.1.jar”復(fù)制到“WebContent”→“WEB-INF”→“l(fā)ib”文件夾下,并且右鍵單擊jar包,點(diǎn)擊“BuildPath”→“AddToBuildPath”。
打開mysql,首先要新建一個(gè)我們項(xiàng)目要用的數(shù)據(jù)庫,點(diǎn)擊菜單欄的“Database”→“CreateDatabase”,輸入數(shù)據(jù)庫名“cloudroom”,數(shù)據(jù)庫就建立好了。其次需要建兩張表,一張表名是“user”,用來存儲用戶信息,里面包含兩個(gè)字段,分別是用戶名和密碼,還有一張表名是“user_file”,主要用來存儲用戶上傳文件的路徑。
鼠標(biāo)左鍵選中剛剛建好的數(shù)據(jù)庫“cloudroom”,在右側(cè)的“Query”命令行輸入“CREATETABLEUSER(idINTEGERPRIMARYKEYAUTO_INCREMENT,usernameVARCHAR(20),PASSWORDVARCHAR(20));”然后按“F9”執(zhí)行命令,再按“F5”刷新界面,可以看到“user”表已經(jīng)建好了,再在右側(cè)的“Query”命令行輸入“CREATETABLEuser_file(idINTEGERPRIMARYKEYAUTO_INCREMENT,filepathVARCHAR(30),user_idINTEGER(10));”同樣的,“user_file”表就建立好了。
8.8.3開始做項(xiàng)目
新建一個(gè)Android項(xiàng)目,命名為“study_6-8”,因?yàn)榭紤]到這個(gè)項(xiàng)目涉及訪問網(wǎng)絡(luò)、讀寫SD卡文件的功能,所以先在AndroidManifest.xml里添加權(quán)限:
接下來在項(xiàng)目的src目錄下新建一個(gè)源程序文件,命名為“RegisterActivity”,讓它繼承“Activity”,重寫onCreate方法,來看注冊功能的代碼,用戶想要登錄界面必須先要注冊,所以,注冊界面有三個(gè)輸入框,分別是“輸入注冊賬號”,“輸入密碼”,“輸入確認(rèn)密碼”,用戶在輸完三個(gè)輸入框的內(nèi)容以后,點(diǎn)擊注冊按鈕,將用戶名密碼發(fā)送到服務(wù)器,服務(wù)器把用戶名密碼保存到數(shù)據(jù)庫,完成注冊。
其中,sendData是SendDataToService這個(gè)工具類的對象,這個(gè)工具類的作用就是訪問相對應(yīng)的Servlet。Constant類很簡單,是存儲服務(wù)器IP地址的類:
我們會(huì)發(fā)現(xiàn)UserTableDao里用于連接數(shù)據(jù)庫的Connection對象conn是通過ConnectionDataBase這個(gè)類里面的方法得到的,ConnectionDataB
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 評估公司收費(fèi)管理制度
- 2025年中國滑雪用品行業(yè)市場全景分析及前景機(jī)遇研判報(bào)告
- 試用期全勤獎(jiǎng)管理制度
- 財(cái)務(wù)賬目基本管理制度
- 財(cái)政公用經(jīng)費(fèi)管理制度
- 貨場物料調(diào)撥管理制度
- 貨車企業(yè)各項(xiàng)管理制度
- 2025年中國紅外壁爐行業(yè)市場全景分析及前景機(jī)遇研判報(bào)告
- 2025年中國觸覺VR設(shè)備行業(yè)市場全景分析及前景機(jī)遇研判報(bào)告
- 批發(fā)面條轉(zhuǎn)讓協(xié)議書范本
- 《地球物理勘探》課件
- 【MOOC】電工電子技術(shù)實(shí)驗(yàn)(電路部分)-東北大學(xué) 中國大學(xué)慕課MOOC答案
- 導(dǎo)管血流相關(guān)預(yù)防和護(hù)理
- 軟件正版化培訓(xùn)
- 無人駕駛汽車路測與數(shù)據(jù)收集服務(wù)合同
- 先兆流產(chǎn)課件-課件
- 醫(yī)院培訓(xùn)課件:《靜脈導(dǎo)管維護(hù)專家共識》
- DB43T 1173-2016 鋼-超高韌性混凝土輕型組合結(jié)構(gòu)橋面技術(shù)規(guī)范
- 部編版七年級下冊歷史期末復(fù)習(xí)開卷考試知識點(diǎn)速查提綱
- 三維網(wǎng)客土噴播植草護(hù)坡方案
- 《ESPEN重癥病人營養(yǎng)指南(2023版)》解讀課件
評論
0/150
提交評論