Java学习笔记(8)
来源:互联网 发布:skew symmetric 矩阵 编辑:程序博客网 时间:2024/05/22 14:20
1.Ajax
Ajax被认为是(Asynchronous JavaScript and XML的缩写)。允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做Ajax。一种不用刷新整个页面便可与服务器通讯的办法。不用刷新整个页面便可与服务器通讯的办法: Flash Java applet 框架: 如果使用一组框架构造了一个网页,可以只更新其中一个框架,而不必惊动整个页面 隐藏的iframe XMLHttpRequest: 该对象是对 JavaScript 的一个扩展,可使网页与服务器进行通信。是创建 Ajax 应用的最佳选择。实际上通常把 Ajax 当成 XMLHttpRequest 对象的代名词 ,是最佳选择
2.XMLHttpRequest
创建XMLHttpRequest对象: new XMLHttpRequest();方法: open("method", "url"): 建立对服务器的调用。Method参数可以是GET、POST、PUT。url参数可以是相对URL或绝对URL send(content): 向服务器发送请求 setRequestHeader("header", "value"): 指定首部设置为所提供的值。在设置任何首部之前必须调用open()XMLHttpRequest属性: 事件 触发时机 onreadystatechange 每个状态改变是都会触发这个事件处理器,通常会调用一个JavaScript函数 readyState 请求的状态,有5个可取值:0未初始化,1正在加载,2已经加载,3交互中,4完成 responseText 服务器的响应,表示为一个串 responseXML 服务器的响应,表示为XML。这个对象可以解析为DOM对象 status 服务器的HTTP状态码: 常用状态码及其含义: 404 没找到页面(not found) 403 禁止访问(forbidden) 500 内部服务器出错(internal service error) 200 一切正常(ok) 304 没有被修改(not modified)onreadystatechange: -该事件处理函数由服务器触发,而不是用户 -在 Ajax 执行过程中,服务器会通知客户端当前的通信状态。这依靠更新 XMLHttpRequest 对象的 readyState 来实现。改变 readyState 属性是服务器对客户端连接操作的一种方式。每次 readyState 属性的改变都会触发 readystatechange 事件1.如果用 POST 请求向服务器发送数据,需要将 “Content-type” 的首部设置为 “application/x-www-form-urlencoded”.它会告知服务器正在发送数据,并且数据已经符合URL编码了。2.每次 readyState 值的改变,都会触发 readystatechange 事件。3.readyState 值的变化会因浏览器的不同而有所差异。但是,当请求结束的时候,每个浏览器都会把 readyState 的值统一设为 4
3.数据格式提要
服务器端的编程语言只能以如下 3 种格式返回数据: -XML -JSON -HTML解析 HTML: 1.HTML 由一些普通文本组成。如果服务器通过 XMLHttpRequest 发送 HTML, 文本将存储在 responseText 属性中。JSON: JSON(JavaScript Object Notation): 一种简单的数据格式,比xml更轻巧。JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。 JSON的规则很简单: 对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。 1.JSON 只是一种文本字符串。它被存储在 responseText 属性中 2.为了读取存储在 responseText 属性中的 JSON 数据,需要根据 JavaScript 的 eval 语句。函数 eval 会把一个字符串当作它的参数。然后这个字符串会被当作 JavaScript 代码来执行。因为 JSON 的字符串就是由 JavaScript 代码构成的,所以它本身是可执行的 例如: var testStr = "alert('hshs')"; eval(testStr); 倘若是json字符串: var jsonStr = "{'name':'Cooler_Wu'}"; var a = eval("(" + jsonStr + ")"); alert(a.name) 3.优点: -作为一种数据传输格式,JSON 与 XML 很相似,但是它更加灵巧。 -JSON 不需要从服务器端发送含有特定内容类型的首部信息。 4.格式: var jsonObject = { "name":"Cooler_Wu", "age":"20", "address":{"city":"CQ","school":"FMS"}, "teaching":function(){ alert("JavaEE"); } }; 获取对象: alert(jsonObject.age); alert(jsonObject.address.city); jsonObject.teaching(); 1.JSON 用冒号(而不是等号)来赋值。每一条赋值语句用逗号分开。整个对象用大括号封装起来。可用大括号分级嵌套数据。 2.对象描述中存储的数据可以是字符串,数字或者布尔值。对象描述也可存储函数,那就是对象的方法。 3.若应用程序不需要与其他应用程序共享数据的时候, 使用 HTML 片段来返回数据时最简单的 4.如果数据需要重用, JSON 文件是个不错的选择, 其在性能和文件大小方面有优势 5.当远程应用程序未知时, XML 文档是首选, 因为 XML 是 web 服务领域的 “世界语”
4.jQuery 中的 Ajax
1.jQuery 对 Ajax 操作进行了封装, 在 jQuery 中最底层的方法时 $.ajax(), 第二层是 load(), $.get() 和 $.post(), 第三层是 $.getScript() 和 $.getJSON()load() 方法: 1.load() 方法是 jQuery 中最为简单和常用的 Ajax 方法, 能载入远程的 HTML 代码并插入到 DOM 中. 它的结构是: load(url[, data][,callback]) 2.传递方式: load() 方法的传递参数根据参数 data 来自动自定. 如果没有参数传递, 采用 GET 方式传递, 否则采用 POST 方式 3.对于必须在加载完才能继续的操作, load() 方法提供了回调函数, 该函数有三个参数: 代表请求返回内容的 data; 代表请求状态的 textStatus 对象和 XMLHttpRequest 对象$.get() (或$.post()) 方法: 1.$.get() 方法使用 GET 方式来进行异步请求. 它的结构是: $.get(url[, data][, callback][, type]); 2.$.get() 方法的回调函数只有两个参数: data 代表返回的内容, 可以是 XML 文档, JSON 文件, HTML 片段等; textstatus 代表请求状态, 其值可能为: succuss, error, notmodify, timeout 4 种. 3.$.get() 和 $.post() 方法时 jQuery 中的全局函数, 而 find() 等方法都是对 jQuery 对象进行操作的方法 4.url为网址,args为json类型参数{"userName":val, "time":new Date()}; $.get(url, args, function(data){ var name = $(data).find("name").text(); var email = $(data).find("email").text(); var website = $(data).find("website").text(); })用于xml $.post(url, args, function(data){ var name = $(data).find("name").text(); var email = $(data).find("email").text(); var website = $(data).find("website").text(); })用于xml $.getJSON(url, args, function(data){ var name = data.person.name; })//获取js,json变量 $.get(url, args, function(data){ var name = data.person.name; },"JSON")获取js,json变量
5. ../script中的..是上一级目录,相对路径
${pageContext.request.contextPath}绝对路径
6.jQuery支持方法连缀,意思就是可以一直a.find().find().find()
7.mailto:
HTML e-mail 链接mailto 链接一般是写在herf当中的 <a href="mailto:name@email.com">Email</a>
8.序列化元素
1.jQuery 为准备 “发送到服务器的 key/value 数据” 提供了一个简化的方法: serialize(). 该方法作用于一个 jQuery 对象, 能将 DOM 元素内容序列化为字符串, 用于 Ajax 请求.2.使用 serialize() 方法可以自动完成对参数的 url 编码3.因为该方法作用于 jQuery 对象, 所以不光只要表单能使用, 其它选择器选取的元素也能使用它.
9.验证日期
进行日期验证(包括格式和闰二月),用输入日期后,通过 onchange 事件给出相应的提示信息
10.在表单中可以这样获取
$(":input[name='username']")
11.trim
这是一个很常见的函数,他的所用是去掉字符序列左边和右边的空格
12.Arrays.asList()
该方法是将数组转化为list.有以下几点需要注意: (1)该方法不适用于基本数据类型(byte,short,int,long,float,double,boolean) (2)该方法将数组与列表链接起来,当更新其中之一时,另一个自动更新 (3)不支持add和remove方法List<String> str = Arrays.asList("AAA", "BBB", "CCC");
13.html()
html() 方法设置或返回被选元素的内容(innerHTML)。当该方法用于返回内容时,则返回第一个匹配元素的内容。当该方法用于设置内容时,则重写所有匹配元素的内容。提示:如只需设置或返回被选元素的文本内容,请使用 text() 方法。
14.contains()
方法返回true,当且仅当此字符串包含指定的char值序列
15.response.geWriter().print(msg)
msg是一个字符串的话,就会显示一个字符串,如果是HTML代码的话,前台得到的就是HTML代码,具体怎么去显示给客户,浏览器会自动处理的.不需要我们关心.
16.
表示空格
17.int = Integer.parseInt(Integer);
18.StringBuilder与 StringBuffer
StringBuilder:线程非安全的StringBuffer:线程安全的 当我们在字符串缓冲去被多个线程使用是,JVM不能保证StringBuilder的操作是安全的, 虽然他的速度最快,但是可以保证StringBuffer是可以正确操作的。 当然大多数情况下就是我们是在单线程下进行的操作, 所以大多数情况下是建议用StringBuilder而不用StringBuffer的,就是速度的原因。
19.从服务器端返回的JSON字符串 属性名必须用双引号”“,可用转义字符\
20.JSON的setContentType是(“text/javascript”);
21.sessionScope整体的意思是获得存放在session.setAttrbute(key,value)的值即session.getAttribute(key);
22.Jackson
Jackson 高性能的JSON处理 android/移动开发必备jackson1.加入jar包: jackson-annotations-xx.jar jackson-core-xx.jar jackson-databind-xx.jar2.创建org.codehaus.jackson.map.ObjectMapper对象3.调用ObjectMapper对象的writeValueAsString方法把Java对象或集合转为JSON字符串 例如: ObjectMapper mapper = new ObjectMapper(); mapper.writeValueAsString(Class person);4.注意: 1.JackSon使用getter方法定位JSON属性,而不是字段 2.可以通过添加注解@JsonIgnore忽略某一个getter定义的属性,再转为JSON对象时忽略该属性
23.display:none 隐藏
24.BlockUI
$(document).ajaxStart(function(){ $.blockUI({ message:$('#loading'), css:{ } })}).ajaxStop($.unblockUI);
阅读全文
0 0
- Java学习笔记8
- java学习笔记8
- Java学习笔记8
- Java学习笔记(8)
- Effective Java 学习笔记(8)
- Effective Java 学习笔记(8)
- java学习笔记(8)
- Java学习笔记<8>线程
- java基础学习笔记8
- java基础学习笔记8
- Java 8 Lambda 学习笔记
- Java 8 实战学习笔记
- Java学习笔记--CSS笔记
- 《Effective Java》学习笔记8-线程
- Java学习笔记18天---(8)
- 孙鑫JAVA学习笔记7-8
- Java SE 学习笔记 Lesson 8
- Java学习笔记8 关于策略模式
- 剑指offer--顺时针打印矩阵
- JSP实现分页,动态生成页码,解决页码显示过多问题
- 一个简单的webmagic爬虫 demo
- OpenCV4Android中的图像旋转另一方法
- 44.Oracle杂记——Oracle常用动态视图v$latch_children
- Java学习笔记(8)
- 【POJ
- ViewPager+Fragment出现android.os.TransactionTooLargeException的坑!!!
- 45.Oracle杂记——Oracle常用动态视图v$system_event
- POJ 3415 Common Substrings
- Educational Codeforces Round 31
- js数组操作的一些方法在面试题的使用
- 回文质数
- Spring MVC 导出EXCEL