Android筆記:Android後臺介面教程一(從零開始學習Android後臺介面)Android 前後臺通訊
前言:
作為一名android開發人員,網路資料都是web開發人員提供,每次讓他們寫一個介面都跟求神拜佛一樣,與其求別人還不如自己動手,經過將近一天的研究,參考了很多的資料。總算研究出來了,寫下來有的人可能會用到。也算是自己做個筆記。文章有些長。請細心看完。
先看一下效果圖:
json資料介面:
把json資料格式化一下,看一下還行,湊合。
寫一個Android 小demo試試。效果圖:
接下來說教程:
一、環境搭建
我用的是Eclipsefor JavaEE+Tomcat7.0,暫時沒有用到資料庫,後續加上。
先說一下Tomcat的環境搭建:
一、安裝JDK 1.7
1、新增環境變數:在 我的電腦->屬性->高階->環境變數
2、新建系統變數,變數名:JAVA_HOME 變數值:C:\Program Files\Java\jdk1.7.0 (JDK的安裝目錄)
3、在原有的系統變數 Path後面加上英文分號,
再新增%JAVA_HOME%\bin;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\jre\bin;
不要刪除原來的。看清楚,它們之間的分號,是英文的分號。
4、重啟電腦生效(因為新增的是系統變數,如果你的系統是win7,則不需要重啟)。 4、測試JDK是否安裝成功,執行->cmd ->D: 進入D盤,輸入javac 看能否出來很多命令,出來則說明JDK配置成功。
二、Tomcat 7.0的安裝配置
1、Tomcat 7.0 的免安裝版的配置(假如將Tomcat 解壓到C:\Program Files目錄,
目錄結構為:C:\Program Files\apache-tomcat-7.0.11
1、新增環境變數:在 我的電腦->屬性->高階->環境變數
2、新建系統變數,變數名:CATALINA_HOME 變數值:C:\Program Files\apache-tomcat-7.0.11 (Tomcat 解壓到的目錄)。
3、在系統變數 Path的最後面新增
%CATALINA_HOME%\lib;%CATALINA_HOME%\lib\servlet-api.jar;%CATALINA_HOME%\lib\jsp-api.jar
注意它們之間的分號,一定是英文的分號。
4、Tomcat 7.0的管理員的配置,進入C:\Program Files\apache-tomcat-7.0.11(Tomcat目錄)下的conf目錄,
編輯tomcat-users.xml,找到最後的:
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
在上面這段後面 新增上:
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="admin888" roles="admin-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
紅色為新增部分。 到這應該知道我們新增的管理員的使用者名稱和密碼是多少了吧!
5、進入Tomcat 目錄下的bin目錄,雙擊startup.bat 啟動Tomcat 在命令列視窗會出來英文提示。
6、瀏覽器輸入:http://localhost:8080 可以看到Tomcat的歡迎頁面就說明配置成功了,點選右上角上manager連線,輸入上面配置的使用者名稱和密碼,就可以進入管理頁面。如圖所示
根據自己電腦的配置選擇相應的eclipse下載即可。
3.接下來說一下在Eclipse裡配置service
1.開啟Eclipse後如圖所示:
2.選擇Window–>Perferences–>Service–>Runtim…選項
3.新建一個Service
按照步驟來就好
點選finish即可。
5。再點選Window–>showView–>Service選項把service視窗顯示出來
6。檢視底部工具欄,點選啟動服務便可。
至此配置完成,接下來到程式碼部分:
1.先新建一個web工程,選擇File–>NewProject–>Web–>Dynamic..選項:
2。輸入工程名,下一步
3。略過 ,下一步
4。在這一步,這個對勾一定要打上,否則後面會很受罪,親身感受。。。。
5。點選Finish 完成
6。在WebContent資料夾下面新建img資料夾,在img資料夾裡放上圖片。
7。在Webcontent資料夾下新建一個jsp檔案,檔名暫時取為index,
8。開啟WEB-INF–>下的web.xml 檔案如圖所示:
9。修改web.xml檔案,web.xml程式碼如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>GetDataServlet</servlet-name>
<servlet-class>com.dfwy.servlet.GetDataServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>GetDataServlet</servlet-name>
<url-pattern>/servlet/GetDataServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index1.jsp</welcome-file>
<welcome-file>test.jsp</welcome-file>
</welcome-file-list>
</web-app>
10。開啟java Resources檔案下的src,在src資料夾下新建兩個包,名字自定義就好,如圖
11。在domain包下新建一個Girl類,在類裡定義幾個屬性,在獲取set,get方法,toString方法
程式碼如下:
package com.dfwy.domain;
public class Girl {
private int id;
private String name;
private String image;
/**
*set和get方法
*/
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
@Override
public String toString() {
return "People [id=" + id + ", image=" + image + ", name=" + name + "]";
}
}
12。下載gson,和servlet-api 兩個jar包,貼上到WEB-INF下的lib資料夾下。
13。選中這兩個jar包,右擊選擇buildPath–>add..選項
14。在servlet包下新建GetDataServlet類,這是核心程式碼。程式碼如下
package com.dfwy.servlet;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.ws.Response;
import com.dfwy.domain.Girl;
import com.google.gson.Gson;
public class GetDataServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//獲得gson物件
Gson gson = new Gson();
//模擬從資料庫獲得資料
List<Girl>girls = new ArrayList<>();
for(int i = 1;i<=9;i++){
Girl girl = new Girl();
girl.setId(i);
girl.setName("大美女girl"+i);
/*
* request.getContextPath()獲得該專案的根路徑 即 “/HouTai” 獲得圖片的路徑
* 即相當於“/HouTai/img/girl.jpg”迴圈讀取圖片的路徑
* request.getContextPath()+"/img/girl"+i+".jpg"
*/
girl.setImage(req.getContextPath()+"/img/girl"+i+".jpg");
girls.add(girl);
}
// 呼叫gson.toJson()傳入一個物件,返回為該物件轉換為json格式的字串
String string = gson.toJson(girls);
req.setAttribute("data","{\"data\":" + string + "}");
//跳轉到index.jsp頁面進行顯示
RequestDispatcher rd = req.getRequestDispatcher("/test.jsp");
try{
rd.forward(req, resp);
return;
}catch(Exception e){
System.out.println("eeeee");
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
然後右擊GetDataServelt.java選擇RunAsServerce就看到了想要的介面,把local host改成你電腦的IP地址,在統一局域往下就可以訪問了。:
二、Android 端展示:
Android 端就比較簡單了,在這裡就不詳細介紹了,簡單說一下思路便可
新建一個非同步在非同步裡獲取介面資料,獲得到json資料,新鍵一個BaseAdapter 在裡面處理列表資料便可。有需要可以評論交流哦。
至此完成。