面试题——Struts2如何防止表单重复提交
来源:互联网 发布:全息图片制作软件 编辑:程序博客网 时间:2024/06/05 19:04
1.利用Session防止表单重复提交
l 表单页面由servlet程序生成,servlet为每次产生的表单页面分配一个唯一的随机标识号,并在FORM表单的一个隐藏字段中设置这个标识号,同时在当前用户的Session域中保存这个标识号。
l 当用户提交FORM表单时,负责处理表单提交的serlvet得到表单提交的标识号,并与session中存储的标识号比较,如果相同则处理表单提交,处理完后清除当前用户的Session域中存储的标识号。
l 在下列情况下,服务器程序将拒绝用户提交的表单请求:
ü 存储Session域中的表单标识号与表单提交的标识号不同
ü 当前用户的Session中不存在表单标识号
ü 用户提交的表单数据中没有标识号字段
Struts 2标签中的token标签,可以用来生成一个独一无二的标记。这个标记必须嵌套在form标签中使用,它会在表单里插入一个隐藏字段并把标记保存到HttpSession对象里。toke标签必须与Token或Token Session拦截器配合使用,两个拦截器都能对token标签进行处理。Token拦截器遇到重复提交表单的情况,会返回一个"invalid.token"结果并加上一个动作级别的错误。Token Session拦截器扩展了Token拦截器并提供了一种更复杂的服务,它采取的做法与Token拦截器不同,它只是阻断了后续的提交,这样用户不提交多少次,就好像只是提交了一次。
2.利用服务器内部再次重定向到一个Action,也就是说重一个Action跳转到另外一个Action,此时浏览器中的地址是第二个Action,结合到上面的需求,我们可以再第一个 Action中将记录添加到数据库中,然后在第二个Action中将数据读取出来。以后每次刷新,那么只会执行第二个Action。
3.利用验证码
- 面试题——Struts2如何防止表单重复提交
- struts2如何防止表单重复提交
- Struts2如何防止表单重复提交
- Struts2防止表单重复提交
- Struts2防止表单重复提交
- Struts2防止表单重复提交
- struts2防止表单重复提交
- Struts2防止表单重复提交
- Struts2防止表单重复提交
- Struts2防止表单重复提交
- Struts2防止表单重复提交
- Struts2防止表单重复提交 .
- Struts2防止表单重复提交
- Struts2防止表单重复提交
- struts2 防止表单重复提交
- struts2防止表单重复提交
- Struts2防止表单重复提交
- Struts2防止表单重复提交
- Button、ImageButton及ImageView详解
- 管理修改
- Future,FutureTask,Callable,Runnable的用法
- 韩顺平java 第30讲 布局管理器
- 《Orange's 一个操作系统的实现》学习笔记(二) 实模式和保护模式
- 面试题——Struts2如何防止表单重复提交
- ajax 跨域丢失cookie的问题
- 设置控件圆角,任意角 (网址)
- bzoj1001 【beijing2006】狼抓兔子
- UVa 10178 - Count the Faces.
- 图相似性相关论文阅读总结
- Java 集合系列07之 Stack详细介绍(源码解析)和使用示例
- git多账号配置
- ubuntu14.04安装mysql-server报错unable to fetch some archives 的解决办法