java wed ,&&和|| 判断,会对重定向产生印象吗?

//第二种情况,先增加Cookie后转发,A2.jsp获取不了name的值,需要刷新A2.jsp或者其他网址都能正常获取name

//第三种情况,先重定向后增加Cookie,无论怎么刷新就获取不了值,就是根本没写入cookie

//第四种情况,先转发后增加Cookie,无论怎么刷新就获取不了值,就是根本没写入cookie

//第五种情况,先重定向后设置session对象值,A2.jsp能正常获取name的值"你好"

//第六种情况,先转发后设置session对象值,需要刷新A2.jsp或者其他网址都能正常获取name

//第七种情况,先设置session对象值后重定向,A2.jsp能正常获取name的值"你好"

//第八种情况,先设置session对象值后重定向,A2.jsp能正常获取name的值"你好"

我对重定向,转发,Cookie,session比较乱,希望大家能逐个解释以上8个现象

注:不要只给我解释重定向和转发的概念,是要详细解释上面8个现象

}

莫名原因,数据库中出现了重复记录,这是个大问题,尤其是对业务链产生很大破坏!

这个问题的直接表现:数据库中出现重复记录。(当然了,主键肯定不一样)

/168 的方法,但是发现并没有完全起到作用。

总结: 重复提交、重复刷新、防止后退的问题以及处理方式

你在任何一个比较专业的BBS都会看到这样的问题,即使你Google一下,也会发现有很多的人在关注和询问,但大家给出的解 决方法却都是千差万别,(有的人主张采用脚本来解决;有的则想重定向到别的页面;有的则将此问题提升到Token的角度)为什么会有如此大的差异呢?

首先,我们应该先了解为什么要处理这样的问题?或者专业一点就是它适合的场景是什么?(似乎只有人来问没有人来解释)

1。重复提交、重复刷新的场景
重复提交、重复刷新都是来解决系统重复记录的问题。也就是说某个人在多次的提交某条记录(为什么?也许是闲了没有事情干的;最有可能是用户根本就不知道自己的提交结果是否已经执行了?!)。

但出现了这样的问题并不见得就必须处理,要看你所开发的系统的类别而定。比如你接手的是某个资源管理系统,系统本身从需求的角度根本就不允许出 现"重复"的记录,在这样需求的约束条件下,去执行重复的提交动作只会引发“业务级异常”的产生,根本就不可能执行成功也就无所谓避免不避免的问题了。

了解了重复刷新、重复提交的场景,我们来了解一下"防止后退"操作的原因是什么?比如你在开发某个投票系统,它有很 多的步骤,并且这些步骤之间是有联系的,比如第一步会将某些信息发送给第二步,第二步缓存了这些信息,同时将自身的信息发送给了第三步。。。。。等等,如 果此时用户处在第三步骤下,我们想象一下某个淘气用户的用户点击了后退按钮,此时屏幕出现了第二步骤的页面,他再次的修改或者再次的提交,进入到下一个步 骤(也就是第三步骤),错误就会在此产生?!什么错误呢?最为典型的就是这样的操作直接导致了对于第一个步骤信息的丢失!(如果这样的信息是依靠 Request存放的话,当然你可以存放在Session或者更大的上下文环境中,但这不是个好主意!关于信息存放的问题,下次在就这个问题详细的讨论)

当然很多的系统(比如订票系统从需求上本身是允许个人重复订票的)是必须要避免重复刷新、重复提交、以及防 止后退的问题的,但即使是这样的问题,也要区分如何处理以及在哪里处理的(网上只是告诉你如何处理,但很少去区分在哪里处理的),显然处理的方式无非是客 户端或者服务器端两种,而面对不同的位置处理的方式也是不同的,但有一点要事先声明:任何客户端(尤其是B/S端)的处理都是不可信任的,最好的也是最应 该的是服务器端的处理方法。

面对客户端我们可以使用Javascript脚本来解决,如下

数据库数据为2条相同记录(主键自动生成),由于再现情况不多,也没有找出具体原因,估计分析有两点,请大家帮忙找找。
这种情况只用重复提交时出现,但我在插入之前做了查询数据库的操作,数据已经存在(Itemcode和Employid均重复)就不用插入数据库了,理应不会插入了。
2,先插入一条,再更新的时候不是更新而是插入一条
这种情况可能是因为saveOrUpdate时,本想更新而没有加入主键,当时程序中在执行方法之前已经查询过数据库了 ,如果有数据则取出主键付给新的vo了,照理来说也不会出现重复数据。

由于测试时没有再现,也不知道数据库重复数据的来源(有一点可以肯定数据不是手动添加的)希望大家帮帮忙。谢谢

用hibernate作为持久层,update是出现了重复记录。奇怪了,为什么会明明是update,怎么可能出现添加一条记录的结果呢?
由于在操作过程中,修改了某个属性(字段),可以update成功。但我在页面中的另一个属性(它有一个回车操作去从数据库拿另外的数据来更新)中修改,就会出现添加一个新的记录。WHY?  
  我仔细看了一下日志,两个不同的操作sql真不一样,一个是用insert,另一个是用update语句。反过来的想了想有关pojo相等的比较原理。
  我于是有了几个想法,来测试。
  1)两个对象的比较(equals)规则的可能出错了。
    在我记忆中,pojo对象默认的equals方法是用主键来认识,两个对象是否相等。以前没有重写equlas方法和hashCode方法。对于不是很熟悉hibernate的我来说,还是决定重写这两个方法。编译完,重启tomcate,问题依旧。
   仔细看了一下saveOrUpdate()这个方法的文档。saveOrUpdate方法能通过现个对象的equals方法来区分,到底是要insert还是要update。看来这个应该没有问题。
  3)经过上面两步的推理。难道是要修改对象的关键字的值被漏掉了吗?
   我追踪了主鍵值,由于主键值在页面是在一个隐藏域。当操作出错属性(它有一个回车操作去从数据库拿另外的数据来更新)返回时,查看了页面的源代码,果然,隐藏域的值为空。原来在我返回页面时,忘记给它保存原来的值了。
  经过一番折腾,终于搞定了。:)
  在编码过程中一定要仔细,严谨,平时多注意理论知识的积累,理论联系实践。

}
  • 保护本机的端口不被别人访问
  • 如果端口需要被别人访问到,需要添加端口的防火墙例外
    • 本次开机状态下防火墙关闭

  • 服务器重启后防火墙禁用

  • 操作系统对未知软件的安装有可能拒绝或者警告,我们需要禁用这个功能
    • 直接关闭机器,但是有可能当前虚拟机其他人在使用
    • 马上关闭计算机 ,但是可以给其他用户发送消息
  • 拍摄快照的时候一定要关机
    • 回到某一个历史快照的节点
    • 复制某一个历史快照节点
        • 当前节点文件夹只存储差异性数据
        • 相同数据存放在原始节点上
        • 优点:节省硬盘空间 缺点:耦合性大
        • 就是基于原始节点完全拷贝到新节点的文件夹中
        • 优点:耦合性抵 缺点:硬盘空间使用大
    • 它会监听指定inode的文件数据变化,但是当文件被删除后
    • 即使创新创建,inode也会发生变化,于是监听失败
    • 他会监听指定名字的文件,如果文件被删除后,重新创建
    • 他会重新监听新文件的数据变化,监听不受影响
  • 打开文件,并将光标置于第8行

  • 按n查找下一个,按N查找上一个
  • 打开指定搜索单词的位置

    • 编辑模式中,每一个按键都有其他的功能
    • 每一个按键按下什么,就像文本中数据输入什么
    • 我们可以直接在VI中输入特定的命令
  • 编辑模式-->输入模式

  • o在当前行后面开启一个新的输入行
  • 输入模式-->编辑模式

  • 编辑模式-->末行模式

  • 末行模式-->编辑模式

  • 数字gg 跳转到第数字行
  • r 替换,然后输入一个字符替换
  • q!强制退出,但是不保存
  • 如果上次异常退出会保留同名隐藏文件,每次启动会给与提示

    • 如果确定当前文件没问题,请删除隐藏文件
  • g 替换当前行所有 否则只替换当前行第一个

    • 较为通用的文件传输方式
  • 将来我们需要把所有的虚拟机都配置hosts文件
    • 可以查看当前的后台进程
    • 但是只有当前用户界面可以获取到
  • nohup 可以防止后台进程被挂起

  • 当我们执行一个命令的时候,默认从当前路径开始查找

    如果当前路径找不到对应的命令文件,从环境变量$PATH查找

    window 路径与路径之间用;(分号)连接

    Linux路径与路径之间用:(冒号)连接

  • 使用统一的软件帮助我们安装
  • 通过RPM命令安装软件

      
      ## 虚拟机相互免秘钥
      

      将秘钥分别拷贝给自己和别人

      感谢大家的认同与支持,小编会持续转发《**优极限**》优质文章
}

我要回帖

更多关于 java web 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信