jsp中Get 跟 Post 的区别

jsp中Get 和 Post 的区别
Get 和 Post 的区别好像比我想象中的大,最近在使用 Tomcat 进行开发的过程中至少发现三点:



一、这两者传递参数时所用的编码不一定是一样的。
在 Tomcat 中似乎 Get 的编码方式是根据页面中指定的编码方式,可在 Tomcat 的 server.xml 中配置,而post提交则可以在servlet中设置request.setCharacterEncoding("utf-8")设置编码。



二、使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。



所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。

三、
post请求无长度限制(至少是理论上的)

get有长度限制,最长不超过2048字节(1024个汉字)




他们传递参数的时候编码不一样,get方式不进行编码直接进行传递,所以别人可以看见你的传递内容(当然可以采取措施避免用户看到内容,比如用Javascript动态组织URL),post方式是经过编码传输的,而且不存在特殊字符传递出错问题

同时

通过get方法提交数据,可能会带来安全性的问题。比如一个登陆页面。当通过get方法提交数据时,用户名和密码将出现在URL上。如果:

1、 登陆页面可以被浏览器缓存;

2、 其他人可以访问客户的这台机器。

那么,别人即可以从浏览器的历史记录中,读取到此客户的账号和密码。所以,在某些情况下,get方法会带来严重的安全性问题。



建议 :在Form中,建议使用post方法。