JavaWeb07(session&Cookie)

一,《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保存

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值