Cookie 整理

已有 42 次阅读2017-5-24 16:17 | Cookie

Cookie 概念    

         Cookie 是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器,当用户使用浏览器再去访问服务器中的web 资源时,就会带着各自的数据去,这样,web 资源处理的就是用户各自的数据了

 

Cookie 是服务器发给客户端的信息共享区域。也就是凭证

 

服务端发给客户端的Cookie信息,会保存到浏览器的缓存区域,浏览器下次再向服务器的另外一个servlet2发起请求的时候,也是可以拿到Cookie信息的。

 

Cookie是客户端和服务端之间的一小段数据。用户不用接入,Cookie是自动完成的。

 

Cookie 在服务端被创建,保存在客户端,客户端会自动调用Cookie信息去访问服务器

Cookie 是以键值对的形式存在的

         一个web 页面可以有多个Cookie ,一个Cookie只有一个键值对。

         Cookie  是可以被多个浏览器共享的。

 

服务器---浏览器---保存在客户端

 

作用于:自动登录、上次登录时间

 

 

Cookie API

Javax.servlet.http.Cookie 类用于创建一个Cookieresponse接口中定义了一个addCookie方法,它用于在其响应头中增加一个相应的Ser-Cookie 头字段。 同样,request接口中也定义了getCookie()方法,它用于获取客户端提交的Cookie

 

 

Cookie cookie = new Cookie("time",date.toString());//new 一个新的cookie 键值对

cookie.setMaxAge(30*60);//设置Cookie 存活时间

System.out.println(cookie.getMaxAge());

response.addCookie(cookie);//Cookie 发送给浏览器

Cookie[] cookies = request.getCookies();//从浏览器取到Cookie 数组

System.out.println(cookies2.getValue());//取得Cookie

System.out.println(cookies2.getMaxAge());//取得Cookie 存活时间

 

 (string name, string value, int expire, string path, string domain, int secure);

参数说明:cookie名称,cookie值,过期时间(int),有效路径,有限域名,https传递才有效

 

    //1.创建一个cookie对象:信息是以键值对的方式存在的,一个cookie就是一个键值对

       Cookie cookie = new Cookie("name","zhuer");

       //2.设置cookie在客户端的存活时间

       cookie.setMaxAge(30*60);

       //3.cookie发送到客户端

       response.addCookie(cookie);

 

 

request.getSession();

      

       //1.从请求对象中得到cookie

       Cookie[] cookies = request.getCookies();

       for(Cookie cookie:cookies){

           System.out.print(cookie.getName()+":");

           System.out.println(cookie.getValue());

           System.out.println("--------------------");

       }

 

 

服务器会将sessionID 作为Cookie自动发送给客户端

客户端会自动携带sessionID 去向服务器调同一个session 共享区域

Session的本质是由Cookie实现的。

 

 

 

 

 

自动登录实现

 

Servlet

 

       String name = request.getParameter("name");

       String password = request.getParameter("password");

       if("admin".equals(name)&&"123".equals(password)){

          

           Cookie cookie = new Cookie("status","success");

           cookie.setMaxAge(30*60);

           response.addCookie(cookie);

           System.out.println("登录成功");

           response.sendRedirect("successPage.jsp");

        }else{

           System.out.println("登录失败");

           response.sendRedirect("login.jsp");

       }

 

Jsp

由于第一次取到的cookie 是上一次访问的cookie。所以可以在另一个servlet里面写response.sendRedirect("login.jsp");携带第一次的cookie 给客户端

<%

Cookie[] cookies = request.getCookies();

    for(Cookie cookiesCookie:cookies){

    if("status".equals(cookiesCookie.getName())){

       if("success".equals(cookiesCookie.getValue())){

           System.out.println("有令牌,不用登录");

           response.sendRedirect("successPage.jsp");

       }

    }

}

%>

 

 


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

Copyright;  ©2015-2017  知了堂学习社区  Powered by  知了堂Edu!     ( 蜀ICP备16011312号-1 )