servlet中Session的用法
## (1)什么是Session?
服务器端为了保存用户的状态而创建的一个特殊的对象(即session对象)。
当浏览器第一次访问服务器时,服务器会创建session对象(该
对象有一个唯一的id,一般称之为sessionId),接下来服务器会将
sessionId以cookie的方式发送给浏览器。
当浏览器再次访问服务器时,会将sessionId发送过来,服务器
就可以依据sessionId找到对应的sessinon对象。
## (2)如何获得session对象?
### 1)HttpSession s = request.getSession(boolean flag);
HttpSession是一个接口。
a.当flag为true时,先查看请求当中有没有sessionId,如果没有,就会
创建一个session对象。如果有sessionId,就会依据sessionId去查找
对应的session对象,如果找到了就返回该对象,找不到则会创建一个
新的session对象。
b.当flag为false时,先查看请求当中有没有sessionId,如果没有,返回
null。如果有sessionId,就会依据sessionId去查找对应的session对象,如果找到了就返回该对象,找不到,返回null。

### 2)HttpSession s = request.getSession();
等价于 request.getSession(true);
## (3)常用方法
session.setAttribute(String name,Object obj);
Object session.getAttribute(String name);
session.removeAttribute(String name);

## (4)session超时
a.什么是session超时?
服务器会将空闲时间过长的session对象删除掉。
注:
为了节省内存空间。
大部分服务器默认的超时时间长度为30分钟。
b.如何修改超时时间长度?
方式一 修改web.xml
<session-config>
<session-timeout>30</session-timeout>
</session-config>
方式二 编程的方式
session.setMaxInactiveInterval(int seconds);
设置两次请求之间最大的时间间隔
## (5)删除session
session.invalidate();
## (6)session验证
step1. 登录成功之后,在session对象上绑订一些数据,比如
session.setAttribute("user",user);
step2.当用户访问需要保护的资源时,进行session验证,比如
Object obj = session.getAttribute("user");
if(obj == null){
//没有登录
response.sendRedirect("login.jsp");
}

## (7)比较session与cookie
session相对于cookie,优点:安全、可以存放大量的数据、支持更丰富的
数据类型。缺点是session会占用服务器端的内存空间,如果session对象
过多,会占用过多的内存空间。
# 练习
写一个servlet,输出用户上一次访问的时间。如果是第一次访问,输出
“你是第一次访问”。
servlet中Session的用法的更多相关文章
- thinkPHP中session()方法用法详解
本文实例讲述了thinkPHP中session()方法用法.分享给大家供大家参考,具体如下: 系统提供了Session管理和操作的完善支持,全部操作可以通过一个内置的session函数完成. 用法 ? ...
- 2016-1-30 Servlet中Session管理(Sesssion追踪)
Session管理(Sesssion追踪)是Web应用程序开发中非常重要的一个主题.这是因为HTTP是无状态的,在默认情况下,Web服务器不知道一个HTTP请求是来自初次用户,还是来自之前已经访问过的 ...
- C#中Session的用法详细介绍
Session模型简介 在学习之前我们会疑惑,Session是什么呢?简单来说就是服务器给客户端的一个编号.当一台WWW服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站.当每 个用户首次 ...
- [javaEE] Servlet中Session的使用
Session是一个域 作用范围:当前会话范围 生命周期:当程序第一次调用request.getSession()创建出客户端的session对象,30分钟没有操作认为超时,这个可以在web.xml中 ...
- CI中SESSION的用法及其注意
销毁 Session要清除当前 session: $this->session->sess_destroy(); 注意: 此函数应该是最后被调用的.即使闪出变量已不再有效.如果你只想让某几 ...
- servlet中session的使用
1.获取session HttpSession session=request.getSession(); session.setAttribute("variety", vari ...
- servlet 中session的使用方法(创建,使用)
创建: protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, ...
- Spring MVC中Session的正确用法<转>
Spring MVC是个非常优秀的框架,其优秀之处继承自Spring本身依赖注入(Dependency Injection)的强大的模块化和可配置性,其设计处处透露着易用性.可复用性与易集成性.优良的 ...
- 【转】Spring MVC中Session的正确用法之我见
Spring MVC是个非常优秀的框架,其优秀之处继承自Spring本身依赖注入(Dependency Injection)的强大的模块化和可配置性,其设计处处透露着易用性.可复用性与易集成性.优良的 ...
随机推荐
- paratest
class Program { static void Main(string[] args) { long result = 0; Stopwatch Watch = new Stopwatch() ...
- ZBrush曲线功能介绍
在ZBrush®中曲线功能是一个非常有用的工具.插入笔刷,曲线笔刷,拓扑和许多地方都会用到它.生成曲线的方式有很多种.可以使用重拓扑引导线,可以使用笔触菜单下曲线功能中的框架网格,可以使用ZBrush ...
- ZBrush中标准笔刷介绍
ZBrush最实用.精彩的部分便是雕刻了,笔刷又有时雕刻时必不可少的工具,ZBrush中给我们提供了很多种笔刷,那么,最基础.最常用的笔刷是什么呢,本文内容向大家介绍ZBrush®中标准笔刷以便大家熟 ...
- windows下一台机器运行多个tomcat
一.将本机原有的tomcat配置不变, 二.下载新的tomcat解压版,地址:http://tomcat.apache.org/download-80.cgi 三.下载完成解压后,为了方便区分,最好将 ...
- POJ 3122 Pie( 二分搜索 )
链接:传送门 题意:一个小朋友开生日派对邀请了 F 个朋友,排队上有 N 个 底面半径为 ri ,高度为 1 的派,这 F 个朋友非常不友好,非得"平分"这些派,每个人都不想拿到若 ...
- 小学生都能学会的python(深浅拷贝)
小学生都能学会的python(深浅拷贝) join() 把列表中的每一项用字符串拼接起来 # lst = ["汪峰", "吴君如", "李嘉欣&quo ...
- js内置对象——Math
Math()是JavaScript的内置对象(对于内置对象的理解,会单独写文章说明),包含了很多数学相关的方法: 常用方法: 1 Math.ceil(x) //取最近的最大整数返回 2 Math.fl ...
- Java基础学习总结(56)——学java必知十大学习目标
诞生至今已有20年的Java,现在依然有很多人使用.回顾过去十五年的成果,Java一直是数一数二的.Java已经成为世界范围内应用最为广泛的编程语言之一.那么在学java的时候你知道到底要学什么吗?一 ...
- Mysql学习总结(34)——Mysql 彻底解决中文乱码的问题
mysql 中常常出现对中文支持不友好的情况 常见的错误 "Illegal mix of collations for operation" 下面我们规整一下 mysql 数据库中 ...
- Null值操作
1)NULL值写入的操作 create table j010( id number(7), name varchar2(20), salary number(7,2) ...