Struts2中防止表单的重复提交

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Struts2中防止表单的重复提交

在学习编程的过程中,我觉得不止要获得课本的知识,

更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java学习,请搜索疯狂Java;

struts2的token令牌

1、javaweb控制表单重复提交

(1)在jsp页面上使用隐藏域

这样做,每次正常跳转到该页面隐藏域都会产生不同的value的值,此时属于正常操作

如果提交表单的时候,出现隐藏域的值相同,说明表单重复提交(2)在Action类中

先获取session中存放的token的值,String sessionToken = session.getAttibuter

("sessionToken");

首先会获取页面表单隐藏域(token.html)的值,String token = request.getParameter("token.html");

同时放置到session中,session.setAttibuter("sessionToken",token);

判断表单是否重复提交

if(sessionToken.equal(token)){//表单重复提交

}

else{//表单没有重复提交

}

2、struts实现表单重复提交

(1)在某个页面验证表单重复提交,此时要添加标签,该标签可以产生如下代码:

(2)由于token拦截器没有放置到默认栈中,所以当使用token表单重复提交的时候,需要在struts.xml中加载token拦截器

(3)需要在指定的Action的配置文件struts.xml中,使用invalid.token返回到对应的错误页面

/model/message.jsp

(4)如果加载表单重复提交的拦截器,那么此时对访问当前Action中所有的方法都进行拦截器,

我们希望对Action中某个方法进行表单重复提交的校验,此时,添加includeMethods参数

定义:

save

(5)在错误页面显示表单重复提交的错误信息,错误信息通过标签s:actionerror显示


(6)实现国际化,将表单重复提交改成中文

struts.messages.invalid.token=The form has already been processed or no token

was supplied, please try again.

疯狂Java培训的课程采用针对性培养,全面提升学员就业能力,重点加强训练职业素质。老师辛勤的讲解,让学员充分感受Java的魅力,充分激发每个学员对于编程的热爱,让学员在半年的时间内掌握8-10万的代码量,成为真正的技术高手,疯狂Java采用企业全真模拟开发训练,迅速积累项目经验。让学员迅速获得其他人需要花费两年才能获得的工作技能,无忧就业!

相关文档
最新文档