首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

session 的运用——防止表单重复提交——1.0版

2012-12-21 
session 的应用——防止表单重复提交——1.0版1). 表单的重复提交: 在表单页面, 多次点击 提交 按钮. 在

session 的应用——防止表单重复提交——1.0版

1). 表单的重复提交:

> 在表单页面, 多次点击 "提交" 按钮.

> 在转发的情况下, "刷新" 在成功页面

> 点击 "后退" 后, 再次提交表单.

2). 不属于表单重复提交:

> 点击 "后退" 后,刷新表单页面 , 再次提交表单. 属于是一个新的请求

3). 思路:

> 在表单中做一个标记

> 在 Servlet 中验证标记是否存在, 若存在, 受理请求, 同时销毁标记; 若不存在, 视为重复提交

4). 步骤:

> 做标记

* 在表单中使用隐藏域: 不行! 因为在点击 "刷新" 时, 隐藏域和一般的表单域是一样的, 都会被提交到 Servlet 中.

* 放在 request 属性中: 不行! 因为 form 页面的 request 和点击 "提交" 按钮的 request 是两个不同的请求.

* 放在 session 属性中:

> 在 Servlet 中进行验证:

* 获取标记

* 检查标记是否为空, 若为空, 则按重复提交处理; 若不为空, 将其从  session 中清除, 处理表单

5). 完善:

> 在 Session 中放入的值应该是一个随机值, 且唯一: 使用当前的系统时间

> 在 Servelt 中不但要检验 Session 的值是否存在, 还要检查 Session 中的值是否和当时放的值是否一致: 把 Session 中的属性值放在隐藏域中



代码实现:


xml 文档自己配







 

热点排行