Session()

 

如何使用 Session

Java Api 只给我们一种方式来 获取 当前会话相关的 session:

HttpSession session = request.getSession();
//或
HttpSession session = request.getSession(boolean);

设置值:

session.setAttribute("key", 值对象);

获取值:

对象类型 obj = (对象类型)session.getAttribute("key");
//如
String name = (String)session.getAttribute("key");

删除 session 指定属性健:

session.removeAttribute("key");

清除所有的session,使当前 session 完全失效:

session.invalidate();

 

session超时周期设置 

1. Tomcat 安装位置 conf/web.xml :

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

30分种

2. Tomcat 安装位置 conf/server.xml :

<Context path="/test" docBase="/test"
  defaultSessionTimeOut="3600" isWARExpanded="true"
  isWARValidated="false" isInvokerEnabled="true"
  isWorkDirPersistent="false"/>

单位为 秒

3. Java 代码设置:

HttpSession session = request.getSession();
session.setMaxInactiveInterval(1200);

20 分种:

其他说明: 

1. session 过期情况:

1>. 客户端浏览器关闭:

2>. session 会话过期;

3>. 客户端会话调用了 .invalidate();

2. 浏览器关闭与session是否还在;

当客户端浏览器关闭后,session 在服务端还是会存在一定时间的,只是当浏览器器再次打开时,就会生成一个新的 session ,浏览器通过生成的 sessionid 属性来 匹配服务端的 session; 那上次的session 虽然还在,但是就访问不到了;

3. <% @ page session="false" %> 是什么情况?:

这句话的意思是,当前不能使用 session, 但是 页面 session 还是可以创建的;

4. session 在什么时候 被创建:

在 程序 调用 HttpServletRequest.getSession(true) 时创建;如果 页面没有使用 <%@ page session="false"%> 时,在 jsp 页面编译成 Servlet 时,会自动 加上 HttpSession session = HttpServletRequest.getSession(true);

 http://www.cnblogs.com/editor/p/4114873.html

 

时间: 2024-11-21 00:52:24

Session()的相关文章

servlet-Servlet中doGet()无法使用session是怎么回事

问题描述 Servlet中doGet()无法使用session是怎么回事 想用session.setAttribute()但是无法使用.请教是怎么回事 解决方案 request.getSession().setAttribute("xxx",xxx);

用户登录状态用什么保存好?(Session丢失)

问题描述 我开始用Session保存用户登录状态,放中电云集的虚拟机里.老丢失Session(5分钟以内,快等1分钟就丢了),然后询问过和测试过后,发现他们也没有开启"ASP.NET状态服务",所以修改<SessionStatemode="StateServer".....>是用不了的.然后我只好改Cookies保存用户数据,请问下我这个问题有什么其他好的解决方法吗?谢谢谢谢啊!! 解决方案 解决方案二:放到cookie里面也行的解决方案三:cookie

如何在多台服务器上共享Session(PHP/JSP/ASP.NET)以及单点登录(SSO)

如何在多台服务器上共享Session(PHP/JSP/ASP.NET)以及单点登录(SSO)   Apache Session复制: http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html   使用Memcached来共享PHP Session: https://www.digitalocean.com/community/tutorials/how-to-share-php-sessions-on-multiple-memcache

【kill session】Oracle 彻底 kill session(转载)

偶然间看到一篇关于Kill session的文章,很不错,mark一下,备忘. 原文地址:http://space.itpub.net/22578826/viewspace-702987 Oracle 彻底 kill session --*************************** -- Oracle彻底kill session --***************************      killsession是DBA经常碰到的事情之一.如果kill掉了不该kill的sess

magicsuggest 调用empty()方法后,怎么样再次让它激活

问题描述 magicsuggest 调用empty()方法后,怎么样再次让它激活 我现在想清除magicsuggest的值,用了empty()方法,但使用了empty()方法后,不能再次选择数据了,现在怎么样才可以让它能够选择数据呢 解决方案 没人么? 还有它的clear()方法怎么用啊,可以用clear()来清除选择是数据么,直接调用没有成功

mysql-数据库MYSQL连接成功,可是遍历next()结果不是我想要呀!!!

问题描述 数据库MYSQL连接成功,可是遍历next()结果不是我想要呀!!! 事件监听中要检验JTextField的内容是否与数据库中一致,一致则登录成功,否则登录失败,但是现在无论JTextField的内容如何,都是输出登录失败,求大神解救啊... import java.sql.*; import javax.swing.JOptionPane; public class MysqlJdbc { public User user= new User(); public void Login

c语言-C语言中的rand()函数的问题

问题描述 C语言中的rand()函数的问题 代码如下,为什么a总是输出0,而b却能正常输出?rand()的返回值不是在0~RAND_MAX之间的整数吗? #include <stdlib.h> #include int main (void) { int a; int b; int i; for (i=0;i<5;i++) { a=10*rand()/RAND_MAX; printf ("a=%dn",a); } for (i=0;i<5;i++) { b=10

gcc-GCC4.7之后不是已经支持C11了么,为什么函数 aligned_alloc()仍然不能使用?

问题描述 GCC4.7之后不是已经支持C11了么,为什么函数 aligned_alloc()仍然不能使用? 如题,GCC在版本4.7之后不是已经支持C11了吗?为什么C11中添加的函数aligned_alloc()仍然不能使用.求大神告知! 解决方案 并不一定是完整支持 一般是部分支持 现在gcx都5.x了 解决方案二: #include 这个头文件加了吗

关于android http协议 POST请求的outputStream.write()方法

问题描述 关于android http协议 POST请求的outputStream.write()方法 这个方法就是把数据发送吧,但是不能发送String类型的数据,想问一下我有一个String类型的数据要发送到服务器,要怎么写呢? 解决方案 说错了,是变成比特数组. 解决方案二: Android使用http协议的GET和POST方法!!! 解决方案三: 可以把字符串变成比特流. 解决方案四: String data="你的数据"; byte[] byteData=data.getBy