• 关于Session


        今天指导实习生,让他们编程的时候多思考,有不会的地方就查api,看源码,结果被一位童鞋问住了。
        问题是这样的:session.getAttribute("1")是什么意思?
        我就直接让她查看jdk的api文档了 。
        哈哈,一查,木有。。。
        回到家很纠结,不能误导别人啊,于是百度了一番。。。有了下文。
        ******************************我是分割线*********************************************

        1.查看了下tomcat的api:

      

    嗯,看起来已经讲得比较明白了,返回一个绑定了具有特定名字的对象 ,参数是一个指定该对象的名字的字符串。说白了就是根据session里的对象名来获取对象。

    2.反编译了tomcat里的servlet-api.jar 

    啊啊啊啊啊啊。。。。怎么全是抽象方法!!!不服。

    于是又百度了一番。。。

    3.反编译catalina.jar,查看org.apache.catalina.connector.Request类。

     

    哈哈,终于找到了!!为了弄清真相,研究下coyoteRequest对象的初始化

    public void setCoyoteRequest(org.apache.coyote.Request coyoteRequest)
    {
    this.coyoteRequest = coyoteRequest;
    this.inputBuffer.setRequest(coyoteRequest);
    }

    于是,又百度了一番,反编译了tomcat-coyote.jar包

    查看org.apache.coyote.CoyoteAdapter类

    找到了getAttribute方法,哈哈,感觉离成功就差一步了!!

    public Object getAttribute(String name) {
    return this.attributes.get(name);
    }

    这里的this.attributes是什么?

    private final HashMap<String, Object> attributes = new HashMap();

    哈哈,原来是一个哈希map。

    so,可以查看jdk的api文档了吧。。。

        

  • 相关阅读:
    spring cloud stream定时器 配置rabbitmq插件安装
    字母、单词统计
    动手动脑
    原码补码反码
    ATM
    开学第一课
    周进度报告8
    周进度报告7
    JavaWeb进度报告1
    周进度报告6
  • 原文地址:https://www.cnblogs.com/beileye888/p/5294139.html
Copyright © 2020-2023  润新知