Session的典型应用:

  1. 防止用户非法登录到某个页面。
  2. 网上商城的购物车
  3. 保存用户登录信息

注:多个请求要用的东西放在session中,多个会话之间要用的东西放在上下文中。

如何创建session?

Servelt API 中有HttpSession接口,来封装session对象。用HttpServletRequest来获取会话对象。

HttpSession  session=request.getSession();

主要方法:
1. getAttribute( String name )
获取指定名字name相联系的信息.

2.getAttributeNames()
返回Session对象中存储的每一个属性对象,其结果为一个类举的实例.

3. getCreationTime()
返回Session被创建的时间.最小单位为千分之一秒.

4.getId()
此方法返回惟一的标识,这些标识为每个Session而产生.当只有一个单一的值与一个Session联合时,或当日志信息与先前的Session有关时,它被当做键名用.

5.GetLastAccessedTime()
返回当前Session对象最后被客户发送的时间,最单位为千分之一秒.

6. GetMaxInactiveInterval()
返回总时间(秒),负值表示Session永远不会超时.该时间为该Session对象的生存时间.

7. removeAttribute( String name )
删除与提定名字name的相联系的信息.

8. setAttribute( String name , Java.lang.Object value )
设置指定名字name的属性值value,并将之存储在Session对象中.

9.session.invalidate()                                                                                                    是将session设置为失效,一般在退出时使用

问:会话的有效时间到底会有多长时间?

答:1.会话是由容器来创建的,长时间不用,容器会在30分钟后将它销毁,它是不能一直存放在服务器中的。

Tomcat中可以修改会话的时间

C:\Program File\Tomcat\cof\web.xml

第483行-485行

<session-config>

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

</session-config>

2.在项目中web.xml中可以设置会话的时间长度

<session-config>

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

</session-config>

1、2中session的有效时间应用于所有会话对象有效时间长。

3,对于某一个会话设置有效时间,在Servlet中用session.setMaxAge(秒)来设置

上下文的作用

利用上下文对象可以实现多个用户之间的数据共享。

上下文对象如何创建的?

Servelt中ServletContext  sc=this.getServletContext()

sc. setAttribute(String key,Object value)

sc. getAttribute(String key)

sc. getInitParameter(String path)

ServletContext和ServletConfig本来没有直接关系,但容器起动后,把得到上下文方法封装在servletConfig中,因为servlet继承了。

所以,在Servlet 中就可以直接使用ServletContext  sc=this.getServletContext()方法得到ServletContext

JSP中 application.getAttribute(String key);

 问:ServletContext 什么时使用?

答:  如果在一个应用中有多个Servlet和JSP都使用的变量,以后还可能被修改,就可以考虑用上下文参数

在web.xml中配置:

<context-param>

<param-name>level</param-name>

<param-value>1</param-value>

</context-param>

jsp中的session和上下文的更多相关文章

  1. 深入理解JavaScript中的作用域和上下文

    介绍 JavaScript中有一个被称为作用域(Scope)的特性.虽然对于许多新手开发者来说,作用域的概念并不是很容易理解,我会尽我所能用最简单的方式来解释作用域.理解作用域将使你的代码脱颖而出,减 ...

  2. 理解JavaScript中的作用域和上下文

    JavaScript对于作用域(Scope)和上下文(Context)的实现是这门语言的一个非常独到的地方,部分归功于其独特的灵活性. 函数可以接收不同的的上下文和作用域.这些概念为JavaScrip ...

  3. 认识javascript中的作用域和上下文

    javascript中的作用域(scope)和上下文(context)是这门语言的独到之处,这部分归功于他们带来的灵活性.每个函数有不同的变量上下文和作用域.这些概念是javascript中一些强大的 ...

  4. Spring Boot 中修改端口和上下文路径

    通过修改application.properties内容来改变访问的端口号和上下文路径(很简单!) spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.vi ...

  5. Jsp中解决session过期跳转到登陆页面并跳出iframe框架的方法

    1.可以用javaScript解决在你想控制跳转的页面,比如login.jsp中的<head>与</head>之间加入以下代码: <script language=”Ja ...

  6. 对JSP中的Session 简单理解

    我的理解: 简单来说,要使用服务器端的session对象,就是要有其对应的key,即sessionid,它只认识sessionid. 下面我说的cookie,url重写或者隐藏表单,都是为了将其对应的 ...

  7. flask 状态保持session和上下文session的区别

    问题场景: 在falsk项目中导入了两个session:    首先,配置文件config.py文件中 有个 flask_session扩展导入了Session  ( from flask_sessi ...

  8. jsp中的session

    浏览器和服务器的异常通话 常用方法 setAttribute(String key,Object value);//设置值 getAttribute(String key); //取值 Invalid ...

  9. Flask 进阶session和上下文管理解析

    session的源码流程 将session放置在redis中 安装 pip install flask-session 使用 import redis from flask import Flask, ...

随机推荐

  1. Mac上从gitlab上拉项目实战总结

    建立公钥,私钥 https://blog.csdn.net/jigongdajiang/article/details/65441923 2019-01-03 比较喜欢使用图形化界面

  2. Flask-SQLAlchemy安装及设置

    Flask-SQLAlchemy安装及设置 SQLALchemy 实际上是对数据库的抽象,让开发者不用直接和 SQL 语句打交道,而是通过 Python 对象来操作数据库,在舍弃一些性能开销的同时,换 ...

  3. SQL优化之语句优化

    昨天与大家分享了SQL优化中的索引优化,今天给大家聊一下,在开发过程中高质量的代码也是会带来优化的 网上关于SQL优化的教程很多,但是比较杂乱.整理了一下,写出来跟大家分享一下,其中有错误和不足的地方 ...

  4. ReentrantLock详解

    ReentrantLock概述 ReentrantLock是Lock接口的实现类,可以手动的对某一段进行加锁.ReentrantLock可重入锁,具有可重入性,并且支持可中断锁.其内部对锁的控制有两种 ...

  5. Learning Experience of Big Data: Connect CentOs to Xshell and set Java environment on CentOS

    1.set up connections between vitural machine and Xshell: After we connect the virtural machine to ne ...

  6. Flask初学者:url_for

    URL反转:反转是指通过视图函数名称得到其对应的URL(有反转也就有正转,即通过URL得到视图函数返回的内容,也就是我们平时的访问网页了),需要“url_for(endpoint, **values) ...

  7. 实验7 shell程序设计二(1)

    编写一个shell过程完成如下功能(必须在脚本中使用函数)1.程序接收3个参数:$1/$2和$3,合并两个文件$1/$2为$3,并显示,三个文件均为文本文件.2.如果文件$3不存在,那么先报告缺少$3 ...

  8. HDU暑假多校第八场G-Card Game

    一.题意 给出N个卡牌,卡牌的正反两面具有两个数字,取值范围为[1,2*n],给出若干个默认正面向上的卡牌,求最小反转多少张卡牌可以使得,每张卡牌朝上的面上都有一个不同的数字,同时满足最小反转次数的反 ...

  9. 1 http协议

    1.四层模型 + 2.socket 3.http协议 4. HTTP请求 跟踪了新浪的首页,我们来总结一下HTTP请求的流程: 3.1.1 步骤1:浏览器首先向服务器发送HTTP请求,请求包括: 方法 ...

  10. 玩转Node.js(四)-搭建简单的聊天室

    玩转Node.js(四)-搭建简单的聊天室 Nodejs好久没有跟进了,最近想用它搞一个聊天室,然后便偶遇了socket.io这个东东,说是可以用它来简单的实现实时双向的基于事件的通讯机制.我便看了一 ...