get和post区别
-
get请求
get提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连
get方式明文传递,数量小,不安全
效率高,浏览器默认请求方式为GET请求
对应的Servlet的方法是doGet -
post请求
post方法是把提交的数据放在HTTP的Body中
密文传递数据,数据量大,安全
效率相对没有GET高
对应的Servlet的方法是doPost
Cookie的使用
- Cookie是在浏览器访问服务器某个资源时,由web服务器在HTTP响应消息头中附带传送给浏览器的一小段数据(一旦在客户端浏览器保存了某个Cookie,那么在之后的访问,从客户端的HTTP请求头中将这个Cookie回传给服务器端)
- 创建Cookie
//创建Cookie,对应服务器编码为UTF-8
Cookie cookie = new Coookie(URLEncode.encode("姓名","UTF-8"),URLEncode("小明","UTF-8"));
cookie.setPath("/webs");//设置Cookie的可访问路径
cookie.setMaxAge(-1);//内存存储,取值有三种:>0有效期,单位秒;=0浏览器关闭;<0内存存储,默认-1(Cookie的存活时间)
response.addCookie(cookie);//添加到response对象中,响应时发送给客户端,有效路径:当前访问资源的上一级目录,不带主机名
- 获取Cookie
//获取所有的Cookie,对应解码为UTF-8
Cookie[] cks = req.getCookies();
for (Cookie cookie : cks){
String name = URLDecoder.decode(cookie.getName(),"UTF-8");
String value = URLDecoder.decode(cookie.getValue(),"UTF-8");
System.out.println(name+"++"+value);
}
- 修改Cookie
原则:只需要保证Cookie的命名和路径保持一致,即可覆盖。 - Cookie的优缺点
优点:数据持久性、简单性、可配置到期规则
缺点:大小受限制、用户可配置Cookie禁用、存在潜在的安全风险