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.

&nbsp;表示空格

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);