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文档了吧。。。

        

  • 相关阅读:
    少走弯路,一个老程序猿谈PHP职业发展规划
    Wireshark网络分析就这么简单
    MySQL高可用架构之MHA
    一般项目的开发流程(公司之间是有差异)
    Java EE大作业之创造class类出现问题-------Implicit super constructor Object() is undefined for default constructor. Mu
    三层架构与MVC
    Android仿QQ界面
    Android之侧滑导航栏
    Android滑动删除功能
    资源链接
  • 原文地址:https://www.cnblogs.com/beileye888/p/5294139.html
Copyright © 2011-2022 走看看