zoukankan      html  css  js  c++  java
  • 关于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文档了吧。。。

        

  • 相关阅读:
    JS数据结构第二篇---链表
    原来你是这样的---原型和原型链
    JS数据结构第一篇---算法之复杂度判断
    程序员的数学
    一位码农的转行
    如何看待程序媛们的职场焦虑和未来职业规划?
    如何快速融入团队并成为团队核心(九)
    如何快速融入团队并成为团队核心(八)
    使用ASP.NET Core构建RESTful API的技术指南
    如何快速融入团队并成为团队核心(七)
  • 原文地址:https://www.cnblogs.com/beileye888/p/5294139.html
Copyright © 2011-2022 走看看