




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】Android中怎么搭建一个后端服务器
这篇文章将为大家详细讲解有关Android中怎么搭建一个后端服务器,文章内容质量较高,因此在下分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。首先我下载了一个myelipse应为我们开发android的eclipse不能创建webproject要不然你去下载个插件也行,下载好以后创建webproject会生成一个目录,然后右键你的这个项目选择myeclipse
->addstructscapabilities...选择2.1finish
OK这样就创建成功这个项目了,下面我贴出来我的项目树供大家参考(感谢yayun0516,他的博文给了我很大的帮助,但是其中有些不足我已经在下面改正了)下面配置structs.xml<?xml
version="1.0"
encoding="UTF-8"
?>
<!DOCTYPE
struts
PUBLIC
"-//Apache
Software
Foundation//DTD
Struts
Configuration
2.1//EN"
"/dtds/struts-2.1.dtd">
<struts>
<package
name="struts2"
extends="struts-default"
namespace="/">
<action
name="getjson"
class="com.shao.action.JSONAction"
method="json">
<result
name="success">index.jsp</result>
</action>
</package>
</struts>只有这一个需要配置,其他的在你添加struct的时候就会自动生成。下面创建类型文件package
com.shao.domain;
public
class
Music
{
private
Integer
id;
private
String
name;
private
String
time;
private
String
author;
public
Integer
getId()
{
return
id;
}
public
void
setId(Integer
id)
{
this.id
=
id;
}
public
String
getName()
{
return
name;
}
public
void
setName(String
name)
{
=
name;
}
public
String
getTime()
{
return
time;
}
public
void
setTime(String
time)
{
this.time
=
time;
}
public
String
getAuthor()
{
return
author;
}
public
void
setAuthor(String
author)
{
this.author
=
author;
}
}然后再创建转json的方法JSONAction:package
com.shao.action;
import
java.io.IOException;
import
java.io.UnsupportedEncodingException;
import
.URLDecoder;
import
java.util.ArrayList;
import
java.util.List;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;
import
erceptor.ServletRequestAware;
import
erceptor.ServletResponseAware;
import
com.google.gson.Gson;
import
com.opensymphony.xwork2.ActionSupport;
import
com.shao.domain.Music;
public
class
JSONAction
extends
ActionSupport
implements
ServletRequestAware,
ServletResponseAware
{
/**
*
*/
private
static
final
long
serialVersionUID
=
-3604892179657815531L;
private
HttpServletRequest
request;
private
HttpServletResponse
response;
private
String
format;
public
String
getFormat()
{
return
format;
}
public
void
setFormat(String
format)
{
this.format
=
format;
}
@Override
public
void
setServletRequest(HttpServletRequest
request)
{
this.request
=
request;
}
@Override
public
void
setServletResponse(HttpServletResponse
response)
{
this.response
=
response;
}
public
void
json()
{
List<Music>
list
=
new
ArrayList<Music>();
Gson
gson
=
new
Gson();
Music
m1
=
new
Music();
m1.setId(1);
m1.setAuthor("周");
m1.setName("外婆");
m1.setTime("04:04");
list.add(m1);
Music
m2
=
new
Music();
m2.setId(2);
m2.setAuthor("周杰伦");
m2.setName("半兽人");
m2.setTime("04:05");
list.add(m2);
Music
m3
=
new
Music();
m3.setId(3);
m3.setAuthor("周杰伦");
m3.setName("乌克丽丽");
m3.setTime("02:55");
list.add(m3);
java.lang.reflect.Type
type
=
new
com.google.gson.reflect.TypeToken<List<Music>>()
{
}.getType();
//
指定type
String
beanListToJson
=
gson.toJson(list,
type);
//
list转换成json字符串
System.out.println("GSON-->"
+
beanListToJson);
try
{
response.setContentType("application/json;
charset=GBK");
response.setCharacterEncoding("UTF-8");
this.response.getWriter().write(beanListToJson);
}
catch
(IOException
e)
{
e.printStackTrace();
}
}
}
response.setContentType("application/json;charset=GBK");一定要注意,如果不加这句会在你请求服务器数据的时候,中文出现乱码现象,同时在index.jsp中加入了contentType="text/html;charset=GBK"还有不要忘了导入Gson包。完了,就这样服务器就完成了,下面运行一下runas->myeclipseserviceapplication成功后会弹出一个框,上面写着ThisismyJSPpage.这就说明你已经成功创建了服务器。下面打开http://localhost:8080/Test2/getjson.action下面就是服务器返回的内容了。基本就是这样了,又不懂的可以问我。下面说android端的,更简单了。创建我们的项目然后加入xutils和gson包。这是一个新建的项目,在activity_main.xml中我给那个TextView添加了一个id然后在MainActivity中实现如下:package
com.example.test2;
import
com.lidroid.xutils.HttpUtils;
import
com.lidroid.xutils.exception.HttpException;
import
com.lidroid.xutils.http.ResponseInfo;
import
com.lidroid.xutils.http.callback.RequestCallBack;
import
com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
import
android.support.v7.app.ActionBarActivity;
import
android.os.Bundle;
import
android.util.Log;
import
android.view.Menu;
import
android.view.MenuItem;
import
android.view.View;
import
android.widget.TextView;
public
class
MainActivity
extends
ActionBarActivity
{
@Override
protected
void
onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final
TextView
text
=
(TextView)
findViewById(R.id.text);
HttpUtils
httpUtils
=
new
HttpUtils();
httpUtils.send(HttpMethod.POST,
"71:8080/Test2/getjson.action",
new
RequestCallBack<String>()
{
public
void
onFailure(HttpException
arg0,
String
arg1)
{
Log.d("=====================onFailure",
arg1+";"+arg0.toString());
}
public
void
onSuccess(ResponseInfo<String>
arg0)
{
Log.d("=====================onSuccess",
arg0.result);
text.setText(arg0.result);
}
});
}
@Override
public
boolean
onCreateOptionsMenu(Menu
menu)
{
//
Inflate
the
menu;
this
adds
items
to
the
action
bar
if
it
is
present.
getMenuInflater().inflate(R.menu.main,
menu);
return
true;
}
@Override
public
boolean
onOptionsItemSelected(MenuItem
item)
{
//
Handle
action
bar
item
clicks
here.
The
action
bar
will
//
automatically
handle
clicks
on
the
Home/Up
button,
s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度厨师技能竞赛合作举办协议
- 人力资源招聘事务文书草案
- 酒店经营管理权合作协议
- 电商平台用户免责条款协议
- 工作纪律修订内容
- 高效会议事务组织与实施流程文书
- 公司股东间股权认购及合作开发协议表
- 《正弦定理在三角形中的应用:高中数学教案》
- 三农金融服务平台建设方案
- 工作目标实现路径规划
- 2025年三八妇女节校长致辞-以柔韧破万钧以丹心育桃李
- 2025年浙江省建筑安全员C证考试(专职安全员)题库及答案
- 2025年常州工业职业技术学院单招职业技能测试题库(培优)
- 化学实验室安全职责分配
- 1.2 读懂彼此的心 第二课时 课件 2024-2025学年五年级下册道德与法治 统编版
- 2018-2022年北京市中考真题数学试题汇编:选择压轴(第8题)
- 2025年哈尔滨铁道职业技术学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 2025年贵州黔源电力股份有限公司招聘笔试参考题库含答案解析
- DZ∕T 0148-2014 水文水井地质钻探规程(正式版)
- 2024年黑龙江职业学院单招职业技能测试题库及答案解析
- 大班-数学-分礼物-课件(互动版)
评论
0/150
提交评论