CookieANdSession

news/2024/5/18 11:49:08 标签: cookie


Cookie

       什么是Cookie

Cookie是网景公司发明。Cookie是由服务器端创建,发送给浏览器,浏览器可以将cookiekey/value保存到浏览器端,下一次在请求同一个网站的资源时,就可以将cookie发送给服务器。

javaeeapi中有一个类  javax.servlet.http.Cookie,它就可以创建一个cookie,它的构造方法Cookie c =new Cookie(String name,String value)

Cookie是由http协议制定的,并不是java语言特有的,php.net都可以使用cookie

问题1:如果将一个cookie响应到浏览器端?

我们可以通过response对象来操作,可以通过response.addHeader(“set-cookie”,”one=aaa”);也可以通过简便的方法

http协议中生成的格式  set-cookie:one=aaa; two=bbb

response.addCookie(Cookie);

问题2:如果关服务器端得到一个cookie

       我们要想得到一个cookie可以通过requst对象来获取。

       http请求头中有一个cookie:one=aaa;two=bbb

       可以通过request的一个方法Cookie[] getCookies()得到所有的cookie

总结:

       1.创建Cookie    new Cookie(Stringname,String value);

       2.cookie响应到浏览器端   response.addCookie(Cookie);

       3.在服务器中获取Cookie    request.getCookies();得到了一个Cookie数组。

 

得到Cookie对象后,可以使用getName()getValue()方法来得到cookie的名称与值。


 http协议对cookie规定如下:(笔试题)

1.      cookie用于携带少量数据最大为4kb

2.      一个服务器最多向一个浏览器保存20cookie

3.      一个浏览器最多可以保存300cookie.

 

cookie持久化问题:

默认情况下,cookie它是会话级别的,简单说,就是cookie是存储在浏览器的内存中,如果将浏览器关闭,cookie就消失。

setMaxAge()可以让cookie持久化.也就是说可以在浏览器端产生一个cookie文件,当关闭浏览器后,cookie也不会消失。

注意:如果将setMaxAge(0)代表的是删除cookie.

我们在删除cookie时要注意一个关于cookie路径的问题。删除与创建cookie时它们的路径必须一致。

cookie路径有什么作用?

       它的作用就是确定当访问服务器的资源时,是否要携带cookie.

       例如  aCookie  /cookieAndSession/  bCookie /cookieAndSession/jsps/ c

               cCookie /cookieAndSession/jsps/cookie

       当我们访问

http://localhost/cookieAndSession/index.jsp这时只有aCookie会携带到服务器端,原因是路径中包含了aCookiepath

当我们访问

http://localhost/cookieAndSession/jsps/index.jsp这时会有aCookiebCookie携带到服务器端




http://www.niftyadmin.cn/n/1570639.html

相关文章

Cookie练习之查看历史记录

servlet代码 package com.Cookice;import java.io.IOException; import java.util.Arrays; import java.util.List;import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServle…

request,session登陆的小练习

登陆的小练习 package com.Login;import java.io.IOException;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import com.Cookice.User;publ…

简单的登陆注册练习1 登陆

主页 <a href"${pageContext.request.contextPath }/register.jsp">注册</a><a href"${pageContext.request.contextPath }/login.jsp">登陆</a> 注册页面 <% page language"java" import"java.util.*"…

简单登陆注册练习2登陆

登陆页面 <% page language"java" import"java.util.*" pageEncoding"UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><title>My JSP denglu.jsp starting pa…

session和cookie 区别(面试)

session原理&#xff1a;1、session是保存在服务器端&#xff0c;理论上是没有是没有限制&#xff0c;只要你的内存够大2、浏览器第一次访问服务器时会创建一个session对象并返回一个JSESSIONIDID的值&#xff0c;创建一个Cookie对象key为JSSIONID&#xff0c;value为ID的值&am…

LeetCode 2490. Circular Sentence【字符串】简单

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

BeanUtils的自己定义的日期转换器

package cn.servlet;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;import org.apache.commons.beanutils.Converter;public class myconver implements Converter {//把页面上传进来的String 转化为 datepublic Object convert…

隐藏域和session防止表单重复提交

防止表单重复提交://获得提交过来的参数 ,封装到bean 中,调用业务层.传入数据request.setCharacterEncoding("utf-8");//做个防止表单重复提交的//从隐藏域中获取到了toekn 和session 中token 比较 ,是一样的说明是从同一个页面 String ht request.getParameter(&q…