package com.hy.utils;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
/**
*
* Web服务端返回JSON工具类
* 工具类依赖FastJSON
* 工具类支持返回JSON和JSONP格式数据
* @author hy
*
*/
public class ResponseJsonUtils {
/**
* 默认字符编码
*/
private static String encoding = "UTF-8";
/**
* JSONP默认的回调函数
*/
private static String callback = "callback";
/**
* FastJSON的序列化设置
*/
private static SerializerFeature[] features = new SerializerFeature[] {
// 输出Map中为Null的值
SerializerFeature.WriteMapNullValue,
// 如果Boolean对象为Null,则输出为false
SerializerFeature.WriteNullBooleanAsFalse,
// 如果List为Null,则输出为[]
SerializerFeature.WriteNullListAsEmpty,
// 如果Number为Null,则输出为0
SerializerFeature.WriteNullNumberAsZero,
// 输出Null字符串
SerializerFeature.WriteNullStringAsEmpty,
// 格式化输出日期
SerializerFeature.WriteDateUseDateFormat };
/**
* 把Java对象JSON序列化
*
* @param obj
* 需要JSON序列化的Java对象
* @return JSON字符串
*/
private static String toJSONString(Object obj) {
return JSON.toJSONString(obj, features);
}
/**
* 返回JSON格式数据
*
* @param response
* @param data
* 待返回的Java对象
* @param encoding
* 返回JSON字符串的编码格式
*/
public static void json(HttpServletResponse response, Object data,
String encoding) {
// 设置编码格式
response.setContentType("text/plain;charset=" + encoding);
response.setCharacterEncoding(encoding);
PrintWriter out = null;
try {
out = response.getWriter();
out.write(toJSONString(data));
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 返回JSON格式数据,使用默认编码
*
* @param response
* @param data
* 待返回的Java对象
*/
public static void json(HttpServletResponse response, Object data) {
json(response, data, encoding);
}
/**
* 返回JSONP数据,使用默认编码和默认回调函数
*
* @param response
* @param data
* JSONP数据
*/
public static void jsonp(HttpServletResponse response, Object data) {
jsonp(response, callback, data, encoding);
}
/**
* 返回JSONP数据,使用默认编码
*
* @param response
* @param callback
* JSONP回调函数名称
* @param data
* JSONP数据
*/
public static void jsonp(HttpServletResponse response, String callback,
Object data) {
jsonp(response, callback, data, encoding);
}
/**
* 返回JSONP数据
*
* @param response
* @param callback
* JSONP回调函数名称
* @param data
* JSONP数据
* @param encoding
* JSONP数据编码
*/
public static void jsonp(HttpServletResponse response, String callback,
Object data, String encoding) {
StringBuffer sb = new StringBuffer(callback);
sb.append("(");
sb.append(toJSONString(data));
sb.append(");");
// 设置编码格式
response.setContentType("text/plain;charset=" + encoding);
response.setCharacterEncoding(encoding);
PrintWriter out = null;
try {
out = response.getWriter();
out.write(sb.toString());
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
public static String getEncoding() {
return encoding;
}
public static void setEncoding(String encoding) {
ResponseJsonUtils.encoding = encoding;
}
public static String getCallback() {
return callback;
}
public static void setCallback(String callback) {
ResponseJsonUtils.callback = callback;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
项目.rar (76个子文件)
LoginDemo
.project 1KB
.settings
.jsdtscope 503B
org.eclipse.core.resources.prefs 57B
org.eclipse.wst.common.component 479B
org.eclipse.jdt.core.prefs 364B
org.eclipse.wst.common.project.facet.core.xml 305B
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.jsdt.ui.superType.name 6B
src
com
hy
utils
ResponseJsonUtils.java 4KB
dao
UserDao.java 214B
impl
UserDaoImpl.java 756B
action
RegAction.java 1KB
service
UserService.java 215B
impl
UserServiceImpl.java 814B
entity
User.java 1000B
User.hbm.xml 821B
applicationContext.xml 2KB
struts.xml 544B
build
classes
com
hy
utils
ResponseJsonUtils.class 3KB
dao
impl
UserDaoImpl.class 1KB
UserDao.class 293B
action
RegAction.class 2KB
service
UserService.class 226B
impl
UserServiceImpl.class 2KB
entity
User.class 2KB
User.hbm.xml 821B
applicationContext.xml 2KB
struts.xml 544B
WebContent
reg.jsp 2KB
login.jsp 692B
regsuccess.jsp 372B
test.jsp 4KB
WEB-INF
web.xml 1021B
lib
javassist-3.11.0.GA.jar 600KB
commons-lang3-3.1.jar 308KB
spring-aop.jar 318KB
ognl-3.0.6.jar 223KB
struts2-core-2.3.8.jar 775KB
commons-pool-1.5.4.jar 94KB
aopalliance.jar 4KB
jstl-1.2.jar 405KB
commons-io-2.0.1.jar 156KB
cglib-nodep-2.1_3.jar 317KB
asm-commons-3.3.jar 37KB
jta-1.1.jar 11KB
struts2-spring-plugin-2.3.8.jar 21KB
hibernate3.jar 3.73MB
log4j-1.2.15.jar 383KB
freemarker-2.3.19.jar 909KB
commons-fileupload-1.2.2.jar 58KB
slf4j-log4j12-1.5.8.jar 9KB
commons-logging-1.0.4.jar 37KB
spring-context.jar 466KB
commons-dbcp-1.3.jar 145KB
spring-tx.jar 226KB
mysql-connector-java-5.1.10-bin.jar 707KB
spring-core.jar 279KB
commons-collections-3.1.jar 546KB
javassist-3.9.0.GA.jar 583KB
spring-beans.jar 477KB
log4j-1.2.16.jar 470KB
dom4j-1.6.1.jar 307KB
asm-tree-3.3.jar 21KB
slf4j-api-1.5.8.jar 23KB
fastjson-1.2.2.jar 400KB
spring-jdbc.jar 328KB
antlr-2.7.6.jar 433KB
xwork-core-2.3.8.jar 604KB
spring.jar 2.81MB
asm-3.3.jar 43KB
aspectjweaver.jar 1.47MB
index.jsp 370B
META-INF
MANIFEST.MF 39B
query.jsp 2KB
result.jsp 357B
.classpath 817B
共 76 条
- 1
资源评论
SnowWitch
- 粉丝: 664
- 资源: 36
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功