当前位置:  技术问答>java相关

一个比较复杂,巨难的问题

    来源: 互联网  发布时间:2015-02-16

    本文导语:  环境:tomcat 问题描述:Servlet //先自定义一个类FileHolder //在Servlet中得到Session HttpSession hsession = req.getSession(true); //定义Hashtable    Hashtable Files=new Hashtable();   if (hsession.getAttribute("Attach")==null) {   }else{   Files=(Ha...

环境:tomcat
问题描述:Servlet
//先自定义一个类FileHolder

//在Servlet中得到Session
HttpSession hsession = req.getSession(true);
//定义Hashtable
   Hashtable Files=new Hashtable();
  if (hsession.getAttribute("Attach")==null) {
  }else{
  Files=(Hashtable)hsession.getAttribute("Attach") ;
  }
//将一个FileHolder对象放入Hashtable
   FileHolder file=new FileHolder();
   Files.put("path",file);
//将Files放入Session
   hsession.setAttribute("AAA",Files);

情况1
在本页
      Hashtable File=new Hashtable();
      File=(Hashtable) hsession.getAttribute("Attach") ;
      Enumeration UpFile=File.keys()  ;
      while(UpFile.hasMoreElements())
          {String str=(String)UpFile.nextElement();
            FileHolder t=(FileHolder)File.get(str) ;
     }
正常
情况2
在其他页面
      Hashtable File=new Hashtable();
      File=(Hashtable) hsession.getAttribute("Attach") ;
      Enumeration UpFile=File.keys()  ;
      while(UpFile.hasMoreElements())
          {String str=(String)UpFile.nextElement();
            FileHolder t=(FileHolder)File.get(str) ;//抛出异常java.lang.ClassCastException: FileHolder

     }
Hashtable当中的对象确实存在,可是我无法将他强制转换,而在统一页面就不存在这个问题
那位高手能够分析并解决?

|
你是不是import fileholder

|
File.get(str).getClass().getName()看看是什么对象

|
是否可能是ClaaaLoader(CL)的问题?(只是猜测)是否同一个.class被不同的CL
装入了?

类似的问题在Servlet讨论组上讨论过:当时的情况是:放进hashTable
的FileHolder Class Object,和取出时用来cast那个FileHolder Class Object,
是被不同的CL装入的,即使在同一个JVM内,被不同的CL装入的Class被认为是
不同的Class(即使他们是来自同一个”静态.class文件")...好象是这样。。。
建议试一下。。。

建议用getClass().getClassLoader().hashCode()看看,是不是一样?

|
本页和其他页面?
概念不清!

|
你是不是在两处定义了FileHolder类?

|
检查一下两处是否使用同一个 FileHolder 类

    
 
 

您可能感兴趣的文章:

  • 问一个比较简单的问题 frame 的 setSize()放在那里比较合适
  • 问一个比较简单的问题 请不要见笑 frame 的 setVisible()放在那里比较合适?
  • 关于驱动模块和中文的问题,问题比较傻,还望大家赐教
  • 关于String 比较的一个问题
  • 一个shell的比较大小问题
  • unix一个比较奇怪的问题
  • 一个关于日期比较的问题
  • char 类型如何与16进制类型比较的问题,紧急
  • 问个比较菜的问题: LINUX如何查询C函数的使用方法?
  • javascript问题。检查两个表单值时候不能比较
  • 请教两个比较初级的问题
  • 比较急,向请各位求助了,关于实现微妙或者纳秒级别延迟的问题@@@@
  • 关于日期比较的问题
  • 求教一个比较初级的java编译问题
  • 散分请教一个比较少见的问题
  • 一个比较困难的问题,请大家帮忙!
  • 问一个比较特殊的问题
  • 问一个比较无聊的问题
  • 问一个关于网关软件的问题,比较急
  • 问一个比较土的问题!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Maps 成员 key_comp():返回比较元素key的函数
  • 你们看是不是可以这样理解:在用来进行两个对象的比较时,==操作符用来比较两个对象的引用地址,而equals()用来比较两个对象的值。
  • C++ Maps 成员 value_comp():返回比较元素value的函数
  • 问一下,现在比较新比较好的MYSQL版本和JDBC版本
  • C++ MultiMaps 成员 key_comp():返回比较key的函数
  • SOCKET 比较是在比较什么 急
  • C++ MultiMaps 成员 value_comp():返回比较元素value的函数
  • 大家推荐一下有关LINUX7有关的网络编程的书。最好是比较全面的!比较经典的。
  • C++ Double Ended Queues(双向队列) 成员 Operators:比较和赋值双向队列
  • 用java读一个比较大的文本文件(几百k~几M)怎么才能比较快?
  • C++ Stacks(堆栈) 成员 操作:比较和分配堆栈
  • "400分给有比较好的字符串比较的算法的朋友"要结帖,想做笔迹保留的不可漏看哦
  • C++ Strings(字符串) 成员 Operators:操作符,用于字符串比较和赋值
  • arm-linux-gcc 在哪下载比较好,历史版本比较齐?
  • C++ Strings(字符串) 成员 compare():比较两个字符串
  • 在JSP中用session比较好?还是cookie比较好?因为什么?
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 请大家帮忙推荐几款linux下比较好用的看jpeg图和看mpeg4比较好用的软件!
  • C++ Bitsets 成员 Operators:比较和赋值bitsets
  • 请各位说说,在linux下,c的什么编译器比较好用比较经典一些?推荐一下
  • STL vector+sort排序和multiset/multimap排序比较
  • 请问在windows下比较好用的unix远程登陆软件哪些比较好?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,