javaWeb第七天:登录、基于session的购物车、验证码、表单重复提交

目录

一、登录界面的验证:【还有注销账户】

二、基于session的购物成

1,购物车:

2,缓存设计【举例:基于session的购物车的设计】

三、验证码

1、作用:防止破解密码、刷票、论坛灌水、刷页

2、使用场景:

3,验证码原理:

四、表单的重复提交(注意重复提交---是重复携带相同的数据)

1,根本原因:

2、造成重复提交的原因:

3,解决:(思路跟验证码一样的)


一、登录界面的验证:【还有注销账户】

登录界面的验证【账号、密码都需要验证】------是否与数据库匹配

--------------------------通过账号到数据库中查找匹配的用户,然后返回匹配的用户,然后再比较密码

--------------------------依靠账号的唯一性就可以进行大概率的验证了

//把当前登录用户存储到Session中

req.getSession().setAttribute("USER_IN_SESSION", user);

//登录验证成功

resp.sendRedirect("/studnet");

登录界面的验证作用:只有通过登录,才可以访问到咱的管理界面

【在studnetServlet中加入验证】

二、基于session的购物成

1,购物车:

2,缓存设计【举例:基于session的购物车的设计】

1)基于session的购物车的设计【容器是session】

■ session:会话

■ 购物车:domain(实例)对象

2) ShoppingCartServlet

//调用业务处理请求

//ShoppingCart cart = new ShoppingCart();【不对,这样每次请求都创建了一个购物车对象】//咱是基于session的购物车

ShoppingCart cart = (ShoppingCart) req.getSession().getAttribute("SHOPPINGCART_IN_SESSION");

//这里需要缓存设计【就是第一次session中还没有放进购物车对象,咋就new一个放进去,

//然后第二次进行判断,非空,就直接使用session中的购物车】

if(cart == null) {

    cart = new ShoppingCart();

    req.getSession().setAttribute("SHOPPINGCART_IN_SESSION", cart);

}

三、验证码

1、作用:防止破解密码、刷票、论坛灌水、刷页

2、使用场景:

 一般是在互联网上的系统【登录/注册、 发帖】,必须使用到验证码,二企业管理系统【MIS】处于局域网中,一般只有内部才访问到,可以不设置验证码。

3,验证码原理:

四、表单的重复提交(注意重复提交---是重复携带相同的数据

----------------数据不同【就不是重复了啦】

1,根本原因:

没有完整的进行一次请求页面->提交页面的过程而完成数据提交

2、造成重复提交的原因:

1): 由于服务器缓慢或者网络延迟的原因,重复点击提交按钮

2):已经提交成功,刷新成功的页面(forward)

3):已经提交成功,通过回退,再次点击提交按钮

3,解决:(思路跟验证码一样的)

<%--解决表单的重复提交----通过token令牌(其实跟验证码一样的)UUID

一份在表单中,一份存到session传递到servlet,用于判断两份UUID 是否一致 --%>

<%

//生成一个随机数【口令】

String token = UUID.randomUUID().toString();

//存放与session中用以判断

session.setAttribute("TOKEN_IN_SESSION", token);

%>

<form action="/transform" method="post">

   <%-- 表单中的UUID --%>

   <input type="hidden" name="token" value="<%=token%>"/>

   转账金额: <input type="text" name="money" required/></br>

   <input type="submit" value="俺的钱过去啦"/>

</form>

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伟庭大师兄

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值