1.修改统一请求的编码request
get方式:
- 统一每一个变量的编码
- string= new string(string.fetbytes(“ios-8859-1”),“utf-8”);
- 修改server.xml,一次性的,更改tomcat默认get提交的编码方式
- Connector中,加入 URIencoding=“UTF-8”
post方式:
- Connector中,加入 URIencoding=“UTF-8”
- request.setCharacterEncoding(“utf-8”);
区别一:语义上的区别
1、Get向服务器请求数据。依照HTTP协议,get 是用来请求数据。
2、Post向服务器发数据。依照HTTP协议,Post的语义是向服务器添加数据,也就是说按照Post的语义,该操作是会修改服务器上的数据的。
区别二:服务器请求的区别
1、Get请求是可以被缓存的,举个例子,你访问baidu.com,就是向baidu的服务器发了个Get请求,这个请求的返回,也就是baidu的主页页面内容,会被缓存在你浏览器中,短时间再次访问,其实是拿到的浏览器中的缓存内容。另外Get请求只能接收ASCII码的回复
2、Post请求是不可以被缓存的。对于Post方式提交表单,刷新页面浏览器会弹出提示框 “是否重新提交表单”,Post可以接收二进制等各种数据形式,所以如果要上传文件一般用Post请求。
向左转|向右转
区别三:参数放请求头和请求体的差别
1、Get请求通常没有请求体(当然这也是可以由程序猿心情改变的),在TCP传输中只需传输一次(而不是一个包),所以Get请求效率相对高。
2、Post请求将数据放在请求体中,而实际传输中,会先传输完请求头,再传输请求体,是分为两次传输的(而不是两个包)。Post请求头会比Get更小(一般不带参数),请求头更容易在一个TCP包中完成传输,更何况请求头中有Content-Length的标识,可以更好地保证Http包的完整性。
2.请求转发与重定向的区别
对比项目 | 请求转发request | 重定向 response.sendRedirect() |
---|---|---|
地址栏是否改变 | 不变(校验的地址) | 改变(重定向到的地址) |
是否保留第一次请求时得数据 4种范围对象 | 保留 | 不保留 |
请求的次数 | 1次(像是门诊看病,直接去见大夫) | 2次(去医院看病,先挂号,后见大夫) |
转发:客户端-》(服务端a-》服务端b)-》客户端
重定向:客户端-》服务端a-》客户端-》服务端b-》客户端
3.session与cookie
session(服务端)
Cookie(客户端,不是内置对象):是由服务端产生,再发送给客户端保存。
相当于本地缓存的作用:客户端->服务端(hello.mp4)
作用:提高访问服务端的效率,但是安全性较差。
cookie:key=value
Javax.servlet.http.cookie
public Cookie(string name , string value)
string getName():获取name
string getvalue():