cookie和session的简单使用

有时我们访问网页时需要保存一些数据,但一般情况下数据是不会保存的,这是我们就需要用到cookie和session了. 客户端(一般是浏览器)与服务器之间的交互,将操作所涉及的数据记录下来,保存在cookie(保存在浏览器客户端)或者session(保存在服务器)中。

一  、Cookie:

1 、创建 cookie

Java中的cookie是一个类,可以通过创建对象的方式创建一个cookie对象,然后调用response的addCookie()方法将其加载进response域

Cookie cookie = new Cookie(String name,String value);
response.addCookie(cookie);

cookie的name不可以重复,和Map集合类似,当有重复的name的时候,会替代。使用这个特性可以对cookie进行修改和删除

2 . 修改Cookie

比如要修改一个name为id的cookie值为value

Cookie cookie = new Cookie("id",value);
response.addCookie(cookie);

3、查询cookie

可以获取cookie的name和value

//如果没有 cookie,则返回 null。
Cookie[] cookies = request.getCookies();
String name = cookie.getName();
String value = cookie.getValue();

4、cookie 的保存时间

cookie.setMaxAge(int seconds);//单位为秒

seconds > 0        浏览器会将 cookie 以文件的方式保存在硬盘上。在超过指定的时间以后,会删除该文件。

 seconds < 0        默认值,浏览器会将 cookie 保存在内存里面。叧有当浏览器关闭以后,才会删除。

seconds = 0        立即删除该 Cookie

5. 删除 cookie

比如要删除一个 name 为”username”的 cookie。

Cookie c = new Cookie(“username”,”“);

c.setMaxAge(0);

cookie.setPath(request.getContextPath());//路径

cookie 的路径必须是要访问的路径的上层目录戒者是不要访问的路径相等, 浏览器才会将 cookie 发送给服务器。一般可以设置 setPath(“/appname”),表示访问该应用下的所有地址,均会发送

response.addCookie(c);

6、cookie 的限制

 cookie 可以禁止

 cookie 的大小有限制(4k 左右)

 cookie 的数量也有限制(浏览器大约能保存 300 个)

 cookie 的值叧能是字符串,要考虑编码问题。

 cookie 不安全


二 、session:

1 . 获取session对像

HttpSession session = request.getSession();

2 、HttpSession 接口提供的一些方法

//获得 sessionId。
String session.getId();
//绑订数据
session.setAttribute(String name,Object obj);
//获取数据
Object session.getAttribute(String name);
//删除绑定
session.removeAttribute(String name);

3 、session保存时间设置

服务器会将超过指定时间的 session 对象删除(在指定的时间内,该 session 对象没有 使用)。

两种设置方式:

方式一:

     session.setMaxInactiveInterval(int seconds);

方式二: 服务器有一个缺省的超时限制,可以通过相应的配置文件来重新设置。比如可以修改 tomcat 的 web.xml(tomcat_home/conf 下面)。

<session-config>
    <session-timeout>30</session-timeout>
</session-config>

另外,也可以叧修改某个应用的 web.xml。

4 、session删除

session.invalidate();


三 、 我的简单应用

cookie:

一般来说我们经常会在网站登录时使用cookie , cookie可以用来记住密码等操作.

 以下就是我写的一个cookie的使用,用来记住密码:

String name = request.getParameter("userName");//获取用户名
String password = request.getParameter("passWord");//获取密码
String rememberPassWord = request.getParameter("rememberPassWord");//获取记住密码是否勾选
String remember = name+"#"+password ;
		if("on".equals(rememberPassWord)){//若勾选记住密码
			Cookie c = new Cookie("REMEMBER",remember );//新建一个Cookie,保存用户名和密码
			c.setMaxAge(60*60*24*30);
			c.setPath("/");
			response.addCookie(c);
		}else{//若没有勾选记住密码
			Cookie c = new Cookie("REMEMBER",null );//删除Cookie
			c.setMaxAge(0);
			c.setPath("/");
			response.addCookie(c);
		}

session:

一般来说我们登陆一个网站时需要登录,如果不进行登录,许多操作都不能完成 , 会自动跳转到登录界面 . 我们可以使用session, 在session中写入用户信息 , 然后在过滤器中判断是否已经登录.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值