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

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

目录

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

二、基于session的购物成

1,购物车:

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

三、验证码

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

2、使用场景:

3,验证码原理:

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

1,根本原因:

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

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


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

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

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

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

//把当前登录用户存储到Session中
req.getSession().setAttribute("USER_IN_SESSION", user);
//登录验证成功
resp.sendRedirect("/studnet");


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

【在studnetServlet中加入验证】


56.png


二、基于session的购物成

1,购物车:


image.png


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,验证码原理:


image.pngimage.pngimage.png



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

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

1,根本原因:

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


61.png

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

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

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

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

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


62.png


<%--解决表单的重复提交----通过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>

目录
相关文章
|
1月前
|
存储 缓存 Java
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
190 3
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
|
1月前
|
存储 小程序 前端开发
微信小程序与Java后端实现微信授权登录功能
微信小程序极大地简化了登录注册流程。对于用户而言,仅仅需要点击授权按钮,便能够完成登录操作,无需经历繁琐的注册步骤以及输入账号密码等一系列复杂操作,这种便捷的登录方式极大地提升了用户的使用体验
457 12
|
1月前
|
缓存 Java 应用服务中间件
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
237 5
|
2月前
|
前端开发 Java 数据库连接
【潜意识Java】深度解读JavaWeb开发在Java学习中的重要性
深度解读JavaWeb开发在Java学习中的重要性
48 4
|
4月前
|
存储 安全 搜索推荐
理解Session和Cookie:Java Web开发中的用户状态管理
理解Session和Cookie:Java Web开发中的用户状态管理
135 4
|
4月前
|
小程序 前端开发 算法
|
5月前
|
前端开发 Java 应用服务中间件
Javaweb学习
【10月更文挑战第1天】Javaweb学习
52 2
|
5月前
|
安全 Java Android开发
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
199 5
|
5月前
|
C#
C# 图形验证码实现登录校验代码
C# 图形验证码实现登录校验代码
177 2
|
5月前
|
Java
Java 登录输入的验证码
Java 登录输入的验证码
62 1

热门文章

最新文章