zl程序教程

您现在的位置是:首页 >  后端

当前栏目

jsp+ajax_javascriptjavascript日

2023-06-13 09:13:39 时间

大家好,又见面了,我是你们的朋友全栈君。

明后两天梁言兵老师来讲Ajax及其最近作过的一个真实的Ajax项目,所以,我今天讲解梁老师的课程所需要的一些前置知识。 因为大家对Javascript不是很熟悉,所以我首先讲解Javascript的DHTML功能。本来入学考试要求大家很好地掌握Javascript的,但是大家都不能理解我们的苦衷,并没有专心去对待Javascript。想想我前两年强调javascript和css的重要性时,一些培训中心的人居然对此不屑一顾,当他们咨询学员时,也以此来攻击我,学员们也对这些培训中心的蛊惑深信不疑!随着Ajax的流行,这些人又跟风觉得Javascript重要了,现在同学们应该能静下心来去好好学习Javascript了。 通过DHTML和Javascript可以实现网页显示的局部更新,先用一个动态生成表格内容的Javascript来讲解,两种方式: 表格专用的数据模型来实现: <Script language=javaScript> function LianJie() { //selValue=mainTab.rows[0].cells[0].childNodes[0].innerText; //selValue=window.sel.innerText selValue=window.sel.options[window.sel.selectedIndex].text texValue=window.text1.value; innValue=selValue+texValue; newRow=window.mainTab[1].insertRow() alert(newRow); newCell=newRow.insertCell() newCell.innerText=innValue; } </Script> <Table id=”mainTab”> <TR> <TD> <select style=”width:200px;” id=”sel” Name=”sel”> <option>sdfsdfsdfdsfsdf</option> <option>1111111111111</option> <option>222222222222</option> </select> </TD> <TD> <input type=text Name=”text1″ id=”test1″> </TD> <TR> <input type=button value=”连接” onClick=LianJie()> <Table> <Table border=1 id=”mainTab”> </Table> 通过标准的DOM对象模型来实现: <html> <head> <title>MyHtml.html</title> <meta http-equiv=”keywords” content=”keyword1,keyword2,keyword3″> <meta http-equiv=”description” content=”this is my page”> <meta http-equiv=”content-type” content=”text/html; charset=UTF-8″> <!–<link rel=”stylesheet” type=”text/css” href=”./styles.css”>–> <SCRIPT type=”text/javascript”> function addRow() { alert(“hehe”); var tbody = document.createElement(“tbody”); var tr = document.createElement(“tr”); var td = document.createElement(“td”); var value = document.createTextNode(“1111”); td.appendChild(value); tr.appendChild(td); tbody.appendChild(tr); document.getElementById(“t1”).appendChild(tbody); //background=”#FF0000″; //.addChild(obj); } </SCRIPT> </head> <body> This is my HTML page. <br> <TABLE id=”t1″> <tr><td>2222</td></tr> </TABLE> <a href=”#” οnclick=”addRow()”>test</a> </body> </html>

有了动态生成表格的直观印象后,我再告诉大家动态需要的数据不是直接从网页的文本框中直接获取,而是从Web服务器上去获取。不能让浏览器直接去访问web服务器,因为这样将得到一个新的网页,而不是继续保持原来的网页。要保持原来的网页,让javascript在原来的网页中继续运行,应该使用网页中的一个对象去连接web服务器,例如applet,论坛发帖也是一个不错的ajax应用。 在javascript可以直接使用一个XMLHttpRequest对象,来向Web服务器发送请求和接受Web服务器返回的结果,HTML、CSS、JavaScript、XMLHttpRequest等基本知识的结合使用就是Ajax。 接着通过一个简单的例子讲解了XMLHttpRequest的应用。 什么时候用Ajax,在一个页面中提交请求后,服务器回复的页面还是原来的,只是数据不同,或者是对页面中的某些字段提前进行校验。

讲解了jsonrpc这种Ajax框架的作用和运行原理,它封装了底层通讯和Javascript对象的序列化和反序列化。

jsonrpc的客户端的构造方法先向服务器发请求,获得有哪些对象和方法,然后将这些对象和方法增加到客户端对象上,所以,客户端可以调用jsonrpcclient.hello.sayHello这样的方法。有时间的话,参照这个写一个能动态向对象增加方法的实验例子。

根据王涛的提问,详细讲解url编码(大家对这块实际很糊涂,出乎我的意料!),为了便于大家理解,我先从 base64编码开始讲起,接着再讲url编码。

http://www.baidu.com/s?wd=ajax+%BF%F2%BC%DC&cl=3 reqeust.getParameter(“wd”)得到的不是ajax+%BF%F2%BC%DC串, getParameter返回的是一个字符串,java串是unicode码.怎样把ajax+%BF%F2%BC%DC串变成真正的串,是getParamter的内部问题了.但它内部实在是没有做得很好。因为HTTP协议中没有办法说明URL编码时的字符集编码,我预料在下一代的HTTP协议中应该增加这方面的功能。

想到一个学员面试时的考题:”a中b国”的GB2312编码是一个字节数组,从这个数组中识别出有几个字符?首先要明白英文字符的最高bit位为0,中文字符的最高bit位为1。示例代码: byte buf[] = “a中b国”.getBytes(“GB2312”); int count = 0; for(int i=0; i<buf.length; i++) { count++; if((buf[i] & 0x80) != 0) { i++; } }

因为梁言兵老师的项目中要用到jsp,我参照《深入体验Java Web开发内幕》的书稿给大家先简单过了一下jsp和jsp中如何使用JavaBean。注重强调了JSP的视图作用,尽量将jsp放在WEB-INF或其子目录中,why?JSP只作为视图组件,不要在其中编写业务逻辑,例如,不要访问数据库。但JSP页面中可以有显示逻辑。注意区分视图model和业务model的区别,用TreeMode来理解,业务模型给TreeMode,TreeMode给视图。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/194910.html原文链接:https://javaforall.cn