Cookie技术

Cookie 核心技术

核心: Cookie类(用于存储会话数据,会话数据保存在浏览器客户端)

1、Cookie(String name,String value)构造方法
2、设置Cookie

void setPath(String uri)	//设置Cookie的有效访问路径
void setMaxAge(int expiry)		//设置Cookie的有效访问时间
void setValue(String new vlaue)		//设置Cookie值
void response.getCookie(Cookie c)	//发送Cookie到浏览器保存
Cookie[] request.getCookies()		//接受Cookie

Cookie的原理
1、服务器创建Cookie对象,把绘画数据存储到Cookie对象中
2、服务器发送信息到浏览器 setCookie:name=eric(隐藏发送了一个set-Cookie名称的响应头)
3、浏览器得到服务器发送的Cookie,然后保存在浏览器端
4、浏览器在下次访问服务器时,会带着Cookie信息 Cookie-name=eric(隐藏带着一个叫cookie名称的响应头)
5、服务器端接收到浏览器带来的Cookie信息
Cookie细节:
1、void setPath(String uri),有效路径指的是cookie的有效路径保存在哪里,那么浏览器在有效路径下访问服务器时会带着cookie信息,否则不带,默认有效路径在当前web应用下Cookie.setPath("/day")
2、设置Cookie的有效时间,setMaxAge(int e)
正整数:表示Cookie的数据保存在浏览器的缓存目录中(硬盘),数值表示保存的时间(以秒为单位),
(从最后不调用Cookie开始计算),
负整数:表示cookie数据保存在浏览器的内存中,浏览器关闭Cookie丢失,
0:表示删除同名的Cookie数据
3、Cookie数据类型只能保存在非中文的字符串类型的,可以保存多个,但浏览器一般只允许存放300个Cookie,每个Cookie大小限制为4kB

案例:登陆记住密码

登陆页面

	<%
		Cookie cookies[] = request.getCookies();
		if (cookies != null && cookies.length != 0) {
			for (Cookie k : cookies) {
				System.out.println(k.getName());
				if ("LoginUserName".equals(k.getName())||"LoginPassword".equals(k.getName())) {
					pageContext.setAttribute(k.getName(), k.getValue());
				}
			}
		}
	%>

	<h1 style="font-size: 30px" align="center">登陆</h1>
	${msg}
	<form action="login" method="post">
		用户:<input type="text" name="username" required="required"
			placeholder="用户名/密码" value="${LoginUserName }"><br>
		<br> 密码:<input type="password" name="password"
			required="required" placeholder="用户名/密码" value="${LoginPassword}"><br>
		<br> <input type="checkbox" name="rememberPwd"
			value="rememberPwd">记住密码<br>
		<br>
		<button type="submit">提交</button>
	</form>

后台:servlet

	String username= req.getParameter("username");
	String psw = req.getParameter("password");
	boolean rememberPwd = req.getParameter("rememberPwd")!=null;
	if(rememberPwd) {		//记住密码
		Cookie usernameCookie = new Cookie("LoginUserName", username);	
		Cookie passwordCookie = new Cookie("LoginPassword", psw);
		usernameCookie.setMaxAge(60);// 以秒为单位,存储1分钟 
		passwordCookie.setMaxAge(60);
		resp.addCookie(usernameCookie);	//添加到 浏览器
		resp.addCookie(passwordCookie);
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值