session,cookie、application对象
session对象
Session称为一次会话,浏览器的打开及关闭。例如:登录淘宝之后,在该浏览器上无论打开的哪个页面都属于一次会话(不需要登录了)
//login.jsp <% String errMsg = ""; //登录页面可能会被打开多次 Object object = session.getAttribute("errMsg"); if(object != null){ //从登录失败后跳转过来的 errMsg = (String)object; } %> 错误信息:<%=errMsg%> //contorl.jsp <% //对用户名及密码进行验证(操作数据库) if("admin".equals(uname) && "admin".equals(pwd)){ //将用户的用户名存储起来作为登录成功的标识 session.setAttribute("uname",uname); //设置session的失效事件(单位:秒) session.setMaxInactiveInterval(3); //登录成功,跳转个人中心 response.sendRedirect("person.jsp"); }else{ //通过session储存错误信息 session.setAttribute("errMsg","用户名或密码错误"); //返回登陆界面,并提示错误信息 response.sendRedirect("login.jsp"); } %>
cookie对象
cookie是在本地进行数据存储的对象,访问速度快、效率高但是不安全
Cookie生效时间
1.值为正数时,代表了cookie的存活时长(秒为单位) 2.值为0时,代表立即清除cookie 3.值为负数时,代表cookie的生命周期与当前会话一致
<% Cookie nameCookie = new Cookie("name",name); //设置cookie的生效时间setMaxAge() 秒 nameCookie.setMaxAge(10);//存活十秒 response.addCookie(nameCookie); %>
cookie对象跟session对象的区别
1.session是存储在服务端的,Cookie是存储在客户端
2.session数据安全,Cookie数据不安全
3.session效率较低,Cookie效率相对较高
application对象
application是全局作用域对象,也称为web的上下文对象,通常用于存储一些全局参数
<% //设置默认的阅读量 int count = 0; //先从全局作用域中获取存储的已访问的数量 Object obj = application.getAttribute("count"); if(obj != null){ //不能直接用int接受需要用引用数据类型 Integer count = (Integer)object; } count++; //将最新的阅读量存储到全局作用域中 application.setAttribute("count",count); %>
下一篇:
Spring源码解析(一):环境搭建