![](https://img.haomeiwen.com/i10951533/a37e252307d11987.png)
什么是Session:
- 服务器会给每一个用户(浏览器)创建一个Seesion对象;
- 一个Seesion独占一个浏览器,只要浏览器没有关闭,这个Session就存在;
- 用户登录之后,整个网站它都可以访问! -->保存用户的信息;保存购物车的信息....
session: 会话:
用户打开一个浏览器,点击了很多超链接,访问多个web资源,关闭浏览器,这个过程可以称之为会话 ;
session 存入键值对
//解决乱码问题
req.setCharacterEncoding( "UTF-8");resp.setCharacterEncoding("UTF-8");
resp.setContentType( "text/ html;charset=utf-8");
//得到Session
Httpsession session = req.getSession( );
//给Session中存东西
session. setAttribute( name: "name" , value: "秦疆");
//获取Session 的ID
string sessionId = session.getId( );
//判断session是不是新创建
if (session.isNew()){
resp.getwriter( ).write( s: "session创建成功,ID: "+sessionId);
}else {
resp.getwriter( ).write( s: "session以及在服务器中存在了,ID: "+sessionId);
}
session 存入对象
person类
public class Person {
private String name;
private int age;
public Person() {
}
public Person( String name,int age) {
this.name = name;
this.age = age;
}
public string getName() {
return name;
}
public void setName ( String name) {
this.name = name;
}
public int getAge( ) {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
将person对象存入session
//得到Session
Httpsession session = req.getsession( );
//给Session中存东西
session.setAttribute( name: "name" ,new Person( name:"秦疆" , age: 1));
取出person对象
//解决乱码问题
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
resp.setcontentType( "text/htm1;charset=utf-8");
//得到Session
Httpsession session = req.getsession( );
Person person = (Person) session.getAttribute( name: "name" );
system.out.println(person.toString());
移除session对象和注销session
Httpsession session = req.getSession();
session.removeAttribute(name: "name");//移除session对象
session.invalidate(); //手动注销session
web.xml
<!--设置session默认的失效时间-->
<session-config>
<!--15分钟后session自动失效,以分钟为单位-->
<session-timeout>15</session-timeout>
</session-config>
Session和cookie的区别:
- Cookie是把用户的数据写给用户的浏览器,浏览器保存(可以保存多个)
- Session把用户的数据写到用户独占Session中,服务器端保存(保存重要的信息,减少服务器资源的浪费). * Session对象由服务器创建;
使用场景:
- 保存一个登录用户的信息;·购物车信息;
- 在整个网站中经常会使用的数据,我们将它保存在Session中;
网友评论