http协议是一个无状态协议,通过http发送的各个请求之间没有关联,如何涉及到各个请求之间的数据传递?针对以上的需求,在servlet包含四种会话跟踪技术:
1、URL重写
http://localhost/pro/query?key=查询关键字&page=1&temp=0.932345987981273
2、隐藏域技术
<input type="hidden" name="id" value="1">
3、session
session是用于存储客户端和服务端一次会话信息一个缓存空间;session在servlet中是由HttpSession所表示,session的获取需要通过HttpServletRequest对象:
HttpSession session = request.getSession();
session.setAttribute("user",user);
session.setAttribute和request.setAttribute区别?
session能够保存一次会话的信息,只要浏览器不关闭,或者不到达session有效时长,存储在session中的数据会一直存在;request仅限于一次跳转(请求转发),跳转之后在下一个页面中可以获取传递的数据,但是如果后续的跳转未继续传递,则request范围的数据会被清理
session由于是存储在服务端的缓存空间,因此处于效率考虑,不应该向session中存储大量数据,session适用于存储少量的信息,并且