weixin_42305554 2009-04-13 16:29
浏览 159
已采纳

session问题

问题描述: 双击列表后,可进入该项的FORM表单修改,同时有一个返回列表的按钮。[b]当点击按钮后,有时候不能按预想返回列表(出现乱跳现象)[/b]
代码:

[code="java"]private Href[] historyHrefs = new Href[10];
private void addHistoryHref(Href href) {

    if (me == null)
        me = this;

    if (historyHrefs[0] == null) {
        historyHrefs[0] = href;
        return;
    }
    if (historyHrefs[0].path != null
            && historyHrefs[0].path.equals(href.path)) {
        historyHrefs[0].query = href.query;
        return;
    }
    if (historyHrefs[1] != null && historyHrefs[1].equals(href)) {
        // 返回
        for (int i = 0; i < historyHrefs.length - 1; i++) {
            historyHrefs[i] = historyHrefs[i + 1];
        }
        historyHrefs[historyHrefs.length - 1] = null;
        return;
    }

    // 加入
    for (int i = historyHrefs.length - 1; i > 0; i--) {
        historyHrefs[i] = historyHrefs[i - 1];
    }
    historyHrefs[0] = href;
    for (Href historyHref : historyHrefs) {
    }
}[/code]

此部分代码是对SESSION中的数组进行操作,保存URL。

请问:多人在线使用的时候会不会出现SESSION被改的情况,private Href[] historyHrefs = new Href[10];我使用了private ,这样也会出现共用现象吗?

[b]问题补充:[/b]
1楼兄弟,谢谢你回复,其实10个也用不上,因为我是返回上一级。例:在分页中,我的列表在30页,我点入一条记录修改后,如果不设置,返回后会在第1页。而我这样做的目的就是要那第30也的URL。而拿的时候我是指定拿historyHrefs[1],你看了算法就会发现。
[b]问题补充:[/b]
我最初和2楼的兄弟想法一样,但是没能想明白原因(大脑不听使唤),而且在本地测试中确实没有问题。
我这样写大家看看写么?
[code="java"]Href[] historyHrefs = (Href[]) request.getSession().getAttribute("parentUrl");[/code]

另补充问一个问题:

我这样做是通过parentUrl拿的,如果换成referer做会不会出现这种问题。

  • 写回答

2条回答 默认 最新

  • zjh527 2009-04-13 16:48
    关注

    一个用户请求对应一个Session,估计你的问题出在private Href[] historyHrefs = new Href[10] 定义上,这样会造成对个Session引用同一个historyHrefs ,你可以把session中这个对象打印出来看看是不是都指向了同一个对象,你应该把它定义为局部变量来处理,然后在放到你这个用户对应的session中。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 正弦信号发生器串并联电路电阻无法保持同步怎么办
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 个人网站被恶意大量访问,怎么办
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)