1.我没有使用框架,仅仅是用的servlet和jsp,想实现同一时刻相同用户名的用户不能同时登陆,请问具体怎么办,session里面放置对象好像会被下一次覆盖,请大家帮帮忙
2.java为什么要实现序列化,大家不要copy网上的解释,我想听的是大家的自己的想法,最好有实例

解决方案 »

  1.   

    java为什么要实现序列化 可以进行远程传输。把你的代码传输到另外台机器。
      

  2.   

    1.就在servlet登录的时候先判断session存不存在,后面的楼主是个人都懂吧:如果存在就,否则。
    2.至于为什么要序列化,楼主必须需要用到的时候才能体会到。下面考了一个别人的理解假如有个很细的管子,一块肉和一本书,你想把肉和书从管子的一边传到另一边。
    1,传肉的话要把肉切碎了传,到管子的另一边就成肉馅了。这个是不可被序列化的结果。
    2,传书的话可以把书一页一页的撕下来卷成纸筒传过去,都传完之后按照页数排列好订在一起。这个是可被序列化的结果。
      

  3.   

    private static final long serialVersionUID = 1;
    这句话是什么意思,后面的数值是自己随便设置的吗?传过去的话对方怎么才可以接受呢?
      

  4.   

    1、在Application作用域中建立一个session字典,用以记录登录和登出的用户,在session创建事件中(Session监听器)先查这个字典,有则说明是重复登录。
    2、关于系列化:内存中一个java对象可能承载了很多数据,在内存中通过引用都指向好了,但是要将这些数据流放到别处(例如网络的另一端或者磁盘上),其引用指向就不行了,这时就需要通过串行来组织数据。
      

  5.   

    第一个问题。我给你具体代码。很好解决。也就是利用session记录。第二个问题,我用自己的理解解释一下。 java对象的不可以通过简单copy,因为要使用原来的对象,那么必须不是副本。副本跟原本根本就是两个不同的东西。所以要序列划,你可以理解成压缩城rar文件。我压缩我的一个文本文件,发给你。这就是原件。  若我直接拷贝我的文本文件给你,就是副本。
      

  6.   

    以下代码。我简单点说了。时间不多了。登陆时。SessionListener.isAlreadyEnter(request.getSession(),userName.trim());SessionListener 代码如下public class SessionListener implements HttpSessionListener {下班咯。你搜索一下isAlreadyEnter,应该能搜索到完整例子。我不多写了。
    也是抄网上找到的例子。