HttpSession 对象中可用的几个重要的方法:

1    public Object getAttribute(String name)

该方法返回在该 session 会话中具有指定名称的对象,如果没有指定名称的对象,则返回 null。

2    public Enumeration getAttributeNames()

该方法返回 String 对象的枚举,String 对象包含所有绑定到该session 会话的对象的名称。

3    public long getCreationTime()

该方法返回该 session 会话被创建的时间,自格林尼治标准时间 1970 年 1 月 1 日午夜算起,以毫秒为单位。

4    public String getId()

该方法返回一个包含分配给该 session会话的唯一标识符的字符串。

5    public long getLastAccessedTime()

该方法返回客户端最后一次发送与该session 会话相关的请求的时间自格林尼治标准时间 1970 年 1 月 1 日午夜算起,以毫秒为单位。

6    public int getMaxInactiveInterval()

该方法返回 Servlet 容器在客户端访问时保持session 会话打开的最大时间间隔,以秒为单位。

7    public void invalidate()

该方法指示该 session 会话无效,并解除绑定到它上面的任何对象。

8    public boolean isNew(

如果客户端还不知道该 session 会话,或者如果客户选择不参入该 session 会话,则该方法返回 true。

9    public void removeAttribute(String name)

该方法将从该 session 会话移除指定名称的对象。

10  public void setAttribute(String name, Object value)

该方法使用指定的名称绑定一个对象到该session 会话。

11  public void setMaxInactiveInterval(int interval)

该方法在 Servlet 容器指示该 session会话无效之前,指定客户端请求之间的时间,以秒为单位。

Tomcat中Session的默认超时时间为20分钟,可以在web.xml中配置

<session-config>
      <session-timeout>60</session-timeout>  <!-- 以分钟为单位-->
</session-config>

用request.getSession(booleancreate)获取Session时,如果该客户的Session不存在,会先创建一个Session再返回

注意,只有访问Servlet、JSP等程序时才会创建Session,只访问HTML等静态资源时并不会创建

Session还可以存储java bea乃至任何java类和对象

URL地址重写

URL地址重写是对客户端不支持Cookie的解决方案

URL地址重写的原理是将该用户Session的id信息重写到URL地址中,服务器能够解析重写后的URL获取Session的id,这样即使客户端不支持Cookie,也可以使用Session来记录用户状态

HttpServletResponse类提供了encodeURL(Stringurl)实现URL地址重写

<a href=”<%=response.endodeURL(“index.jsp?wd=java”)%>”>

该方法会自动判断客户端是否支持Cookie,如果不支持,则会将用户Session的id重写到URL中,重写后的输出类似于

<a href=”<%= response.endodeURL(“index.jsp;jsessionid=0CCD096E7F8A123E345EF77?wd=java”)%>”>

Servlet之Session处理的更多相关文章

  1. servlet的session为null?

    servlet的session(会话)显示为null,一般是web.xml中配置不对或者在浏览器输入的url不正确造成的. web.xml配置如下: <servlet> <servl ...

  2. Web开发: servlet的session为null?

    servlet的session(会话)显示为null,一般是web.xml中配置不对或者在浏览器输入的url不正确造成的. web.xml配置如下: <servlet> <servl ...

  3. 2016-1-30 Servlet中Session管理(Sesssion追踪)

    Session管理(Sesssion追踪)是Web应用程序开发中非常重要的一个主题.这是因为HTTP是无状态的,在默认情况下,Web服务器不知道一个HTTP请求是来自初次用户,还是来自之前已经访问过的 ...

  4. Servlet/JSP-07 Session应用

    Session应用 一. 避免表单重复提交 1. 表单重复提交的情况 ①在表单提交到一个 Servlet,而 Servlet 又通过请求转发的方式响应了一个 JSP 或者 HTML 页面,此时浏览器地 ...

  5. Servlet/JSP-06 Session

    一. 概述 Session 指客户端(浏览器)与服务器端之间保持状态的解决方案,有时候也用来指这种解决方案的存储结构. 当服务器端程序要为客户端的请求创建一个 Session 时,会首先检查这个请求里 ...

  6. servlet之session添加和移除的两种方式

    Java Session 介绍 一.添加.获取session 1.项目结构 2.jar包 3.web.xml文件 <?xml version="1.0" encoding=& ...

  7. Servlet 利用Session实现不重复登录

    import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.It ...

  8. Servlet实现Session

    (1)首先看一下项目的结构 是在tomcat--webaps下的myWebSites项目 在myWebSites下有仅仅有WEB-INF目录 在WEB-INF目录中有  一下目录(在classes目录 ...

  9. 玩转web之servlet(六)---session介绍及简单使用(登录验证中保存信息)

    在浏览器与服务器进行交互时,往往需要把涉及到的一些数据保存下来,这时就需要使用cookie或session进行状态管理. 这篇文章先来说说session怎么用,首先在servlet中创建一个sessi ...

  10. Servlet 笔记-Session 跟踪

    HTTP 是一种"无状态"协议,这意味着每次客户端检索网页时,客户端打开一个单独的连接到 Web 服务器,服务器会自动不保留之前客户端请求的任何记录. 但是仍然有以下三种方式来维持 ...

随机推荐

  1. 矩阵树Matrix-Tree定理与行列式

    简单入门一下矩阵树Matrix-Tree定理.(本篇目不涉及矩阵树相关证明) 一些定义与定理 对于一个无向图 G ,它的生成树个数等于其基尔霍夫Kirchhoff矩阵任何一个N-1阶主子式的行列式的绝 ...

  2. 【Luogu P2709 小B的询问】莫队

    题目描述 小B有一个序列,包含N个1~K之间的整数.他一共有M个询问,每个询问给定一个区间[L..R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数字i在[L..R]中的重 ...

  3. 【HNOI2017】大佬

    题目描述 人们总是难免会碰到大佬.他们趾高气昂地谈论凡人不能理解的算法和数据结构,走到任何一个地方,大佬的气场就能让周围的人吓得瑟瑟发抖,不敢言语. 你作为一个 OIER,面对这样的事情非常不开心,于 ...

  4. hdu 5464(dp)

    题意: 给你n个数,要求选一些数(可以不选),把它们加起来,使得和恰好是p的倍数(0也是p的倍数),求方案数. - - 心好痛,又没想到动规 #include <stdio.h> #inc ...

  5. bzoj3048[Usaco2013 Jan]Cow Lineup 尺取法

    3048: [Usaco2013 Jan]Cow Lineup Time Limit: 2 Sec  Memory Limit: 128 MBSubmit: 225  Solved: 159[Subm ...

  6. Unique-paths (动态规划)

    题目描述 A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below) ...

  7. String String Buffer String Builder

    如题,在java中这是一个典型的问题. 在stackoverflow上已经有很多相似的问题被提问,并且有很多不正确或不完整的答案.如果你不往深处想,这是一个很简单的问题.但如果深入思考,它却很让人迷惑 ...

  8. TCP/IP学习笔记__mbuf

    Socket发送和接收数据都是写入和读取mbuf(存储器缓存)来完成的.下面着重介绍下Sendto函数与mbuf的关系: 以UDP协议为例: 1.UDP的输出执行过程: UDP的输出执行过程 2.协议 ...

  9. 通过AIDL在两个APP之间Service通信

    一.项目介绍 [知识准备] ①Android Interface definition language(aidl,android接口定义语言),其目的实现跨进程的调用.进程是程序在os中执行的载体, ...

  10. ABP文档笔记 - 事件BUS

    文档: ABP框架 - 领域事件(EventBus) EventBus & Domain Events ABP源码分析二十五:EventBus EventBus(事件总线) EventBus是 ...