AjAx与数据库的交互,一般返回的是字符串, 常见的js解析有 文本解析,xml格式解析,json解析
1,在ajax与后台的交互中经常会出现乱码,
解决办法: 在后台获取数据的时候要改变其编码
//获取jsp页面传递过来的userName
String user= request.getParameter("userName"); //使用String来改变获取到的字符集编码 String userid = new String(user.getBytes("iso8859-1"),"GBK");
2,文本解析 http://baihe747.iteye.com/blog/2164311
3,js解析xml格式的数据 例子: xml动态检查用户名是否存在
后台代码:
/**xml传递数据 * * @author Administrator 通过局部刷新来实现数据的查找Ajax */ public class AjaxServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //xml传递数据:response.setContentType("text/xml");必须是xml的 response.setCharacterEncoding("GBK"); request.setCharacterEncoding("GBK"); PrintWriter out = response.getWriter(); response.setContentType("text/xml"); //获取url传递的参数 //解决js与servlet之间数据的乱码问题 String userName = request.getParameter("userName"); String str =new String(userName.getBytes("iso8859-1"),"GBK"); System.out.println(str); //修改点二:xml的返回格式必须是有开始和结束的 StringBuffer buffer = new StringBuffer(); buffer.append("<msg>"); //假设连接上数据库,判断 并给予返回值 ,ok表示可以注册,ON表示不可以注册 if ("123".equals(str)) { buffer.append(str +"用户名已存在").append("</msg>"); } else { buffer.append(str +"可以注册!!!").append("</msg>"); } //输出StringBuffer字符串 out.print(buffer); } }
jsp界面代码
<script type="text/javascript" src="js/jquery-1.8.3.js"> </script> </head> <body> <script type="text/javascript"> //javascript中需要引入Jquery包就不能将函数写在同一级下 var xmlHttp; function fun_user() { //使用Jquery获取id的值 var username = $("#userName").val(); //创建XMLHttpRequest的对象,js创建对象和java类似,也是使用new //XMLHttpRequest的open(),send(),abort(),readyState,responseText xmlHttp = new XMLHttpRequest(); // if(xmlHttp){ // alert("创建") // }else{ // alert("出错了"); // } //2,创建回调函数callback xmlHttp.onreadystatechange = callback; //3,创建与Servlet的连接符,定义连接的方式,是否为异步,是否需要账号和密码验证 var url="AjaxServlet?userName=" + username; xmlHttp.open("GET", url, true); //4,发送请求头信息 // xmlHttp.setRequestHeader("Content-Type", "application/x-www-from-urlencoded"); //5,发送数据,数据已经通过连接方式传送,所以这里只需要发送null xmlHttp.send(null); // xmlHttp.send("userName=" + username); } //回调函数callback function callback() { //判断是否Ajax交互完成 // alert(xmlHttp.readyState); //readyState的书中状态 if (xmlHttp.readyState == 4) { //200表示网页是否找到 if (xmlHttp.status == 200) { var xmlobj=xmlHttp.responseXML; //<msg> </msg> //使用document来解析返回的xml数据获取节点,返回一组元素 var domxml =xmlobj.getElementsByTagName("msg"); if(domxml.length>0){ //获取domxml的第一个节点 firstChild var responsexml =domxml[0].firstChild; //获取节点的值nodeValue var nodexml=responsexml.nodeValue; alert("长度为:"+nodexml); //以文本的方式返回值 // var xmltext = xmlHttp.responseText; // alert(xmltext); }else{ alert("解析出错:"+xmlHttp.responseText); } } } } </script> <form> 用户名: <input type="text" id="userName" onblur="fun_user()" /> <div id="divName"></div> <br /> 密 码: <input type="password" id="userPwd" /> <div id="divPwd"></div> <input type="button" value="提交" /> </form>
3,js解析json数据; json格式动态检查用户名是否存在
后台关键代码;
//接受数据 String user= request.getParameter("userName"); String userid = new String(user.getBytes("iso8859-1"),"GBK"); System.out.println(userid); //创建java转json的数据对象 String jsonstr="{}"; JSONObject jsonsql = JSONObject.fromObject(jsonstr); //00001 // id: 1 2 3 // menu: 工资 奖金 会议室的申请 // href: salary.jsp money.jsp meetingRoom.jsp //存储Jsonobject对象的队列 ArrayList<JSONObject> jsonlist= new ArrayList<JSONObject>(); try { //连接数据库查询用户的权限 Connection conn=DBUilt.getConn(); String consql =" select parentnode, menuname,menuhref from role_menu where parentnode in (select menuid from role_role where userid=?)"; PreparedStatement pstm=conn.prepareStatement(consql); pstm.setString(1, userid); ResultSet rs=pstm.executeQuery(); while( rs.next()){ //创建java转json的对象 JSONObject pstmjson = JSONObject.fromObject(jsonstr); pstmjson.put("id", rs.getString(1)); pstmjson.put("menu", rs.getString(2)); pstmjson.put("href", rs.getString(3)); jsonlist.add(pstmjson); //创建json队列存放数据库取出来的对象 } rs.close(); } catch (Exception e) { e.printStackTrace(); } //写到jsp页面 out.write(jsonlist.toString());
jsp前台代码;
<script type="text/javascript" src="js/jquery-1.8.3.js"> </script> </head> <body> <script type="text/javascript"> //javascript中需要引入Jquery包就不能将函数写在同一级下 var xmlHttp; function fun_user() { //使用Jquery获取id的值 var username = $("#userName").val(); //创建XMLHttpRequest的对象,js创建对象和java类似,也是使用new //XMLHttpRequest的open(),send(),abort(),readyState,responseText xmlHttp = new XMLHttpRequest(); // if(xmlHttp){ // alert("创建") // }else{ // alert("出错了"); // } //2,创建回调函数callback xmlHttp.onreadystatechange = callback; //3,创建与Servlet的连接符,定义连接的方式,是否为异步,是否需要账号和密码验证 var url="AJAXJson?userName=" + username; xmlHttp.open("POST", url, true); //4,发送请求头信息 // xmlHttp.setRequestHeader("Content-Type", "application/x-www-from-urlencoded"); //5,发送数据,数据已经通过连接方式传送,所以这里只需要发送null xmlHttp.send(null); // xmlHttp.send("userName=" + username); } //回调函数callback function callback() { //判断是否Ajax交互完成 // alert(xmlHttp.readyState); //readyState的书中状态 if (xmlHttp.readyState == 4) { //200表示网页是否找到 if (xmlHttp.status == 200) { //纯文本的方式返回 var xmltext=xmlHttp.responseText; alert(xmltext); //以文本的方式返回值 eval将json数据解析成 //var xmltext = eval(xmlHttp.responseText); //alert(xmltext[0].menu+"连接"+ xmltext[0].href); } } } </script> <form> 用户名: <input type="text" id="userName" onblur="fun_user()" /> <div id="divName"></div> <br /> 密 码: <input type="password" id="userPwd" /> <div id="divPwd"></div> <input type="button" value="提交" /> </form>
相关推荐
将xml格式文档转换为coco数据集的json格式档,方便模型训练使用。
将VOC格式的数据集转换为COCO格式,xml格式转换成json格式 effcientdet等网络中均可用到
此工具类可以把xml格式的文件转成json格式的数据,也可以把自定义的类似xml的标签格式的文件转成json格式
XML数据生成Json格式XML数据生成Json格式XML数据生成Json格式
主要介绍了javascript解析ajax返回的xml和json格式数据,结合实例形式详细分析了JS ajax调用及返回值中xml与json格式数据的处理技巧,需要的朋友可以参考下
Json和Xml离线格式化工具
simple-xml包解析xml格式数据、SAX解析xml格式数据。jackson包解析json格式数据。
Java将xml格式数据转json格式数据
JSONUtils 实现了json结构数据的生成与解析,json与 xml之间相互转换
不废话,直接贴代码,主要是xml的三种解析和json数据解析,但愿对初学者有帮助!
此例子里面讲解了ajax请求servlet之后,处理servlet的返回值,包括xml、text文本、json、html页面,例子非常容易懂,而且注释详细,对于理解ajax请求的原理非常有帮助,值得一看。
java 多txt文件解析,对xml格式数据添加到数据库
Ajax 解析XML+json总结,很好的资源哦。欢迎大家来下载。
java&android;解析xml 将xml转换为json java&android;解析xml 将xml转换为json 原文地址:https://blog.csdn.net/u010838785/article/details/82258411
这个文件适用于把XMl格式数据转化为JSON对象格式,也可以反向互转
NOTHING Flex使用json和xml数据交互
WebView布局使用,okHTTP访问解析服务器返回的json/xml数据。
iOS xml解析和json解析demo
ajax 是Asynchronous Javascript And XML四个单词的简写,粗略翻译为:异步的Javascript 和 XML. 1.异步:代表的是前端向后台发起请求,让后端处理完成,然后再返回一段数据,前端拿到返回的数据后需要做一系列的...