1. 程式人生 > >Android筆記:Android後臺介面教程一(從零開始學習Android後臺介面)Android 前後臺通訊

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 在裡面處理列表資料便可。有需要可以評論交流哦。
至此完成。