ssh框架发布json数据提供客户端开发
2016-05-23 11:29
579 查看
作为一个客户端开发人员,每次让服务端人员写数据接口的的时候,感觉就像是在求他们一样,与其求别人,还不如自己会搞,android与服务端通行,最常见的就是json了,以前用webservice,感觉还可以,总之,多一种通行方式多一套方法,多一个机会吧!大三了,感觉心里惶惶的,但是还是得学习呀。
先看看效果吧
注意:*浏览器的参数名称必须要和action里面的接收的名称一样,要不然接收不到参数*
下面看看一个demo吧!
LoginAction.java
struts.xml的配置:
通过配置及可以实现json发布了,剩下的就是客户端解析json了
先看看效果吧
注意:*浏览器的参数名称必须要和action里面的接收的名称一样,要不然接收不到参数*
下面看看一个demo吧!
LoginAction.java
package com.twj.action; import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.twj.base.BaseAction; import com.twj.entity.User; import com.twj.service.UserService; @Scope("prototype") @Component @Action(value="LoginAction",results={ @Result(name="login",location="/index.jsp") }) public class LoginAction extends BaseAction implements ServletRequestAware,ServletResponseAware{ private static final long serialVersionUID = 1L; @Autowired private UserService userService; HttpServletRequest request; HttpServletResponse response; private String userName; private String password; private Integer UId; private User u; /** * 模拟用户登录的业务 */ public void login() { System.out.println("-------------"+userName+password); try { //如果不采用接口注入的方式的获取HttpServletRequest,HttpServletResponse的方式 // HttpServletRequest request =ServletActionContext.getRequest(); // HttpServletResponse response=ServletActionContext.getResponse(); //setHandler(); this.response.setContentType("text/json;charset=utf-8"); this.response.setCharacterEncoding("UTF-8"); //JSONObject json=new JSONObject(); Map<String,String> json=new HashMap<String,String>(); u=userService.getUserByAccess(userName, password); if (u!=null) { json.put("ULive", u.getULive()); json.put("UWork", u.getUWork()); json.put("USex", u.getUSex()); json.put("UName", u.getUName()); json.put("UBkurl",u.getUBkurl()); json.put("UIphone",u.getUIphone()); }else { json.put("message", "账号或密码错误"); } // byte[] jsonBytes = json.toString().getBytes("utf-8"); response.setContentLength(jsonBytes.length); response.getOutputStream().write(jsonBytes); response.getOutputStream().flush(); response.getOutputStream().close(); } catch (Exception e) { e.printStackTrace(); } } public void getUserByUId(){ try {//setHandler(); this.response.setContentType("text/json;charset=utf-8"); this.response.setCharacterEncoding("UTF-8"); Map<String, Object>json=new HashMap<String, Object>(); u=userService.getUserById(UId); if (u!=null) { json.put("user", u); } else { json.put("enorr", "返回错误"); } byte[] jsonBytes; jsonBytes = json.toString().getBytes("utf-8"); response.setContentLength(jsonBytes.length); response.getOutputStream().write(jsonBytes); response.getOutputStream().flush(); response.getOutputStream().close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }; void setHandler(){ }; public User getU() { return u; } public void setU(User u) { this.u = u; } public Integer getUId() { return UId; } public void setUId(Integer uId) { UId = uId; } 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; } }
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> <!-- 指定由spring负责action对象的创建 --> <constant name="struts.objectFactory" value="spring" /> <!-- 所有匹配*.action的请求都由struts2处理 --> <constant name="struts.action.extension" value="action" /> <!-- 是否启用开发模式 --> <constant name="struts.devMode" value="true" /> <!-- struts配置文件改动后,是否重新加载 --> <constant name="struts.configuration.xml.reload" value="true" ></constant> <!-- 设置浏览器是否缓存静态内容 --> <constant name="struts.serve.static.browserCache" value="false" /> <!-- 请求参数的编码方式 --> <constant name="struts.i18n.encoding" value="utf-8" /> <!-- 每次HTTP请求系统都重新加载资源文件,有助于开发 --> <constant name="struts.i18n.reload" value="true" /> <!-- 文件上传最大值 --> <constant name="struts.multipart.maxSize" value="104857600" /> <!-- 让struts2支持动态方法调用 --> <constant name="struts.enable.DynamicMethodInvocation" value="true" /> <!-- Action名称中是否还是用斜线 --> <constant name="struts.enable.SlashesInActionNames" value="false" /> <!-- 允许标签中使用表达式语法 --> <constant name="struts.tag.altSyntax" value="true" /> <!-- 对于WebLogic,Orion,OC4J此属性应该设置成true --> <constant name="struts.dispatcher.parametersWorkaround" value="false" /> <!-- <package name="default" namespace="/" extends="struts-default">--> <package name="default" extends="json-default"><!--需要将struts-default改为--> <action name="login" class="com.twj.action.LoginAction" method="login"> <result type="json"/> <!-- <span style="color: #ff0000;"> </span> --> <!--返回值类型设置为json,不设置返回页面--> </action> <action name="getUserByUId" class="com.twj.action.LoginAction" method="getUserByUId"> <result type="json"/> <!-- <span style="color: #ff0000;"> </span> --> <!--返回值类型设置为json,不设置返回页面--> </action> </package> <!-- 拦截器配置 --> </struts>
通过配置及可以实现json发布了,剩下的就是客户端解析json了
相关文章推荐
- 面试题之JavaScript 的全局变量与局部变量
- 第一章 JavaScript简介
- javascript学习——节点层次
- js循环json字符串
- JSON详解
- js里面的单引号和双引号的区别
- JSON.parse()和JSON.stringify()
- JavaScript词法分析
- javascript 没有块级作用域
- json数组与json字符串的相关问题(相互转换、解析json数据)
- js计算执行时间
- 普通数组转化为json数组
- JS代码判断IE6,IE7,IE8,IE9!
- 对json对象的增删改查
- js深拷贝和浅拷贝
- 页面打水印方法
- chrome jsonView插件安装
- js里的回调函数
- javascript检测对象中是否存在某个属性判断方法小结
- JavaScript类和模块