package javax.servlet.http;

import java.util.Enumeration;

import javax.servlet.ServletContext;

public interface HttpSession {
public long getCreationTime();
public String getId();
public long getLastAccessedTime();
public ServletContext getServletContext();
public void setMaxInactiveInterval(int interval);
public int getMaxInactiveInterval();
@Deprecated
public HttpSessionContext getSessionContext();
public Object getAttribute(String name);
@Deprecated
public Object getValue(String name);
public Enumeration<String> getAttributeNames();
@Deprecated
public String[] getValueNames();
public void setAttribute(String name, Object value);
@Deprecated
public void putValue(String name, Object value);
public void removeAttribute(String name);
@Deprecated
public void removeValue(String name);
public void invalidate();

  这是HttpSesion接口的代码,去掉了注释,方法没有几个,从中看setAttribute()的方法,看完这个方法就明白了,这是cookie的翻版。有几个弃用的方法,能用的方法并不是很多。

  一般来说,HttpSession也是依赖于Cookie的,如果client禁用cookie,server没有办法记住状态。亲测了taobao.com,禁止cookie后,就没有状态了,虽然可能有其他方法,但是大厂都这么做,我也不用去想别的办法了。

Cookie和Session

web服务一个特点是提供个性化服务,为很多客户端提供服务,那么每个用户不同,服务自然不同,所以要记住用户及其状态,这也很多应用软件的通用功能。

由于http是无状态的,Session和Cookie是两个基本的技术,在书上看到Cookie,感觉自己根本不会使用Cookie技术。

首先,Cookie在lib的哪个包下?不知道吧,javax.servlet.http.Cookie,其次,Cookie有哪些方法和变量?你现在只知道其存储键值对,存在客户端。并且一个Cookie对象只能存一个键值对,这样说Cookie的特点就比较明白了。然后就可以使用Cookie写个案例了,一点点积累。

现在感觉对Cookie还是一知半解,到底在服务器和客户端是怎么传递的呢?还有类似的session,form等

接下来就要说说Session对象,javax.servlet.http.Session; java.util.Enumeration<java.lang.String> getAttributeNames(), void setMaxInactiveInteranal(int seconds);数据保存在服务器端,每个Session的唯一标识符发送至客户端。用户第一次访问时就自动为之创建session,所以无需new,并且浏览器请求时自动发送sessionID这样服务器就是知道是哪个session了

HttpSession的认识的更多相关文章

  1. java使用websocket,并且获取HttpSession,源码分析

    转载请在页首注明作者与出处 http://www.cnblogs.com/zhuxiaojie/p/6238826.html 一:本文使用范围 此文不仅仅局限于spring boot,普通的sprin ...

  2. HttpSession与Hibernate中Session的区别

    一.javax.servlet.http.HttpSession是一个抽象接口 它的产生:J2EE的Web程序在运行的时候,会给每一个新的访问者建立一个HttpSession,这个Session是用户 ...

  3. 被我们忽略的HttpSession线程安全问题

    1. 背景 最近在读<Java concurrency in practice>(Java并发实战),其中1.4节提到了Java web的线程安全问题时有如下一段话: Servlets a ...

  4. HttpSession

    (Cookie是用来设置浏览器保存数据的时间的: Session是只要浏览器不关闭,数据则会存在,一旦关闭浏览器数据即消失 ) 1. HttpSession概述 * HttpSession是由Java ...

  5. JSP中的 HttpSession、pageContext对象

    pageContext 隐含对象对应javax.servlet.jsp.PageContext,都自动的被加入至pageContext中, 您可以由它来取得与JSP相关的对应之Servlet对象,像是 ...

  6. JavaWeb学习笔记——开发动态WEB资源(八)cookies和httpsession

    会话: cookies: (1)cookies是WEB服务器发送到浏览器的简短文本信息 (2)cookies可以禁用 httpsession: 一次会话是从你打开浏览器开始到你关闭浏览器结束 提供一种 ...

  7. HTTP-Session工作机制

    HTTP-Session将HTTP这种无状态协议通过session来保存状态.然而session通过记录服务器生成编号来标识协议,从而服务器就可以识别协议的状态. session保存服务器端,  co ...

  8. HttpSession的线程安全问题及注意事项

    摘自http://blog.csdn.net/java2000_net/article/details/2922357 HttpSession session =  request.getSessio ...

  9. [原创]java WEB学习笔记47:Servlet 监听器简介, ServletContext(Application 对象), HttpSession (Session 对象), HttpServletRequest (request 对象) 监听器,利用listener理解 三个对象的生命周期

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  10. @SessionAttributes与HttpSession

    SessionAttributes注解将model中与它同名的属性保存在HttpSession中. 在controller的方法执行完毕后处理SessionAttributes注解并保存的,是Hand ...

随机推荐

  1. poj1182 食物链(并查集 好题)

    https://vjudge.net/problem/POJ-1182 并查集经典题 对于每只动物创建3个元素,x, x+N, x+2*N(分别表示x属于A类,B类和C类). 把两个元素放在一个组代表 ...

  2. C#异步Task编程模型实战手册

    一.课程介绍 本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的第一部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集.整理 ...

  3. C# 程序打包成安装项目

    Xaml设置图标https://blog.csdn.net/u014234260/article/details/73648649 winform程序控制面板中卸载显示图标https://blog.c ...

  4. InfluxDB服务器启动流程

    操作系统 : CentOS7.3.1611_x64 go语言版本:1.8.3 linux/amd64 InfluxDB版本:1.1.0 源码路径: github.com/influxdata/infl ...

  5. PhpStorm配置SVN的完整方法

    1.安装SVN时注意选择“command line client tools"默认是不安装的 2.设置系统环境变量 3.在PhpStorm上设置如下 4.然后通过VCS就可以上传导入你的工程 ...

  6. 解析 .Net Core 注入——注册服务

    在学习 Asp.Net Core 的过程中,注入可以说是无处不在,对于 .Net Core 来说,它是独立的一个程序集,没有复杂的依赖项和配置文件,所以对于学习 Asp.Net Core 源码的朋友来 ...

  7. linux软连接

    linux软连接.类似window的快捷方式可以跨磁盘块(硬连接不可以). #软硬链接 ln -sf source target ln source target #硬链接不能跨分区 #批量解压文件 ...

  8. 搭建web之 服务器鉴权失败,请确认服务器已启用密码鉴权并且账号密码正确?

    实例化时,登录过程中出现 服务器鉴权失败! 这是由于密码错误所致! 第一种情况:原始随机密码 第一种情况,你没有修改密码,则可以直接查找原始密码: 过程详见官网 使用密码登录的前提条件 密码: 若用户 ...

  9. select 与 time.After 配合使用的问题

    今天在工作中发现了一个有趣的现象. 在一个select中设定了两个定时器,本来预计哪个定时器到达就运行相应指令的,但是发现最终只有时间最短的定时器一直得到执行,其它定时器完全没有得到执行. packa ...

  10. 【翻译】Apache Shiro10分钟教程

    本文为翻译文,原文地址:http://shiro.apache.org/10-minute-tutorial.html 介绍 欢迎来到Apache Shiro的10分钟教程! 通过这个教程,你会明白一 ...