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>

目录
相关文章
|
2月前
|
Web App开发 SQL Java
javaweb实现分页(二)
javaweb实现分页(二)
20 1
|
2月前
|
SQL 关系型数据库 MySQL
javaweb实现分页查询(一)
javaweb实现分页查询(一)
20 0
|
2月前
|
SQL 关系型数据库 MySQL
javaweb中实现分页,持续更新……
javaweb中实现分页,持续更新……
23 1
|
2月前
|
Java
java实现动态验证码源代码——绘制验证码的jsp
java实现动态验证码源代码——绘制验证码的jsp
13 0
|
2月前
|
前端开发 Java
java实现动态验证码源代码——jsp页面
java实现动态验证码源代码——jsp页面
14 0
|
1月前
|
JSON Java 应用服务中间件
JavaWeb项目之乱码问题及如何解决
JavaWeb项目之乱码问题及如何解决
|
2月前
|
JavaScript Java
java生成验证码并进行验证
java生成验证码并进行验证
29 2
|
1天前
|
前端开发 JavaScript Java
前端和Java验签以太坊钱包签名实现中心化登录
前端和Java验签以太坊钱包签名实现中心化登录
19 8
|
1天前
|
Java 程序员 应用服务中间件
JavaWeb之过滤器(Filter)与监听器(Listener)
本文介绍了JavaWeb中的过滤器(Filter)和监听器(Listener)概念及其使用。过滤器主要用于拦截和处理Web资源请求,如进行编码设置、权限验证等,它在Servlet之前和之后执行。监听器则监听域对象(如ServletRequest、HttpSession、ServletContext)状态变化,分为创建/销毁监听和属性变化监听。监听器在Web.xml中注册后会在相应事件发生时自动执行,例如用于统计网站访问人数或初始化配置。
|
9天前
|
设计模式 存储 前端开发
18:JavaBean简介及其在表单处理与DAO设计模式中的应用-Java Web
18:JavaBean简介及其在表单处理与DAO设计模式中的应用-Java Web
24 4