作为一名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连接,输入上面配置的用户名和密码,就可以进入管理页面。如图所示
2.EclipseforJavaEE下载以及配置Tamcat服务
EclipseforJavaEE 下载地址:
http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/keplersr1
根据自己电脑的配置选择相应的eclipse下载即可。
3.接下来说一下在Eclipse里配置service
1.打开Eclipse后如图所示:
2.选择Window–>Perferences–>Service–>Runtim…选项
3.新建一个Service
按照步骤来就好
点击finish即可。
5。再点击Window–>showView–>Service选项把service窗口显示出来
6。查看底部工具栏,点击启动服务便可。
2。输入工程名,下一步
4。在这一步,这个对勾一定要打上,否则后面会很受罪,亲身感受。。。。
5。点击Finish 完成
6。在WebContent文件夹下面新建img文件夹,在img文件夹里放上图片。
7。在Webcontent文件夹下新建一个jsp文件,文件名暂时取为index,
8。打开WEB-INF–>下的web.xml 文件如图所示:
9。修改web.xml文件,web.xml代码如下:
<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 componentdescription>
<display-name>This is the display name of my J2EE componentdisplay-name>
<servlet-name>GetDataServletservlet-name>
<servlet-class>com.dfwy.servlet.GetDataServletservlet-class>
servlet>
<servlet-mapping>
<servlet-name>GetDataServletservlet-name>
<url-pattern>/servlet/GetDataServleturl-pattern>
servlet-mapping>
<welcome-file-list>
<welcome-file>index1.jspwelcome-file>
<welcome-file>test.jspwelcome-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();
//模拟从数据库获得数据
Listgirls = 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 在里面处理列表数据便可。有需要可以评论交流哦。
至此完成。