1.get()和post()区别:
(1).get请求会将参数放在URL之后进行传递,而post方式是作为http消息实体发送给Web服务器,但是,这种区别在ajax中对用户是不可见的。
(2).get请求方式对传输的数据有大小限制,通常不能大于2KB,而是用post的方式一般不受限制。
(3).get请求的数据会被浏览器缓存起来,因此其他人就可以通过浏览器的历史记录读取这些数据,例如帐号密码等,严重的可能会带来安全问题,而post方式相对就可以避免这些问题。
(4).get方式和post方式传递的数据在服务器端获取的方式也可能不相同,如php,$_GET[]获取get请求,$_POST[]获取post请求。但是JSP是相同的。
(5).get请求提交的速度要比post速度快,但不是差异特别大,在对速度要求比较苛刻的条件下,如搜索引擎,对搜索请求就会采用get方式提交。
(6).HTTP/1.1协议规定了八种请求方式,分别是:options,head,get,post,put,delete,trace,connect,但get和post方式是使用最多的方式。
2.jQuery解析xml和json注意事项:
在使用新版本的jQuery(1.7.2,不是很清楚到底从哪个版本开始这样规定的)采用$.get()解析xml数据时,通常js文件中书写的方式是:
$.get("jsp/get2.jsp",{ "username":encodeURI($("#username").val()), "content":encodeURI($("#content").val()) },function(data, textStatus){ var username = $(data).find("comment").attr("username"); var content = $(data).find("comment content").text(); username = decodeURI(username); content = decodeURI(content); var txtHtml = "<div class='comment'><h6>"+username+":</h6><p class='para'>"+content+"</p></div>"; $("#resText").html($("#resText").html()+txtHtml); },"xml");
服务器端(JSP)需要返回一个XML文件或者构建出一个XML文件,方式如下:
<%@page contentType="text/xml" language="java" pageEncoding="UTF-8" import="java.util.Date,java.text.SimpleDateFormat"%> <% response.setContentType("text/xml"); String username = request.getParameter("username"); String content = request.getParameter("content"); //需要注意的是下面的标记不需要了,带上的话就会报错了 //out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); if(content!=null && !content.trim().equals("")){ if(username==null || username.trim().equals("")){ username = "匿名人士"; } Date now = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); out.println("<comments>"); out.println("<comment username=\""+username+" 发表于 "+sdf.format(now)+"\">"); out.println("<content>"+content+"</content>"); out.println("</comment>"); out.println("</comments>"); } %>
?需要注意的内容已经在注释中标记出来了,不然的话浏览器会报出XML文件解析失败的错误。
json文件的解析重点注意的是服务端,js代码如下:
//重要!!!在新版本的jQuery中,采用了更为严格的json解析方式,所以所有内容都必须要有双引号。 //必须形如:{"key" : "28CATEGORY","status" : "0"} $("#send3").click(function(){ $.get("jsp/get3.jsp",{ "username":encodeURI($("#username").val()), "content":encodeURI($("#content").val()) },function(data, textStatus){ var username = data.username; var content = data.content; username = decodeURI(username); content = decodeURI(content); var txtHtml = "<div class='comment'><h6>"+username+":</h6><p class='para'>"+content+"</p></div>"; $("#resText").html($("#resText").html()+txtHtml); },"json"); });
?按照上述的注意说明,JSP代码应该为:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String username = request.getParameter("username"); String content = request.getParameter("content"); out.println("{ \"username\" : \""+username+"\" , \"content\" : \""+content+"\"}"); %>?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?