libs如图:

web.xml:

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><!-- 定义Struts2的核心控制器:FilterDispatcher --><filter><!-- 定义核心Filter的名称 --><filter-name>struts2</filter-name><!-- 定义Filter的实现类 --><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app> 

struts.xml:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"    "http://struts.apache.org/dtds/struts-2.0.dtd"><struts><constant name="struts.i18n.encoding" value="utf-8"></constant><constant name="struts.enable.DynamicMethodInvocation" value="true"></constant><package name="default" extends="json-default" namespace="/"><action name="getjson" class="com.zte.android.LoginAction"method="login"><result type="json"></result></action></package></struts>

Student.java

package com.zte.android;public class Student{private String name;private String age;private String school;private String phone;public String getName(){return name;}public void setName(String name){this.name = name;}public String getAge(){return age;}public void setAge(String age){this.age = age;}public String getSchool(){return school;}public void setSchool(String school){this.school = school;}public String getPhone(){return phone;}public void setPhone(String phone){this.phone = phone;}}


Login.action:

package com.zte.android;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.interceptor.ServletRequestAware;import org.apache.struts2.interceptor.ServletResponseAware;import com.google.gson.Gson;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport implements ServletRequestAware,ServletResponseAware{/** * */private static final long serialVersionUID = 1L;HttpServletRequest request;HttpServletResponse response;private String username;private String password;public String getPassword(){return password;}public void setPassword(String password){this.password = password;}public String getUsername(){return username;}public void setUsername(String username){this.username = username;}public void setServletRequest(HttpServletRequest request){this.request = request;}public void setServletResponse(HttpServletResponse response){this.response = response;}/** * 模拟用户登录的业务 */public void login(){returnUserInfo();}private void returnUserInfo(){this.response.setContentType("text/json;charset=utf-8");this.response.setCharacterEncoding("UTF-8");String json;if (username == null || password == null){json = "请求参数错误";flushData(json);return;}if (username.equals("123") && password.equals("123")){List<Student> list = new ArrayList<Student>();Gson gson = new Gson();for (int i = 0; i < 10; i++){Student st = new Student();st.setAge("10" + i);st.setName("csh" + i);st.setPhone("1333007" + i);st.setSchool("abc" + i);list.add(st);}json = gson.toJson(list);}else{json = "非法登陆信息!";}flushData(json);}private void flushData(String json){byte[] jsonBytes;try{jsonBytes = json.getBytes("utf-8");response.setContentLength(jsonBytes.length);response.getOutputStream().write(jsonBytes);response.getOutputStream().flush();}catch (UnsupportedEncodingException e){e.printStackTrace();}catch (IOException e){e.printStackTrace();}finally{try{response.getOutputStream().close();}catch (IOException e){e.printStackTrace();}}}}


网页ajax请求:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><script type="text/javascript">var xmlHttpReq; //用于保存XMLHttpRequest对象的全局变量  //用于创建XMLHttpRequest对象  function createXmlHttp() {//根据window.XMLHttpRequest对象是否存在使用不同的创建方式  if (window.XMLHttpRequest) {xmlHttp = new XMLHttpRequest(); //FireFox、Opera等浏览器支持的创建方式  } else {xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");//IE浏览器支持的创建方式  }}function loadAjax() {createXmlHttp(); //创建XmlHttpRequest对象  var url = "http://localhost:8080/ssh2ToAndroid/getjson.action?userName=admin&password=123456";xmlHttpReq.open("GET", url, true);xmlHttpReq.onreadystatechange = loadCallback; //IE这里设置回调函数  xmlHttpReq.send(null);}function loadCallback() {alert(xmlHttpReq.readyState);if (xmlHttpReq.readyState == 4) {if (xmlHttpReq.status == 200) {document.getElementById("contentDiv").innerHTML = xmlHttpReq.responseText;}}}</script><body><div id="contentTypeDiv"></div><br /><br /><div id="contentDiv"></div><input type="button" value="请求数据" onclick="loadAjax()"></body></html>


android请求数据:

package com.zte.android.greenweb.launcher.http;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import java.net.HttpURLConnection;import java.net.URL;import com.zte.android.greenweb.launcher.util.LogEx;import com.zte.android.greenweb.launcher.util.NetConst;public class HttpConnectionClient{public static final String HTTP_REQUEST_METHOD_GET = "GET";public static final String HTTP_REQUEST_METHOD_POST = "POST";private HttpURLConnection conn = null;/** * 发送请求到http服务然后接收返回报文 *  * @param path *            请求的http服务的路径 * @return 返回请求的响应信息 * @throws IOException */public int doGet(String path) throws IOException{URL url = new URL(path);// openConnection() 返回一个 URLConnection 对象,它表示到 URL 所引用的远程对象的连接conn = (HttpURLConnection) url.openConnection();// 打开一个连接conn.setRequestMethod(HTTP_REQUEST_METHOD_GET);// 设置get方式请求conn.setConnectTimeout(NetConst.CONNECTED_TIME_OUT);conn.setReadTimeout(NetConst.READ_TIME_OUT);// 打算使用 URL 连接进行输出,则将 DoOutput 标志设置为 trueconn.setDoOutput(true);// 这里只设置内容类型与内容长度的头字段根据传送内容决定// 内容类型Content-Type:// application/x-www-form-urlencoded、text/xml;charset=GBK// 内容长度Content-Length: 38conn.setRequestProperty("Content-Type", "text/xml;charset=UTF-8");conn.setRequestProperty("Charset", "UTF-8");// 保存调用http服务后的响应信息return conn.getResponseCode();}/** * 发送请求到http服务然后接收返回报文 *  * @param jsonStr *            请求的json格式的字符串 * @param path *            请求的http服务的路径 * @return 返回请求的响应信息 * @throws IOException */public int doPost(String jsonStr, String path) throws IOException{LogEx.d("doPost request="+jsonStr);// 得到请求报文的二进制数据byte[] data = jsonStr.getBytes();URL url = new URL(path);// 打开一个连接conn = (HttpURLConnection) url.openConnection();// 设置post方式请求conn.setRequestMethod(HTTP_REQUEST_METHOD_POST);conn.setConnectTimeout(NetConst.CONNECTED_TIME_OUT);conn.setReadTimeout(NetConst.READ_TIME_OUT);// 打算使用 URL 连接进行输出,则将 DoOutput 标志设置为 trueconn.setDoOutput(true);conn.setDoInput(true);// 这里只设置内容类型与内容长度的头字段根据传送内容决定// 内容类型Content-Type:// application/x-www-form-urlencoded、text/xml;charset=GBK// 内容长度Content-Length: 38conn.setRequestProperty("Content-Type", "text/xml;charset=UTF-8");conn.setRequestProperty("Charset", "UTF-8");conn.setRequestProperty("Content-Length", String.valueOf(data.length));OutputStream outStream = conn.getOutputStream();// 返回写入到此连接的输出流// 把二进制数据写入是输出流outStream.write(data);// 内存中的数据刷入outStream.flush();// 关闭流outStream.close();int ic = 0;ic = conn.getResponseCode();return ic;}public String getContent() throws UnsupportedEncodingException, IOException{if (null == conn){return null;}// 保存调用http服务后的响应信息String msg = "";// 如果请求响应码是200,则表示成功if (conn.getResponseCode() == NetConst.NET_CONNECTED_SUCCESS){// HTTP服务端返回的编码是UTF-8,故必须设置为UTF-8,保持编码统一,否则会出现中文乱码BufferedReader in =new BufferedReader(new InputStreamReader((InputStream) conn.getInputStream(), "UTF-8"));// 返回从此打开的连接读取的输入流msg = in.readLine();in.close();}// 断开连接conn.disconnect();LogEx.d("doPost getContent="+msg);return msg;}}


最近在学ssh2框架,很多不懂,放着以后看看。有些代码参照网络的。



更多相关文章

  1. Android中实现短信发送的一种方式
  2. Android周报第二十四期
  3. Android(java)学习笔记80:UDP协议发送数据
  4. Android(安卓)BroadcastReceiver 简介
  5. android 检测网络或wifi是否开启
  6. robotium获取本地文档内容
  7. android 获取手机所有短信内容
  8. android线程调度工具类SchedulerUtils
  9. Android为多媒体文件生成缩略图

随机推荐

  1. 诱惑的苹果, 朋克安卓
  2. Android悬浮窗遇到的那些坑
  3. 用Android访问本地站点---(localhost,10.
  4. android 中 FLAG_SHOW_WHEN_LOCKED 的用
  5. HTML5 VIDEO
  6. Android(安卓)View框架总结(一)
  7. Android开发中的一些经验总结
  8. Android(安卓)4 高级编程(第3版)试读
  9. Android(安卓)Binder开发实战指南之创建N
  10. Android(安卓)APP基于Android(安卓)Studi