`

Cookie和Session解析

阅读更多
1.关于Cookie, 在客户端浏览器保存用户状态的一种机制


servlet中的Cookie含有三个属性: name, value, maxAge
maxAge = 60 表示:此cookie在客户端存在1分钟
两个特殊值:
maxAge = -1 表示 : 此Cookie生命周期由保存它的浏览器决定 ,(浏览器开则生,关则死),默认的
maxAge = 0  表示 : 删去以前的相应cookie存储
Cookie应用实例 :
	
package com.kettas.servlet ;
		import javax.servlet.*;
		import javax.servlet.http.*;
		import java.io.*;
		public class CookieServlet extends HttpServlet{
			@Override 
			public void service( HttpServletRequest request , HttpServletResponse response )
				throws ServletException , IOException 
			{// 创建一个新的Cookie对象, 构造参数分别为Cookie的name和value属性
				Cookie c = new Cookie( "test" , "1234567890" );
				// 将Cookie对象加入response中,这样才能被带入客户端
				response.addCookie( c ) ;  
				// 从请求中获取客户端Cookie数组
				Cookie[] cookies = request.getCookies();
				response.setContentType( "text/html" );
				PrintWriter out = response.getWriter();
				out.println("<html>"); 
				out.println( "<body>" ) ; 
				out.println( "<h1>Cookie List</h1><hr/><p></p>" ) ;
				if( cookies != null ){
					for( Cookie cookie : cookies ) {
						out.println( "<h2>" + cookie.getName() + "=" + cookie.getValue() + "</h2>" ) ;
					}
				}else{
					  out.println( "<h2>No cookie</h2>" ) ;
				}
				out.println( "</body>" ) ;
				out.println("</html>");
				out.flush();
			}
		}	   

2. 关于HttpSession, 在服务器端保存用户状态的一种机制

(1) 获取HttpSession对象的方法 :
     // 参数为true,表示若存在对应的HttpSession对象,则返回。若不存在,则创建一个新的。
     // 若参数为false,表示若存在对应的HttpSession对象,则返回。若不存在,则返回null。
HttpSession session = request.getSession(true);
(2) 对HttpSession对象, 进行存取数据的操作
         // 两个参数,分别为命名属性和对应的数据
         session.setAttribute("name", data);
         // 一个参数,命名属性,注意返回的为Object对象,要强转
         session.getAttribute("name");
    (3) 比较Session和request :
        request :
            创建 : 当用户请求到达服务器的时候
            销毁 : 当本次请求的应答回到客户端的时候.
                   客户端的一次请求应答之间
        session :
            创建 : 当用户第一次调用request.getSession( true )
            销毁 : 超时 ( 两级超时限制 )
                1) 内存 ---> 文件 .
             2) 从文件系统销毁 .
        session的原理 :
        给每个浏览器一个cookie,这个cookie的name属性为"jsessionid",value属性为这个session
        对应的ID值。
    (4) 当浏览器拒绝cookie时可以用URL把session的id提交给服务器
    如 : http://localhost:8989/servletapp/forwardB;jsessionid=37D50D093CCD4A37CC1118785E38F438
    "url;jessionid="+ session.getId()
    response.encodeURL("url") :对url进行编码
分享到:
评论

相关推荐

    Cookie、Session、Token、JWT

    服务器可以读取和解析 Cookie 来获取用户的身份信息或其他状态。Cookie 可以设置过期时间,可以在多个请求之间保持状态。 Session:Session 是服务器端存储用户信息的一种机制。服务器在用户首次访问时为其创建一个...

    解析PHP的Yii框架中cookie和session功能的相关操作

    主要介绍了PHP的Yii框架中cookie和session功能的相关操作,需要的朋友可以参考下

    深入解析Session是否必须依赖Cookie

    php中的session是否只能使用session cookie呢?下面小编就来详细的为大家介绍一下吧,需要的朋友可以过来参考下

    Flask框架的学习——12—(cookie和session、Flask上下文、常用的钩子函数、Restful API规范、Flask-Restful插件、参数解析、 输出字段、)

    1、cookie和session cookie:在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录后...

    对比分析php中Cookie与Session的异同

    让大家对Cookie和Session有一个更深入的了解,并对自己的开发工作中灵活运用带来启示。 一、cookie机制 Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器。IETF RFC 2965 ...

    详解node.js平台下Express的session与cookie模块包的配置

    cookie模块包:用于解析cookie。 npm install cookie-parser --save-dev 接着在app.js(我在node.js的配置中提到的,也就是服务器主文件)中配置: var session = require("express-session"); var cookie = require...

    用django设置session过期时间的方法解析

    SESSION_COOKIE_NAME cookie中保存session的名称 Session使用比较简单,在request.session是一个字典类。session是保存在数据库中的。 ——————————————————- 按手册和网上的方法在

    COOKies详细解析

    深入讲解了cookie和session机制以及区别

    python处理cookie详解

    复制代码 代码如下:Set-Cookie:session=8345234;expires=Sun,15-Nov-2013 15:00:00 GMT;path=/;domain=baidu.comexpires是cookie的生存周期,path是cookie的有效路径,domain是cookie的有效域. 路径”path”用于...

    Nginx Session共享问题解决方案解析

    这篇文章主要介绍了Nginx Session共享问题解决方案解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Nginx解决Session共享问题:  1.nginx或者haproxy做的...

    Python requests模块cookie实例解析

    在python requests模块-session中,我们知道了requests中的session对象能够在请求之间保持cookie,它极大地方便了我们去使用cookie。当我们想设置方法级别中的请求时,可以如下面示例一样操作。 import requests s ...

    解析php中session的实现原理以及大网站应用应注意的问题

    PHP SESSION原理我们知道,session是在服务器端保持用户会话数据的一种方法,对应的cookie是 在客户端保持用户数据。HTTP协议是一种无状态协议,服务器响应完之后就失去了与浏览器的联系,最早,Netscape将cookie...

    Django 5种类型Session使用方法解析

    介绍 Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需...session是基于cookie完成的,当用户打开浏览器,去访问服务器的时候,服务器会为每个用户的浏览器创建一个会话

    koa-session-socketio:套接字io中间件,用于解析koa-session包中标头上的cookie值

    socket.io中间件可从cookie获取会话,这在独立于任何http框架(例如koa / express)运行socket.io时非常有用 安装 npm i koa-session-socketio 例子 const Server = require ( 'socket.io' ) const session = ...

    Yii框架中用response保存cookie,用request读取cookie的原理解析

    在学习cookie的时候,相信很多人和我有一样的疑惑?为什么保存cookie要用response,读取cookie却用request呢? 参考https://www.imooc.com/qadetail/188079 cookie是web服务器为了保存一些用户数据而创建保存在本地...

    详解SpringSession架构与设计

    开始进行Web开发时,您可能在使用Session时会碰到Cookie和LocalStorage,被它们所干扰。因为他们都可以存储数据,有过期时间,不需要在使用时重新请求。您还会遇到这样的情况,Web 容器(例如Tomcat、Jetty)包含...

    解析php session_set_save_handler 函数的用法(mysql)

    复制代码 代码如下:&lt;?php /*============================... @notice: session过期时间一个小时,因为我们的站点是使用cookie(有效时间是1小时)登录。 因此我们只记录用户登录的时间,而不是刷新一次更新一次 

    webgoat——Session Management Flaws会话管理缺陷

    在用户登录认证成功之后,服务器生成sessionid通过cookie返回给用户所在的浏览器从而使每个用户都会有一个唯一标识sessionID(详细问度娘诺) 然后还在网上找了一个会话管理的思维导图,今天这部分知识一丁半点: ...

Global site tag (gtag.js) - Google Analytics