一次请求
- servlet容器只初始化一个servlet(一类一个)
- 一次请求产生一个requese response,转发也在请求过程中
拦截顺序和映射顺序一致
- Filter 链中各个 Filter (包括servlet)的拦截顺序与它们在 web.xml 文件中元素的映射顺序一致
编码
- http请求
- 浏览器端默认编码GB2312
- http请求分为url和消息体,url编码特殊
- 浏览器编码,meta charset=“UTF-8”
- 服务器解码,setCharacterEncoding()只对消息体有效,设置解码方式。
- http请求应答
- 服务器编码,setCharacterEncoding()
- 浏览器解码,http头控制或setContentType()
- 请求的方式不同,采用了不同的乱码解决方式。
- POST 方式的请求参数存放在消息体中,所以通过meta charset="UTF-8"设置编码方式,通过 setCharacterEncoding() 方法设置解码方式
- GET 方式的请求参数存放在消息头中,不起作用
编码参考
- Http请求和响应的编码问题
https://blog.csdn.net/qq_38409944/article/details/80637980 - new String(getBytes(ISO-8859-1),UTF-8)中文编码避免乱码
https://blog.csdn.net/qq_28863045/article/details/79503945
http的长连接和短连接
- http只有短连接,即一次请求一次应答。
- http长连接指tcp链路复用
- https://www.jianshu.com/p/3fc3646fad80
HttpSession详解
https://www.cnblogs.com/myseries/p/11588267.html
函数
- String(byte[], decode)实际是使用decode指定的编码来将byte[]解析成字符串
- String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组
- String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示