get方式与post方式:
get方式与post方式:
- get方式提交最大能提交8192个字符,执行效率高,但不安全;pos方式t提交没有大小限制,效率比get低,安全
- post是传输信息内容,get是传输url值
GET -- 这是缺省方式,填充form的内容将被附在 URL 的后面,就好象它是一个普通的查询请求.
POST -- 这种方式把 form 的内容放在HTTP 请求的消息实体中发送给服务器,而不是作为 URL 的一部分.
- POST 在HTTP请求的主体内 Request.Form读取数据. GET 标识在URL的最后 Request.QueryString读取数据 GET 有一个缺点就是URL字符的长度被浏览器及服务器使用时有一些限制, 还有一个就是把HTTP请求中通过WEB传递的数据暴露出来
自从Tomcat5.x开始,GET和POST方法提交的信息,Tomcat采用了不同的方式来处理编码,对于POST请求,Tomcat会仍然使用request.setCharacterEncoding方法所设置的编码来处理,如果未设置,则使用默认的iso-8859-1编码。而GET请求则不同,Tomcat对于GET请求并不会考虑使用request.setCharacterEncoding方法设置的编码,而会永远使用iso-8859-1编码
即使你的页面设置了
<%@page language="java" pageEncoding="utf-8" %>
<%@page language="java" pageEncoding="utf-8" %>
使用get方式,name、表单等数据会附在URL 请求里面,pageEncoding只对POST实体起作用,对URL不起作用,所以jsp页面传递的时候URL仍然使用ISO-8859-1编码,如果URL中包含中文,就会产生乱码
$.ajax({//默认 type:'get'
url:url,
async: false,
data:{time:(new Date()).toString(),name:name},
success: function(result){
$("#main").html(result);
}
});
解决这种乱码问题可以对name进行加密,需要的时候在进行解密
name:encodeURI(encodeURI(name))
在新的jsp中进行解密
<%@ page import="java.net.URLDecoder"%>
var name= '<%=URLDecoder.decode(request.getParameter("name"), "UTF-8")%>';
....