• HttpSession,Session,Cookie的认识


    package javax.servlet.http;
    
    import java.util.Enumeration;
    
    import javax.servlet.ServletContext;
    
    public interface HttpSession {
        public long getCreationTime();
        public String getId();
        public long getLastAccessedTime();
        public ServletContext getServletContext();
        public void setMaxInactiveInterval(int interval);
        public int getMaxInactiveInterval();
        @Deprecated
        public HttpSessionContext getSessionContext();
        public Object getAttribute(String name);
        @Deprecated
        public Object getValue(String name);
        public Enumeration<String> getAttributeNames();
        @Deprecated
        public String[] getValueNames();
        public void setAttribute(String name, Object value);
        @Deprecated
        public void putValue(String name, Object value);
        public void removeAttribute(String name);
        @Deprecated
        public void removeValue(String name);
        public void invalidate();

      这是HttpSesion接口的代码,去掉了注释,方法没有几个,从中看setAttribute()的方法,看完这个方法就明白了,这是cookie的翻版。有几个弃用的方法,能用的方法并不是很多。

      一般来说,HttpSession也是依赖于Cookie的,如果client禁用cookie,server没有办法记住状态。亲测了taobao.com,禁止cookie后,就没有状态了,虽然可能有其他方法,但是大厂都这么做,我也不用去想别的办法了。

    Cookie和Session

    web服务一个特点是提供个性化服务,为很多客户端提供服务,那么每个用户不同,服务自然不同,所以要记住用户及其状态,这也很多应用软件的通用功能。

       由于http是无状态的,Session和Cookie是两个基本的技术,在书上看到Cookie,感觉自己根本不会使用Cookie技术。

        首先,Cookie在lib的哪个包下?不知道吧,javax.servlet.http.Cookie,其次,Cookie有哪些方法和变量?你现在只知道其存储键值对,存在客户端。并且一个Cookie对象只能存一个键值对,这样说Cookie的特点就比较明白了。然后就可以使用Cookie写个案例了,一点点积累。

        现在感觉对Cookie还是一知半解,到底在服务器和客户端是怎么传递的呢?还有类似的session,form等

       接下来就要说说Session对象,javax.servlet.http.Session; java.util.Enumeration<java.lang.String> getAttributeNames(), void setMaxInactiveInteranal(int seconds);数据保存在服务器端,每个Session的唯一标识符发送至客户端。用户第一次访问时就自动为之创建session,所以无需new,并且浏览器请求时自动发送sessionID这样服务器就是知道是哪个session了

  • 相关阅读:
    助理需要看的书
    linux 磁盘管理以及维护
    转:工作与创业区别
    《编写可读代码的艺术》---把控制流变得可读
    Visual studio插件 Reshaper--- 常用快捷键
    为啥我喜欢在Windows 7环境下做Unity开发?
    《编写可读代码的艺术》---写出言简意赅的注释
    《编写可读代码的艺术》---该写什么样的注释
    《编写可读代码的艺术》---美观代码
    《编写可读代码的艺术》---不会误解的名字
  • 原文地址:https://www.cnblogs.com/Robin008/p/10201955.html
Copyright © 2020-2023  润新知