Struts2中防止表单的重复提交
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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返回到对应的错误页面
(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采用企业全真模拟开发训练,迅速积累项目经验。让学员迅速获得其他人需要花费两年才能获得的工作技能,无忧就业!