JavaWeb cookie session application
标签(空格分隔): JavaWeb day03 cookie session application
Cookie
- what cookie
Cookie 是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息。 - 应用 cookie 场景
Cookies最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是Cookies的功用。另一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入Cookies,以便在最后付款时提取信息。 - cookie
每个浏览器都有单独的cookie该文件没有封装所有的都能访问,所以这是不安全的,cookie中保存的是key-value键值对,保存的都是String类型,并进行加密,但是也是非常的不安全。
常用的方法
◼添加数据
public void addCookie(Cookie cookie)
◼获取数据
public Cookie[] getCookies()
◼设置有效期
public void setMaxAge(int expiry)
参数的单位是秒 而不是毫秒
◼用户可以禁用cookie
在登入界面需要创建cookie
//创建cookie
//设置key-value key为cu_name name从文本框获取
Cookie cookie = new Cookie("cu_name",name);
//设置生命周期
cookie.setMaxAge(600);
//在客户端添加cookie
response.addCookie(cookie);
//读取cookie
//cu_name 給界面账号文本框赋值
String cu_name = "";
Cookie[] cookies = request.getCookies();
if(cookies!=null && cookies.length>0){
for(Cookie c:cookies){
if("cu_name".equals(c.getName())){
cu_name=c.getValue();
}
}
}
//删除cookie
Cookie cookie = new Cookie("cu_name","");
cookie.setMaxAge(0);
response.addCookie(cookie);
response.sendRedirect("/JavaWeb/day02/index.jsp");
删除cookie两种方法
在对new 相同key的cookie 再将生命周期设置为0添加会覆盖原来的cookie
遍历循环cookie选中需要操作的cookie并进行操作设置有效期
session
- what session
计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。 - session作用域
将所需要的属性在服务器中开辟地址储存只要不关闭会话框就能访问同一个session属性,开启一个浏览器对话框就会存在唯一的session id,可以将对服务器读取属性,服务区并不会知道你什么时候结束会话,所以服务器规定一定的时间没有操作会重写发送一个session id,和舍弃原来的id,只要不关闭浏览器就一直存在 - 常用方法
◼void setAttribut(String,Obeject)//设置属性 属性名和属性类型
◼Object getAttribut(String) //获取属性 属性名 需要强转 - 方法的使用
session.setAttribute("cu_name", name);
String name = (String)session.getAttribute("cu_name");
application
- what· application
该对象代表web应用本身,整个web应用共享一个application对象,该对象主要用于在多个JSP页面或者Servlet之间共享变量。application通过setAttribute()方法将一个值放入某个属性,该属性的值对整个Web 应用有效,因此Web 应用的每个JSP 页面或Servlet都可以访问该属性,访问属性的方法为getAttribute - 作用域
只要服务器不关机不管是不是同一个会话,不管是不是同一个浏览器,都能对这个属性进行操作并且保存影响 - 常用方法
◼void setAttribut(String,Obeject)//设置属性 属性名和属性类型
◼Object getAttribut(String) //获取属性 属性名 需要强转
Integer visit = (Integer)application.getAttribute("visits");
if(visit==null){
application.setAttribute("visits", 100000);
visit = 100000;
}else{
int rands = (int)(Math.random()*1000);
application.setAttribute("visits", rands+visit);
}
三者区别
session 和 cookie
cookie 是文档脚本所以读取的是String
session 是在服务端对内存的操作所以,session是有数据类型的
session 和 application
session 作用域是会话,用session id标识
application 作用域是应用程序