2.servlet的会话机制session

Posted sunli0205

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.servlet的会话机制session相关的知识,希望对你有一定的参考价值。

session的说明:

1.session是服务端技术,存放在服务器

2.一个用户浏览器对应一个session域对象,一对一的对应关系

3.session的默认生命周期是30min,可以通过web.xml修改

4.session中可以存放多个属性

5.session可以存放对象

6.如果同一个浏览器,session.setAttribute("name",val)设置属性的时候,如果名字相同,会替换该对象的值

7.为什么浏览器能够为不同的浏览器提供不同的session

 

创建session

//访问session,当发现没有session时候,就会自动创建session
httpSession session=request.getSession();
//给session放入属性
session.setAttribute("uname","名字");
session.setAttribute("age",60);
//删除属性
session.removeAttribute("age");
//session的生命周期默认30min tomcat的web.xml文件默认设置

浏览器获取session

//获取session
HttpSession session=request.getSession();
//获取
String uname = (String)session.getAttribute("uname");

防止用户非法登录到某个页面:

当用户登录成功后,可以把信息存放到session,然后再需要验证的页面中获取用户信息,如果为null,则说明用户非法,可以让其重新登录。

修改session的生命周期:

这样修改:

//一个地方是tomcat/conf/web.xml
  <session-config>

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

</session-config>

//对所有的web应用生效

//另一个地方,就是单个的web应用下去修改web.xml文件同样写上面的代码

//如果冲突就以自己的web应用为标准 
session.setMaxInactiveInterval(60);//60秒指的是发呆时间,60秒内无操作就死亡

在session中禁用cookie

在项目的webRoot目录中的META-INF文件下,打开或者创建context.xml文件下,编辑内容:(只在某个项目中禁用cookie)

<?xml version="1.0" encoding="UTF-8"?>
<Context cookies="false" path="/ch06">
</Context>

 或者打开tomcat的配置文件context.xml(禁用tomcat中所以web项目中的cookie)

<?xml version="1.0" encoding="UTF-8"?>
<Context cookies="false">
........ </Context>

session会话的原理

session的小细节

1.一个用户浏览器对应一个session对象(独享一份session域对象)

2.session是存放在服务器的内存中的

3.session中属性的生命周期默认是30分钟,可以通过web.xml来修改

4.session中可以存放对个属性

5.session可以存放对象

6.如果session.setAttribute("name",val),如果名字重复,则会替换该属性

 

以上是关于2.servlet的会话机制session的主要内容,如果未能解决你的问题,请参考以下文章

Cookie/Session机制详解

web开发 会话机制,Cookie和Session详解

Cookie/Session机制详解

Cookie/Session机制详解

Cookie/Session机制详解

Cookie/Session机制详解