一、 get和post的区别
- get支持缓存;post不支持缓存
- get参数保存在url;post保存请求体
- get有长度限制;post无长度限制
- get没有请求体,post有请求体
- Tomcat8以后 get请求不会乱码 POST请求发送参数要设置请求头才不会乱码
二、 HTTP中重定向和请求转发的区别
请求转发是服务器行为,重定向是客户端行为。
请求转发只能将请求转发给同一个web应用下的其他页面
重定向不仅可以将请求转发给同一个web应用下的其他页面,还可以转发到其它站点的
页面
请求转发是一次请求,重定向是两次请求
请求转发地址栏url不会发生变化,重定向地址栏url会发生变化
forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等
三、 请求中获取参数的三个方法
- String getParameter(String name):根据参数名称获取参数值
- String[] getParameterValues(String name):根据参数名称获取参数值的数组
- Map getParameterMap():获取所有参数Map集合
四、 作用域与操作作用域的方法
作用域: pageContext,request,session,application作用域范围从小到大
pageContext:当前页面有效 (页面跳转后无效)
request:同一次请求有效(请求转发后有效;重定向后无效)
session:同一次会话有效(关闭/切换浏览器后无效 ; 默认30分钟有效期)
appliation:全局有效 (切换浏览器 仍然有效) 服务器开着就有效
作用域共有方法:
- Object getAttribute(String name): 根据属性名,获取属性值
- void setAttribute(String name,Object obj): 设置属性值(新增,修改)
- setAttribute(“a”,”b”) : 如果a对象之前不存在,则新建一个a对象; 如果a之前已经存在,则将a的值改为b
- void removeAttribute(String name):根据属性名,删除对象