美文网首页
16. session(重点)

16. session(重点)

作者: 卡尔书院 | 来源:发表于2020-11-15 13:02 被阅读0次
session

什么是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中;

相关文章

网友评论

      本文标题:16. session(重点)

      本文链接:https://www.haomeiwen.com/subject/gudnbktx.html