当前位置: 首页 > news >正文

白山网站设计曲阳做网站

白山网站设计,曲阳做网站,选择网站的关键词,西安教育平台网站建设谈到JSON,简单的说就是一种数据交换格式。近年来#xff0c;其在服务器之间交换数据的应用越来越广#xff0c;相比XML其格式更简单、编解码更容易、扩展性更好#xff0c;所以深受开发人员的喜爱。 下面简单的写一下在项目中前后台json传值的一个小例子#xff0c;供大家参…   谈到JSON,简单的说就是一种数据交换格式。近年来其在服务器之间交换数据的应用越来越广相比XML其格式更简单、编解码更容易、扩展性更好所以深受开发人员的喜爱。    下面简单的写一下在项目中前后台json传值的一个小例子供大家参考、查阅。 一前台传后台 1.前台jsp页面代码      在index中将实体对象自己创建即可插入list中再将list集合转化成json数组利用post方式发送AJAX请求将这个json数组发送至后台servlet再在后台进行解析即可。 index.jsp % page languagejava importjava.util.Date,com.badminton.utils.JsonDateValueProcessor,java.text.SimpleDateFormat,java.util.List,net.sf.json.JSONArray,net.sf.json.JSONObject,net.sf.json.JsonConfig,java.util.ArrayList,com.badminton.entity.Athlete,net.sf.json.JSONObject pageEncodingutf-8% !DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN html head titleMy first json page/title %SimpleDateFormat format1 new SimpleDateFormat(yyyy-MM-dd);Athlete athlete1 new Athlete();athlete1.setAthlete_id(1003);athlete1.setAthlete_name(林丹);athlete1.setAthlete_sex(男);Date athlete_age1 format1.parse(1983-10-14);//是java.util.dateathlete1.setAthlete_age(athlete_age1);athlete1.setCoach_id(101);athlete1.setEvent_id(1);athlete1.setService_status(1);athlete1.setExperience(2013年第12届全运会男单冠军。);Athlete athlete2 new Athlete();//记录2athlete2.setAthlete_id(1004);athlete2.setAthlete_name(鲍春来);athlete2.setAthlete_sex(男);Date athlete_age2 format1.parse(1988-10-14);athlete2.setAthlete_age(athlete_age2);athlete2.setCoach_id(101);athlete2.setEvent_id(1);athlete2.setService_status(1);athlete2.setExperience(2011年亚洲羽毛球锦标赛亚军。);ListAthlete list1 new ArrayListAthlete();list1.add(athlete1);list1.add(athlete2); JsonConfig jsonConfig new JsonConfig();//解决date类型的传输问题jsonConfig.registerJsonValueProcessor(Date.class , new JsonDateValueProcessor());JSONArray jsonarray JSONArray.fromObject(list1, jsonConfig); % script typetext/javascript srcjs/json2.js/script script typetext/javascriptvar xmlHttp;function createXmlHttpRequest() {if (window.ActiveXObject) {xmlHttp new ActiveXObject(Microsoft.XMLHTTP);} else if (window.XMLHttpRequest) {xmlHttp new XMLHttpRequest();}}//回调function handleStateChange() {if (xmlHttp.readyState 4) {if (xmlHttp.status 200) {parseResults();}}}//将后台返回的数据显示在层serverResponse中function parseResults() {var resultxmlHttp.responseXML.getElementsByTagName(result)[0].firstChild.data;alert(result);}function doJSON() {var athletehead{athlete_id:1,tablename:athlete};var myobjeval(athletehead); var str1JSON.stringify(myobj);//str1以后可用来识别数据库中的表var str2%jsonarray%;var url http://localhost:8080/com.badminton.servlet/JsonServer;createXmlHttpRequest();xmlHttp.open(POST, url, true);xmlHttp.onreadystatechange handleStateChange;//回调xmlHttp.setRequestHeader(Content-Type,application/x-www-form-urlencoded;text/xml;charsetutf-8); //text/xml;charsetutf-8解决汉字封装json问题xmlHttp.send(athleteheadstr1athletestr2);//传送了两个对象} /script /head body form idform1 tabletrtd aligncenterinput typebutton namesubmit value提交 onClickdoJSON()/td/tr /table /form /body /html    后台接受前台传来的json对象解析插入数据库中且反给前台一个是否成功的消息。具体插入数据库的代码自己编写一个即可。 JsonServer.java package com.badminton.servlet; import java.io.IOException; import java.io.PrintWriter; import java.sql.Date; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.badminton.app.AthleteAction; import net.sf.json.JSONObject; import net.sf.json.JSONArray; public class JsonServer extends HttpServlet {public JsonServer() {super();}public void destroy() {super.destroy();}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType(text/xml);response.setHeader(Cache-Control, no-cache);response.setCharacterEncoding(UTF-8);PrintWriter out response.getWriter();AthleteAction athleteactionnew AthleteAction();try {String json1 request.getParameter(athletehead);//接收athlete表的头数据String json2 request.getParameter(athlete);//接收athlete表数据json1 java.net.URLDecoder.decode(json1,UTF-8);json2 java.net.URLDecoder.decode(json2, UTF-8);if ((json1 ! ) (json2 ! )) {//System.out.println(json1:json1);JSONObject jsonObject1 JSONObject.fromObject(json1);//生成json对象JSONArray jsonArray2 JSONArray.fromObject(json2);//生成JSON数组for(int i0;ijsonArray2.size();i){JSONObject resultObj jsonArray2.optJSONObject(i);//根据JSONArray生成JSONObjectint athlete_idresultObj.getInt(athlete_id);String athlete_nameresultObj.getString(athlete_name);String athlete_sexresultObj.getString(athlete_sex);String ageresultObj.getString(athlete_age);Date athlete_age Date.valueOf(age);//转换成java.sql.Date//System.out.println(athlete_age);int coach_idresultObj.getInt(coach_id);int event_idresultObj.getInt(event_id);System.out.println(athlete_name);String service_statusresultObj.getString(service_status);String experienceresultObj.getString(experience);athleteaction.athleteAdd(athlete_id,athlete_name,athlete_sex,athlete_age,coach_id,event_id,service_status,experience);//对数据库进行操作具体代码未附}String result 数据上传成功;out.println(response);out.println(result result /result);out.println(/response);out.close();} else{String result 传输过程出错请重传;out.println(response);out.println(result result /result);out.println(/response);out.close();}} catch (Exception e) {System.out.println(JsonServer doPost(HttpServletRequest request, HttpServletResponse response) 报错 e.getMessage());}}public void init() throws ServletException {}} 3.解决传递日期的一个工具类      若没有这个工具类date型数据会被转化成json数组的格式后台解析起来会很复杂。 JsonDateValueProcessor.java package com.badminton.utils; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import net.sf.json.JsonConfig; import net.sf.json.processors.JsonValueProcessor; public class JsonDateValueProcessor implements JsonValueProcessor{/*** datePattern*/private String datePattern yyyy-MM-dd;/*** JsonDateValueProcessor*/public JsonDateValueProcessor() {super();}/*** param format*/public JsonDateValueProcessor(String format) {super();this.datePattern format;}/*** param value* param jsonConfig* return Object*/public Object processArrayValue(Object value, JsonConfig jsonConfig) {return process(value);}/*** param key* param value* param jsonConfig* return Object*/public Object processObjectValue(String key, Object value,JsonConfig jsonConfig) {return process(value);}/*** process* param value* return*/private Object process(Object value) {try {if (value instanceof Date) {SimpleDateFormat sdf new SimpleDateFormat(datePattern,Locale.UK);return sdf.format((Date) value);}return value null ? : value.toString();} catch (Exception e) {return ;}}/*** return the datePattern*/public String getDatePattern() {return datePattern;}/*** param pDatePattern the datePattern to set*/public void setDatePattern(String pDatePattern) {datePattern pDatePattern;} } 二后台传前台    后台以list和map两种形式封装json前台注意json数组和json对象解析时的差别即可。 1.TestJson.java package com.badminton.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class TestJson extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType(text/html);String str request.getParameter(name);//得到ajax传递过来的paramaterSystem.out.println(str);PrintWriter out response.getWriter();List list new ArrayList();//传递List//Map mnew HashMap();//传递Map User u1new User();u1.setUsername(zah);u1.setPassword(123);User u2new User(); u2.setUsername(ztf);u2.setPassword(456);list.add(u1); //添加User对象 list.add(u2); //添加User对象//m.put(u1, u1);//m.put(u2, u2); JSONArray jsonArray2 JSONArray.fromObject( list );//转化成json对象//JSONObject joJSONObject.fromObject(m);//转化Map对象out.print(jsonArray2);//返给ajax请求System.out.println(jsonArray2);//out.print(jo);//返给ajax请求 } } 2.showjson.jsp     利用Jquery、AJAX异步传输的方式接受后台的发送请求。 % page languagejava importjava.util.* pageEncodingutf-8% !DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN htmlhead script typetext/javascript srcjs/jquery-1.4.2.min.js/script script typetext/javascriptfunction test(){$.ajax({type:POST, //请求方式url:servlet/TestJson,//请求路径cache: false, data:namezah, /传参dataType: json,//返回值类型success:function(json){ alert(json[1].username json[1].password);//弹出返回过来的List对象}});} /script/headbodyinput typebutton nameb value测试/body /html
http://www.huolong8.cn/news/80522/

相关文章:

  • 做软件推广网站怎么赚钱wordpress作者排行
  • 山东大型网站建设郑州小程序开发公司排名
  • 医疗网站建设网站网站游戏网站怎么做
  • 企业网站的建设内容wordpress的中文插件
  • 杭州模板做网站鹿泉网络推广
  • 河西区做网站的公司土特产网站模板 织梦
  • 山东住房和城乡建设厅网站登陆绵阳的网站建设
  • 做微网站需要什么国内优秀企业网站设计
  • 微信公众号注册流程如何建设和优化网站
  • 网站建设美工怎么做流量网站
  • 网站自动识别移动终端顺义做网站公司
  • 电子商务网站建设的规划方案邮箱官方网站注册
  • 网站模版购买发布网页版传奇世界什么组合最好
  • 西安英文旅游网站建设建设项目环境影响网站
  • 万州房产网站建设怎样自己建设一个网站
  • 德钦网站建设资源搜索器
  • 做网站后期需要什么费用中国建设银行积分商城网站
  • 资讯类网站模板asp欧美跨境电商平台有哪些
  • 江西网站设计电话网站页面设计制作
  • 班级网站建设心得体会范文免费的排版软件
  • 网站建设企业合作邀请函广州10大网站开发
  • 浏览器怎么打开网站服务器连接互联网舆情信息
  • 百度网盘做存储网站wordpress阅读全文插件
  • 建设网站用外包模板可以上线吗华为网站建设目标
  • 凡客网站登陆有效的网络编址方案有
  • 电商网站创建的几个阶段外贸推广排行榜
  • 长沙建设信息网站做资金盘网站违法吗
  • 用jsp做的网站源代码下载兴宁房产网
  • 网站空间500m是什么系统学做网站
  • 个人网站备案的好处越秀区pc端网站建设