必备知识,http协议是什么,可以自行百度。
request和response都是操作HTTP协议的,先来看看源码
可以看到 HttpServlet 继承的体系,再次查看方法源码:
可以看到有doGet方法等等,打开源码可以自行理解,阅读解释,没啥好说的,不懂得可以直接百度翻译。
当继承HttpServlet 时会重写doGet方法,这里面有两个参数;
参数一:HttpServletRequest req
看名字定义可以知道他的父类多半ServletRquest,至于作用这里我也不贴图了,解释略,请自行查看源码。
打开HttpServletRequest 方法
可以看到上图,request可以得到 cookie 和session 的内容,所以为何我上一节写 cookie 和session的区别,原因在此。
同理,这里只分析了request,还有response对象,一样的方法。
可以看到第一个方法就是添加cookie,文章开篇就讲过,request和response是操作HTTP协议的,获取请求头,设置编码url,设置状态码。
对比一下可以知道
request : 获取cookie 和session 的相关操作,获取请求的sessionID,改变id,是否有效;
response: 添加 cookie ,重定向,添加/设置(日期)响应头/状态码,
关于request 域对象,下面摘自源码解释:
This allows information to be embedded into a request before a {@link RequestDispatcher} call.
可以看得出来这段英文意思很直白,在调用之前,允许信息被嵌入request对象,查看方法源码,下面上图:
可以看到,set/get 属性、字符集、参数。意思很明显,也不细讲,具体自己去查看源码。