ssh学习:struts2与Android交互
struts2与Android数据交互
在实际的开发当中,Android不会只有只使用自带的sqlite微小型数据库等的单机应用;使用ssh开发的服务器也不会只有在pc平台使用。在实际应用当中,Android+struts2组合应用也是经常看到的。那么怎么来实现这两者之间的联系呢?
基本环境配置:
除了struts2所需的最基本的jar包之外还得需要以下两个包来支持:
1.\struts-2.3.24.1\lib下的struts2-json-plugin-2.3.24.1.jar ;//基于struts2的json插件
2.\struts-2.3.24.1\lib下的json-lib-2.3-jdk15.jar ;//json数据处理所需要的依赖
struts.xml配置:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <!-- 使用返回寄送字符形式 , --> <!--需要将struts-default改为json-default --> <package name="test" extends="json-default" namespace="/"> <action name="loginText" class="com.usc.action.AndroidTest" method="loginText"> <!--返回值类型设置为字符串(json),不设置返回页面 --> <result type="json"></result> </action> </package> </struts>
action类中
public class AndroidTest extends ActionSupport implements ServletRequestAware, ServletResponseAware {
private ServletRequest request;
private ServletResponse response;
/**
*Android 与struts2进行数据交互(json数据)不需要返回值
*/
public void loginText(){
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("UTF-8");
//解析数据
String name = request.getParameter("name");
String psw = request.getParameter("psw");
try {
if(name.equals(psw)){
//向客户端写出相应数据
//就不写json格式的数据了,可根据需要进行json封装
response.getWriter().write("登陆成功!");
}else{
response.getWriter().write("登陆失败!");
}
} catch (Exception e) {
}
}
@Override
public void setServletResponse(HttpServletResponse arg0) {
response = arg0;
}
@Override
public void setServletRequest(HttpServletRequest arg0) {
request = arg0;
}
}配置基本完成。看下访问的情况
在浏览器中访问http://127.0.0.1:8080//MutualAgricultrue/machine/loginText.action?name=gaosi&psw=gaosi

在浏览器中已经实现了接收放回的数据,看一下Android中怎么实现的呢?
private void liakStruts2() {
String path = "http://169.254.153.224:8080//MutualAgricultrue/" +
"machine/loginText.action?name=gaosi&psw=gaosi";
try {
URL url = new URL(path);
URLConnection connection = url.openConnection();
connection.setDoOutput(true);
connection.setDoOutput(true);
connection.setReadTimeout(3000);
InputStream inputStream = connection.getInputStream();
byte[] bytes = new byte[1024];
int read = inputStream.read(bytes);
String value = new String(bytes, 0, read);
Log.e("value", value);
inputStream.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} 相关推荐
hgzhang 2020-05-06
白净垃圾桶 2020-05-04
playis 2020-04-18
郭大路路 2020-04-16
lenchio 2020-04-08
yixiaoqi00 2020-04-08
melonjj 2020-01-05
mmywcoco 2019-12-28
wangruiling 2014-06-13
yaoyao0 2014-06-01
YangHuiLiang 2014-05-20
方志朋 2019-12-22
xcguoyu 2014-01-18
方志朋 2015-04-30
殷龙飞 2014-06-24
zmysna 2016-12-16
89264255 2011-04-23
wuddny的blog 2014-12-04