美文网首页
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