ssh框架发布json数据提供客户端开发
来源:互联网 发布:杭州认知网络投资人 编辑:程序博客网 时间:2024/06/16 02:52
作为一个客户端开发人员,每次让服务端人员写数据接口的的时候,感觉就像是在求他们一样,与其求别人,还不如自己会搞,android与服务端通行,最常见的就是json了,以前用webservice,感觉还可以,总之,多一种通行方式多一套方法,多一个机会吧!大三了,感觉心里惶惶的,但是还是得学习呀。
先看看效果吧
注意:*浏览器的参数名称必须要和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了
3 0
- ssh框架发布json数据提供客户端开发
- SpringMvc 服务端发布json数据+android客户端解析json数据
- SSH框架中数据库数据生成execel表格提供下载
- ssh配置客户端和服务器的交互json传递数据
- Extjs4.2与SSH框架传输json数据小例
- ssh+json开发实例
- 获取JSON数据客户端
- CYQ.Data 数据框架 V3.5 开源版本发布(源码提供下载)
- 开发android客户端需要了解的知识--JSON数据解析
- 开发android客户端需要了解的知识--JSON数据解析
- SSH搭建的框架,提供源码
- javaWeb 开发中 使用ssh+ajax+json 开发时,json数据转换的问题
- SSH开发框架详解
- 开发框架SSH
- ssh框架配置+开发
- ssh框架整合开发
- 如果希望给Android客户端提供JSON格式的数据,服务端应该用什么技术编写呢?
- SSH框架实现返回json数据,并使用android app进行访问
- 批处理--改IP
- PowerPoint使用技巧
- 一段java并发编程代码
- Activity及其生命周期
- android ContentProvider applyBatch数据库事务
- ssh框架发布json数据提供客户端开发
- 使用搜索引擎时的忧虑
- linux 解压"thunderbird-45.1.0.tar.bz2"格式的命令
- 一晃,大学也要毕业了
- Javascript 多浏览器兼容性问题及解决方案
- Intent及其七大属性及intent-filter设置
- Unity中WheelCollider的Slip曲线
- ReactiveCocoa之RACCommand使用(五)
- 怎样设置PDF的文本内容