关于JSP编译流程,和Vector处理的一些小经验

 

     项目中遇到了一个问题,给定同样两个用户,两个人生成的uri是一样的,用一个iframe来展现,但是就是第二个能够跑进去,底一个怎么也不进去,百思不得其解,跑到数据库中,将第一个用户的相关的权限,部门的信息修改成和第二个一样,一跑,嘿,跑进去了,页面出来了,然后在数据库中一条一条的加之前删掉的数据,加到莫一条时页面恰好又不出来了,原来是权限与部门关联的时候没关联好,由部门id检索不到权限,而返回了空对象,而在页面上我在别的地方,对这个空对象实施了操作,因而出错了,但是为什么会给定一样的url造成我的iframe出不来呢?项目经理给了答案,Jsp的编译是整体的的,也就是一个页面一个页面的跑得,不会像程序一样会按流程的设计而进行跳转,java虚拟机它会把一个页面成功的跑完后才会去完成相关的重定向工作,因此虽然给定了同样的uri,但是由于第一个用户的造成了页面上其他地方产生了错误,所以就不会进入到重定向处理中,而第二个没有产生错误,所以它能构展现出iframe中的页面了.
    此外发现一个关于Vector的小东西,当用new声明一个Vector对象时,此时就算没有调用Vector.set()方法对Vector赋值,Vector对象也是存在的,用Vector != NULL 返回的结果也是为真的,但是如果这个时候你调用Vector.get()方法,返回的并不是一个NULL而是一个异常.那么如何判断没有节点的Vector对象呢?用Vector.size()方法就可以了,这样用就不会丢出异常,而返回的是0,表示该Vector没有内容.呵呵,同样是调用Vector的方法一个抛异常,一个不会,仔细想想,是有它的原因的.个人认为Vector.get()实际上应该是返回一个对象的引用,因为根本没有进行赋值所以这个引用是为空的,返回的一个空引用,而Vector.size()是针对Vector本身这个对象的size属性,这个属性随Vector对象的存在而存在,所以不会报异常了咯
   enjorying^_^
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值