Using XMLHTTP and DomDocument on web applications

xiaoxiao2021-03-06  19

Using XMLHTTP can realize new data for no new automatic access servers in the page, which can be easily achieved in some chat rooms. Similarly, you can implement timing lysted new page data in other BS applications. However, some problems will be encountered when using XMLHTTP and DomDocument. One is how to transfer parameters, and the second is Chinese garbled problems, and there is how to resolve XML code.

1. Parameter Transfer and Get Parameter Values ​​XMLHTTP's Send Method Send (Varbody) Varbody: Instruction Set. Can be XML format data, or a string, stream, or an unsigned integer array. It can also be omitted, and the instruction will be submitted through the URL parameter of the OPEN method. The Send method can also transmit parameter pairs, and each parameter can be used with & separation, such as var post = "ID = 1000 & Page = 3"; XMLHttp.send (POST);

Or add to the URL parameter of the Open method, such as XMLHTTP.Open ("POST", "http: // localhost: 8088 / getData? Id = 1000 & Page = 3", FALSE);

In JSP or servlet, you can get the parameter string id = (string) Request String ID = (String) in peacetime; string page = (string) Req.getParameter ("Page");

Because the request sent by XMLHTTP is not a Multipart / Form-Data format, it is noted that some methods in the servlet cannot use multiple Multipart / Form-Data formats.

2, Chinese garbled problem XMLHTTP is sent to request and receive return values ​​in UTF-8, so if there is no coding process, in the transmission of the parameters or in the received return value, then we see It is garbled to process the parameters sent.

Var post = "years = 2004-2005 & termid = autumn and winter"; // contains Chinese XMLHTTP.Open ("post", "http: // localhost: 8088 / getdata", false); XMLHttp.SetRequestHeader ("Content-Type", "Application / X-WWW-FORM-URLENCODED"); // To have this sentence xmlhttp.setRequestHeader ("Content-length", post.length; xmlhttp.send (post);

When the parameter is taken in the servlet, the Request is encoded to process Req.SetCharacterencoding ("UTF-8"); then take the parameter string years = (string) Req.getParameter ("years"); string termid = (String) Req.getParameter ("Termid");

If there is an output data to the requested page in the servlet, if you include Chinese, you should also encode the Response Static Final String Content_Type = "text / html; charset = utf-8"; res. setContentType (Content_Type);

Use UTF-8 in the output XML code (""); OUT. Println (""); out.println (""); out.println (" Zhang 3 "); Out.println (" male < /gender>") :Out.println (" 11 ); OUT. Println (" design mode </ Title>"); out.println ("</ book>"); ... out.println ("</ root>"); 3, in the page to XML code Performing all the code is as follows</p> <p><script language = "javascript"> function getnodevalue (root, node = root.selectsinglenode (nodename); return node.text;} catch (e) {return ";}}</p> <p>Function getPersonNodeAttributes (xmldoc) {var text = ""; var obj = xmldoc.getElementsBytagname ("Person"); for (var i = 0; i <obj.length; i ) {var node = Obj.Item (i); VAR ID = node.getattribute ("id"); var name = getnodevalue (node, "name"); var gender = getNodeValue (Node, "Gender"); text = "ID =" ID ", Name =" Name ", gender =" gender; alert (text);} returnization;}</p> <p>Function getBooknodeAttributes (xmldoc) {var text = ""; var obj = xmldoc.getElementsBytagname ("BOOK"); for (var i = 0; i <obj.length; i ) {var node = Obj.Item (i); VAR id = node.getattribute ("id"); var bookid = getnodevalue (node, "bookid"); var title = getNodeValue (Node, "Title"); Text = "ID =" ID ", bookid =" Bookid ", Title =" Title; Alert (text);}} // setInterval ("CheckResult ()", 1000); // Timed call checkresult () Function CheckResult () {var xmldoc = new ActiveXObject ( "Msxml2.DOMDocument.4.0"); xmlDoc.async = false; var post = "Years = 2004-2005 & TermID = winter"; var xmlhttp = new ActiveXObject ( "Msxml2.XMLHTTP.4.0"); xmlhttp.open ("POST", "http: // localhost: 8088 / getData"; Xmlhttp.SetRequestHeader ("Content-Type", "Application / X-WWW-FORM-URLENCODED"); XMLHttp.SetRequestHeader ("Content- Length ", post.length); xmlhttp.send (post); xmlDoc.loadXML (xmlhttp.responseText); var person = getBookNodeAttributes (xmlDoc); var book = getPersonNodeAttributes (xmlDoc);} </ SCRIPT></p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-71606.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="71606" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.039</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'DKvdhhLbFrzScXoYfk5jl6kwlqD0FUzX76bl76O419b0HFE8byiwLz4e0xXA79nSgLl_2BkDXsctVt5pbd'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>