一,《session》
1.session是JSP内置对象,与浏览器一一对应,允许用户存储和提取会话状态的信息
2.session对象用来存储有关用户会话的所有信息
3.session对象常用方法:
类型
方法名称
说 明
void
setAttribute(String key,Object value)
以key/value的形式保存对象值
Object
getAttribute(String key)
通过key获取对象值
int
getMaxInactiveInterval()
获取session的有效非活动时间,以秒为单位
String
getId()
获取session对象的编号
void
invalidate()
设置session对象失效
4.每个session对象都与浏览器一一对应 重新开启一个浏览器,相当于重新创建一个session对象重新开启一个IE窗口,直接访问系统首页面 通过超链接打开的新窗口,新窗口的session与其父窗口的session相同
5.session的应用场合
(1).保存用户登入状态 用于判断用户是否登录
(2).后期建议直接保存User对象 就拿到了用户的(uid uname upwd urole)
(3).位于服务端 比较安全
从session中获取用户请求登录的信息
《代码演示》
提示:String name = (String)session.getAttribute("uname");这里强转的原因是Object是所有的祖先。
//从session中取值 取出用户的登录信息
String name = (String)session.getAttribute("uname");//根据键取得对应的值
//判断
if(name==null){//说明没有登录
response.sendRedirect("/JW06/login.jsp");
}
访问验证效果,步骤如下:
(1)直接在IE地址栏中输入URL,
(2)访问系统首页面 通过登录页面进入系统首页面
(3)重新开启一个IE窗口,直接访问系统首页面
《参考图》
如果验证失败,就返回登入界面
设置session的最大有效非活动时间 以秒单位
《代码演示》
session.setMaxInactiveInterval(10);
二,《Cookie》
提示:Cookie(属于类 需要实例化才能用)实现保存已访问的信息
1.什么是Cookie?
Cookie是Web服务器保存在客户端的一系列文本信息
2.Cookie的作用
(1)对特定对象的追踪
(2)统计网页浏览次数
(3)简化登录
3.安全性能
容易信息泄露
《Cookie的语法》
1.导入包:import="javax.servlet.http.Cookie"
2.创建Cookie
Cookie newCookie=new Cookie("parameter", "value");
提示:parameter:用于代表cookie的名称(key)
value:用于表示当前key名称所对应的值
3.写入Cookie
response.addCookie(newCookie)
4.设置Cookie属性的常用方法
类型
方法名称
说 明
void
setMaxAge(int expiry)
设置Cookie的有效期,以秒为单位
void
setValue(String value)
在Cookie创建后,对Cookie进行赋值
String
getName()
获取Cookie的名称
String
getValue()
获取Cookie的值
String
getMaxAge()
获取Cookie的有效时间,以秒为单位
从登录验证界面表单中获取用户
《代码演示》
提示:创建Cookie,使用response的addCookie方法保存Cookie
//使用Cookie判断用户是否登录
Cookie c = new Cookie("sname",name);// name ,value
//写入响应
response.addCookie(c);
在显示页面显示用户名
《代码演示》
提示:为什么要判空?因为数组或者对象很有可能为空 所以要进行判断
遍历完后为什么先写sname 为了防止空指针异常
Cookie[] cs = request.getCookies();
//假设法
boolean f = false;//假设没有登录
if(cs!=null){
//遍历
for(Cookie c:cs){//数组或者集合的数据类型 变量名:集合或者数组名
if("sname".equals(c.getName())){//说明登录了 令牌对了
f=true;
}
}
}
if(f==false){
response.sendRedirect("/JW06/login.jsp");
}
补充:设置Cookie的有效期 时间自定义
《代码演示》
//一周内免登录
c.setMaxAge(60*60*24*7);
总结:Cookie与session的比较
(1)session是在服务器端保存用户信息,Cookie是在客户端保存用户信息
(2)session中保存的是对象,Cookie保存的是字符串 session随会话结束而关闭, Cookie可以长期保存在客户端
(3)Cookie通常用于保存不重要的用户信息,重要的信息使用session保存