精华内容
下载资源
问答
  • 当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识 - 称为session id,如果已包含一个session id则说明以前已经为此客户端创建session,服务器就...

    session机制
    当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识 - 称为session id,如果已包含一个session id则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(如果检索不到,可能会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存。
    保存这个session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发挥给服务器。一般这个cookie的名字都是类似于SEEESIONID,而。比如weblogic对于web应用程序生成的cookie,JSESSIONID=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764,它的名字就是JSESSIONID。

    这里写图片描述

    我们通过一个例子来理解下:
    session.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <%=session.getId()%>
    </body>
    </html>

    浏览器输入http://localhost:8080/day01/session.jsp
    浏览器输出结果:4D52C99E52284589F15AB1C4E3C6E8CB

    我们捕获下请求头、请求体
    看第一次访问的请求标头,是没有携带cookie的
    这里写图片描述

    看第一次访问的相应标头,包含了一个Set-Cookie(name为JSESSIONID)
    这里写图片描述

    看第二次访问的请求标头,是携带Cookie的(name为JSESSIONID)
    这里写图片描述

    看第二次访问的相应标头:
    这里写图片描述

    持久化session-cookie
    Session cookie 系统会创造一个名为JsessionId输出cookie,这就是通常说的session cookie,
    我们知道在浏览器设置不禁用cookie,cookie不持久化的情况下,退出浏览器cookie消失,
    因为默认情况下,cookie是一个会话级别的cookie,存储在浏览器的内核中,用户退出浏览器后被删除,若希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,单位为秒
    那么session会有什么不同嘛?我么做一个例子来理解下

    session.jsp持久化时间为90秒

    <body>
         <%
            Cookie cookie = new Cookie("JSESSIONID",session.getId());
            cookie.setMaxAge(90);
            response.addCookie(cookie);
         %>
    </body>

    看第一次访问的请求标头,是没有携带cookie的
    这里写图片描述
    看第一次访问的相应标头,包含了一个Set-Cookie(name为JSESSIONID)
    这里写图片描述

    关闭浏览器,在90秒内,完成第二次访问!!!!
    看第二次访问的请求标头,是携带Cookie的(name为JSESSIONID)
    这里写图片描述
    看第二次访问的相应标头:
    这里写图片描述

    这个例子就简单说明了下session的持久化,关掉浏览器重新打开输入网页,一样可以得到同一个session,并不是关闭了浏览器就销毁了session

    session=”false”属性,不创建session的情况
    1.若当前jsp是客户端访问当前web应用的第一个资源,且jsp的page指定的session属性值为false,则服务器就不会为jsp创建一个session对象
    session.jsp 设置为session=”false”

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" session="false"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
         <%=request.getSession(false)%>
    </body>
    </html>

    对于Servlet而言
    一个常见的误解是以为session在有客户端访问时就被创建,然而事实是,如果servlet是客户端访问的第一个web应用资源,则只有调用了request.getSession()或者request.getSession(true)才会创建session对像,request.getSession(false)如果没有和当前页面关联的session对象也返回null,有则返回true,一句话无session对象返回null,有则true,request.getSession(true)如果没有关联的返回一个新创建的session,如有直接返回关联的session

    在这种情况下,浏览器输出为null
    这里写图片描述
    这里写图片描述

    2.若当前jsp不是客户端访问当前web应用的第一个资源,而其他页面已经创建了一个session,则当前页面会返回一个跟当前会话关联的session对象,而不会为当前jsp页面新建session对象的(比如超链接带过来的)
    我们写2个简单的jsp
    toSession.jsp只有一个超链接,跳转到session.jsp

    <a href="session.jsp">tosession.jsp</a>

    session.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" session="false"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
         <%=request.getSession(false)%>
    </body>
    </html>
    
    

    以下是截图:
    这里写图片描述
    这里写图片描述

    在session.jsp中,也可以获取到toSession.jsp带来的session
    这里写图片描述

    toSession.jsp和session.jsp是同用了一个session

    则JSP文件在编译成Servlet时将会自动加上这样一条语句 HttpSession session = HttpServletRequest.getSession(true);这也是JSP中隐含的session对象的来历,但如果页面显示的设置Session=false;是当前页面禁用session隐含的变量,但可以显示的定义其他session变量

    request.getSession(true)显示创建session、以及Session的销毁,

    1.Session.invalidate();
    超出session的过期时间
    2.session.setMaxInactiveInterval(); 单位为妙

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

    3.卸载web应用

    我们通过一个例子看下如何销毁session
    session.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" session="false"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    
        <%
        //创建一个session对象
            HttpSession session = request.getSession(true);
        out.print(session.getId());
    
        out.print("<br>");
        out.print(session.getMaxInactiveInterval());
        session.setMaxInactiveInterval(5);
        out.print("<br>");
        out.print(session.getMaxInactiveInterval());
        %>
    
    </body>
    </html>

    这里写图片描述

    session默认是半小时-1800秒(这种通过request.getSession(true);创建的session)
    5秒之后在请求,可以看出session值变化了,重建session
    这里写图片描述

    展开全文
  • 1 创建 spark_session 读取数据-加入缓存 2 SparkSQL数据分析(DSL,SQL) 1 创建 spark_session 读取数据-加入缓存 #!/usr/bin/env python # -*- coding: utf-8 -*- import os ...


    c.spark_session_quick_start.py

    1 创建 spark_session 读取数据-加入缓存
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    import os
    import time
    from pyspark.sql import SparkSession
    
    if __name__ == "__main__":
    	#配置环境变量
        os.environ['JAVA_HOME'] = 'C:/Java/jdk1.8.0_91'
        os.environ['HADOOP_HOME'] = 'C:/Java/hadoop-2.6.0-cdh5.7.6'
        os.environ['SPARK_HOME'] = 'C:/Java/spark-2.2.0-bin-2.6.0-cdh5.7.6'
    
        # 实例化SparkSession对象,以本地模式是运行Spark程序
        spark = SparkSession \
            .builder \
            .appName("Hello_World_Application") \
            .master("local[2]")\
            .getOrCreate()
        # print type(spark)   检验spark是否可用
    
        # 读取数据, 一行一行的读取,每行数据的字段名称为value,类型为字符串
        log_data = spark.read.text("datas/README.md")
        print (type(log_data))
        print (log_data.first())
        print ("Count: " + str(log_data.count()))
        print ('\n')
    
        # 在Spark框架中可以将数据进行缓存,以便再次使用时,直接从缓存中读取数据
        # 默认缓存级别:MEMORY_AND_DISK,先放内存,不足放磁盘
        log_data.cache()
    
        # 对DataFrame中每条数据进行过滤,获取每条数据中的value字段的只值,进行筛选
        nums_spark = log_data.filter(log_data.value.contains('Spark')).count()
        nums_python = log_data.filter(log_data.value.contains('Python')).count()
        print("Lines with Spark: %i, lines with Python: %i" % (nums_spark, nums_python))
    
    2 SparkSQL数据分析(DSL,SQL)
        # 使用SparkSession读取wc.data,数据封装在DataFrame集合中
        wc_df = spark.read.text('datas/wc.data')
        print (type(wc_df))
        wc_df.show(n=5,  truncate=False)
    
        # DataFrame = RDD + schema, 如何将DataFrame转换为RDD
        """
        SparkSQL中对数据分析两种方式:
        -1. DSL分析    调用DataFrame中函数  
        -2. SQL分析    需要将DataFrame注册为临时视图,编写类似MySQL中SQL进行分析    
        """
        # 导入SparkSQL中函数库
        from pyspark.sql.functions import *
    
        word_df = wc_df\
            .select(explode(split(wc_df.value, '\\s+'))\
            .alias('word'))
    
        word_count_df = word_df.groupBy('word').count()  # 操作以后, 聚合count以后的字段名称为count
        word_count_df.show()
    
    
        # 注册时临时视图
        word_df.createOrReplaceTempView('view_tmp_word')
        spark.sql('SELECT word, COUNT(1) AS count FROM view_tmp_word GROUP BY word').show()
    
        # 读取CSV文件
        csv_df = spark.read.csv('datas/flights.csv', header=True, inferSchema=True)
        csv_df.printSchema()
        csv_df.show(n=10, truncate=False)
    
        csv_df.write.csv('datas/flights.tsv', header=True, sep='\t')
    
        # 为了查看Spark程序运行是的WEB UI界面,让线程休眠一段时间
        time.sleep(100000)
    
        # SparkContext Stop
        spark.stop()
    
    展开全文
  • 创建session和session的赋值

    千次阅读 2016-07-04 10:01:27
    HttpSession session = ServletActionContext.getRequest().getSession(); session.setAttribute("zttype", type);

    后端

    HttpSession session = ServletActionContext.getRequest().getSession();

    session.setAttribute("zttype", type);


    前端

    ${sessionScope.zttype}

    展开全文
  • java中创建Session对象

    万次阅读 2016-10-13 09:55:46
    HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder. getRequestAttributes()).getRequest(); HttpSession session=req
    HttpServletRequest request = 
                        ((ServletRequestAttributes) RequestContextHolder.
                                getRequestAttributes()).getRequest();
                HttpSession session=request.getSession();//创建session对象
    展开全文
  • zz 谁在创建session

    千次阅读 2008-03-12 13:41:00
    HttpSession的使用是有代价的,需要占用服务器资源,本着能不浪费就不浪费的原则,我希望系统中的session都在掌握之中,在需要创建时由 我们的代码明确创建。但是最近在开发中发现,新的session对象经常在
  • SQL-92 允许在 SQL 模块中对 SQL 语句进行编码,该模块的授权标识符与已连接到 SQL 数据库的用户的授权标识符可以相互独立。SQL-92 指定 SESSION_USER 总是返回进行连接的用户的授权标识符。对于从 SQL 模块中执行的...
  • Oracle 创建用户语句

    2017-09-15 10:15:38
    CREATE TABLESPACE TBS_FZJJ_BB_...grant connect,resource,create database link,create synonym,create view,unlimited tablespace,debug connect session,select any dictionary,debug any procedure to FZJJ_BB;
  • Session创建

    千次阅读 2017-09-22 12:21:29
    Java中创建session: HttpSession session = ServletActionContext.getRequest().getSession(); //创建 ActionContext.getContext().getSession().put("msg", "Hello World from Session!"); //存 session....
  • 到底是谁在偷偷摸摸创建session

    千次阅读 2015-11-02 21:31:38
    后面查阅资料发现,只有当server端程序调用HttpServletRequest.getSession(true)这样的语句时才被创建,而不是说在客户端访问时就被创建,**而且JSP有创建session的机制,只要我们在创建JSP文件时没有显示的使用 ...
  • sessionid是一个会话的key,浏览器第一次访问服务器会在服务器端生成一...session在访问tomcat服务器HttpServletRequest的getSession(true)的时候创建,tomcat的ManagerBase类提供创建sessionid的方法:随机数+时间...
  • Session创建和销毁

    千次阅读 2017-04-11 10:59:51
    session什么时候被创建 一个常见的错误是以为 ...HttpServletRequest.getSession(true) //false 不会自动创建Session 这样的语句时才会被创建。所以没有调用getSession方法则不会创建session。 要了解Session
  • oracle 创建dblink创建语句

    万次阅读 2013-03-30 16:48:24
    注意:创建数据库链接的帐号必须有CREATE DATABASE LINK或CREATE PUBLIC DATABASE LINK的系统权限,用来登录到远程数据库的帐号必须有CREATE SESSION权限。这两种权限都包含在CONNECT角色中(CREATE PUBLIC DATABASE...
  • 编程式Mybatis获取oracle表创建语句

    千次阅读 2018-09-12 16:56:32
    加上一段时间没用到又开始忘了,刚好今天碰到一个要求,Oracle的A库的若干表需要在B库里面创建出来,看上去是挺简单地,通过plsqldeveloper往表名上右键就可以很快查看创建表的DDL语句,或者导出用户对象也是可以。...
  • 创建表(Create table)语法详解 1. ORACLE常用的字段类型 ORACLE常用的字段类型有 VARCHAR2 (size) 可变长度的字符串, 必须规定长度 CHAR(size) 固定长度的字符串, 不规定长度默认值为1 NUMBER(p,s) 数字型p是位数...
  • sessionId的创建规则

    2018-12-05 22:16:38
    创建sessionid第一次产生是在直到某server端程序调用 HttpServletRequest.getSession(true)这样的语句时才被创建sessionid是一个会话的key,浏览器第一次访问服务器会在服务器端生成一个session,有一个session...
  • 创建表空间语句 创建用户

    千次阅读 2012-03-06 10:40:52
    1 创建表空间 create tablespace yyy nologging datafile 'c:\yyy.dbf' size 50m autoextend on next 50m maxsize 1024m extent management local  DATAFILE 是关键字,用于指定数据文件。  '表空间...
  • 转载: 主要浏览器session介绍:https://blog.csdn.net/zyq11223/article/details/78045550 主要app中session介绍使用:...服务器首先检查这个客户端的请求里是否已包含了一个session标识- 称为s...
  • session对象的创建时机

    千次阅读 2012-05-27 11:49:14
    session什么时候被创建 ************************************************************************************* 一个常见的错误是以为 session 在有客户端访问时就被创建,然而事实是直到某 server 端程序(如 ...
  • C#的Session创建和使用

    千次阅读 2019-02-15 19:48:57
    在C#中使用Session的方法步骤 开发工具与技术:工具:Visual Studio/c#,技术:C# 作者:刘胜 撰写时间:2019-02-13 一、简单了解C#中的Session Session是一个缓存机制,存储在服务端,当客户端(浏览器)关闭...
  • session在何时被创建

    2009-12-08 17:34:00
    一个常见的误解是以为session在有客户端访问时就被创建,然而事实是直到某server端程序调用HttpServletRequest.getSession(true)这样的语句时才被创建,注意如果JSP没有显示的使用关闭session,则JSP文件在编译成...
  • session创建和保存

    千次阅读 2017-01-13 17:21:19
    参考:http://www.cnblogs.com/sharpxiajun/p/3395607.html... ... sessionid是一个会话的key,浏览器第一次访问服务器会在服务器端生成一个session,有一个sessionid和它对应。tomcat生成的sessionid叫做jsessionid。
  • Session创建时间

    千次阅读 2010-08-28 22:30:00
    转载于:http://holdbelief.javaeye.com/blog/228808<br />   上一篇文章转载了《Cookie和Session专题 》,读了以后发现自己很多地方真的很白,里面的第14条: 十四、session什么时候被创建 ...
  • session创建和销毁

    千次阅读 2015-10-27 22:05:08
    一个常见的错误是以为 session 在有客户端访问时就被创建,然而事实是直到某 server 端程序(如 Servlet )调用HttpServletRequest.getSession(true)这样的语句时才会被创建。 **************************************...
  • v$session_longops视图可以使Oracle专家减少运行时间很长的DDL和DML语句的运行时间。 例如在数据仓库环境中,即使使用并行索引创建技术,构建一个很多G字节大的索引需要耗费很多个小时。这里你就可以查询v$session_...
  • http请求中session创建时期

    千次阅读 2015-09-18 14:08:07
    session在web开发中是一个非常重要的概念,这个概念很抽象,很难定义,也是最让人迷惑的一个名词,也是最多被滥用的名字之一,在不同的场合,session一次的含义也很不相同。这里只探讨HTTP Session。   为了说明...
  • 1.创建表空间 create tablespace user_data logging /*logging 是对象的属性,创建数据库对象时,oracle 将日志信息记录到练级重做日志文件中。代表空间类型为永久型 */ datafile 'D:\oracle\oradata\Oracle9i\user_...
  • 使用Eclipse生成Hibernate 代码时候工具为我们生成了一个 HibernateSessionFactory 这样的类 来为我们提供获得Session的方法. 但是用这个类的时候我们发现一个问题. 看下面代码 Session session1= Hibernate...
  • 1.DBMS_METADATA.GET_DDL()   SET LONG 1000000000 ...EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',false);   select dbms_metadata.get_ddl('TYPE,'N
  • 需要创建一个sessionLisenter 监听类 来监听当前客户端的session  package com.zlkj.pub;import javax.servlet.http.HttpSession;import javax.servlet.http.HttpSessionEvent;import javax.servl

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 201,389
精华内容 80,555
关键字:

创建session语句