• 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了

  • 相关阅读:
    URL解析模式(伪静态)
    PHP各环境下的伪静态配置
    亚马逊-购书(电子)
    前端路由-JS实现
    SpringBoot 2.3.0.RELEASE版本后自定义404页面,SpringBoot 404错误兼容Ajax请求
    不设置DIV宽度水平居中,div不设置宽度居中
    js 保留两位小数,Js四舍五入,JavaScript Math四舍五入
    Laravel 自定义公共函数的引入
    EF Core3.1 CodeFirst动态自动添加表和字段的描述信息
    Android 高德地图API INVALID_USER_SCODE 错误
  • 原文地址:https://www.cnblogs.com/Robin008/p/10201955.html
Copyright © 2020-2023  润新知