登陆注册
操作流程
基于Session的购物车案例
1.购物车(ShoppingCart):存放购买的商品.
生活中: 超市,推的车.
网络上: 把需要购买的商品,先临时的存储到购物车.
2.购物车的设计:
-
1):使用Session来完成.把购物车对象存放于Session中.
缺陷:浏览器关闭,session被销毁,购物车就消失了. -
2):可以使用Cookie完成.把购物车对象存储于Cookie中.
缺陷:Cookie中的数据只能存在在当前电脑的当前浏览器中. -
3):Cookie+数据库.
如果登录: 就直接把购物车对象信息存到到数据库中(持久化存储).
没有登录: 先把数据存储在Cookie中,一旦登录,就直接吧Cookie中的数据同步到数据库中.
3.操作流程
建立模型对象:
验证码的使用
一次性验证码的主要目的就是为了限制人们利用工具软件来暴力猜测密码,其原理与利用Session防止表单重复提交的原理基本一样,只是将表单标识号变成了验证码的形式,并且要求用户将提示的验证码手工填写进一个表单字段中,而不是通过表单的隐藏字段自动回传给服务器。
服务器程序接收到表单数据后,首先判断用户是否填写了正确的验证码,只有该验证码与服务器端保存的验证码匹配时,服务器程序才开始正常的表单处理流程。
密码猜测工具要逐一尝试每个密码的前题条件是先输入正确的验证码,而验证码是一次性有效的,这样基本上就阻断了密码猜测工具的自动地处理过程。
一般的,互联网上的登录,注册,发帖都会使用到验证码.
企业的内部应用,一般可以用(一般存放于企业的局域网).
操作流程
防止表单重复提交
1.表单的重复提交:
没有完整的进行一次,先请求表单页面->再提交表单过程而完成数据提交
2.造成的根本原因:
没有完整的进行一次,先请求表单页面->再提交表单过程.
3.造成重复提交的现象:
1):由于服务器缓慢或网络延迟的原因,重复点击提交按钮.
2):已经提交成功,刷新成功页面(forward)(请求转发).
3):已经提交成功,通过回退,再次点击提交按钮
注意:
回退后,刷新表单页面,再次提交这时不是重复提交,而是发送新的请求
在Firefox下,重复提交到同一地址无效