当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

读书笔记5

发表于: 2014-07-23   作者:chengxuyuancsdn   来源:转载   浏览:
摘要: 1、重复提交 2、struts2的token验证 3、用response返回xml时的注意 1、重复提交 (1)应用场景 (1-1)点击提交按钮两次。 (1-2)使用浏览器后退按钮重复之前的操作,导致重复提交表单。 (1-3)刷新页面 (1-4)使用浏览器历史记录重复提交表单。 (1-5)浏览器重复的 HTTP 请求。 (2)解决方法 (2-1)禁掉提交按钮 (2-2)
1、重复提交
2、struts2的token验证
3、用response返回xml时的注意

1、重复提交
(1)应用场景
(1-1)点击提交按钮两次。
(1-2)使用浏览器后退按钮重复之前的操作,导致重复提交表单。
(1-3)刷新页面
(1-4)使用浏览器历史记录重复提交表单。
(1-5)浏览器重复的 HTTP 请求。
(2)解决方法
(2-1)禁掉提交按钮
(2-2)Redirect跳到其他页面--------对用户体验不好
(2-3)在数据库添加约束------------2个用户同时添加相同的记录,肯定有一个没有插入进去
(2-4)ajax提交时出现一个loading模态提示。
(2-5)Struts2的token
(1)和(4)、(5)
2、struts2的token验证
(1)token标签必须与Token或TokenSession一起使用。这2个拦截器都能对标记进行处理。Token拦截器在遇到重复提交情况下,会返回invalid.token
结果并加上一个动作错误。可以覆盖动作错误。
(2)TokenSession拦截器扩展了Token拦截器并提供了一种更复杂的服务.Token Session拦截器不像Token拦截器那种会返回一种特殊的结果并添加一个动作错误,它采取的做法是阻断后续
的提交,而这么做的后果是用户将看到同样的响应,就好像只有一次提交的那样。(根据测试,此方法只提交一次)
步骤:
(1)jsp页面
<s:form action="deleteBoard">
   <s:token/>
   <s:textfield name="board.boardId" label="boardId" maxlength="10" required="true"></s:textfield>
   <s:submit/>
    </s:form>
error页面!<s:actionerror/>
(2)struts2配置

<package name="bbs_board" namespace="/board" extends="struts-default">
<interceptors>
<interceptor-stack name="baiscStack">
<!--interceptor-ref name="token"></interceptor-ref-->
<interceptor-ref name="tokenSession"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
。。。。。。
。。。。。。
<action name="deleteBoard" class="boardAction" method="deleteBoard">
<interceptor-ref name="baiscStack"/>
<result name="deleteBoard" type="redirect">
queryBoard.action
</result>
<!--如果标记无效,就执行invalid.token,如果未通过验证就执行input-->
<result name="invalid.token">../common/error.jsp</result>
<result name="input" type="redirect">../common/input.jsp</result>
</action>
</package>
3、用response返回xml时的注意
设置Response.ContentType为application/xml或text/xml;
text/xml忽略xml头所指定编码格式而默认采用us-ascii编码,而application/xml会根据xml头指定的编码格式来编码.
getHttpServletResponse().setContentType("application/xml;charset=utf-8");

读书笔记5

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
四、编辑WebTest 3、添加提取规则和自定义提取规则 添加提取规则 1、当必须从特定页中捕获一部分数
接下来说说第四章, 第四章介绍如何在Camel中使用普通bean,关于bean的使用方式前面已有介绍:javaDS
时隔8个月,才看完这本系列小说,不得不对胡雪岩的一生有所感叹! 先说说他最终为什么失败 1 与洋人
结构型模型 2004-11-26 Adapter模式 名称:适配器模式、包装器wapper模式 问题: 假设一个图形编辑
java提供了从语言角度能够强制jvm进行垃圾回收,在我们的程序中可以通过调用System.gc去强制jvm进行
Chapter 5 Controls 1 Command Signatures and Control IDs 1. 可以将Command和Control联系起来,但
从书名上来说, 这本书可谓是典型的标题党, 整本书不过是来讲解JDK5.0的一些新功能而已, 却标榜为高
从书名上来说, 这本书可谓是典型的标题党, 整本书不过是来讲解JDK5.0的一些新功能而已, 却标榜为高
从书名上来说, 这本书可谓是典型的标题党, 整本书不过是来讲解JDK5.0的一些新功能而已, 却标榜为高
装饰模式(Decorator):动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号