JavaWeb书城项目(七)——用户功能完善

之前我们做出了用户功能的注册与登录功能,这次我们将用户功能完善,包括用户登录显示用户名,注销用户,以及验证码的使用

登录显示用户名

一般来说,我们登录之后会显示用户名,我们之前是写死的,这次改成动态的。

  1. UserServlet程序中保存用户登录的信息。因为我们登录之后的所有网页都是要显示用户名的,所以不能保存到request域,而是要保存到session域。
  2. 修改login_success_menu.jsp,,因为我们之前把登录成功之后的菜单信息提取出一个jsp文件,所以只需要修改这个公共的部分。
    修改login_success_menu.jsp
  3. 修改首页index.jsp页面的菜单,使其在登录之后也能显示用户信息。
    修改首页index.jsp

登出注销用户

  1. UserServlet程序中添加logout方法
    /**
     * 注销
     * @param req
     * @param resp
     * @throws ServletException
     * @throws IOException
     */
    protected void logout(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 1. 销毁Session中用户登录的信息(或者销毁Session)
        req.getSession().invalidate();
        // 2. 重定向到首页(或登录页面)。
        resp.sendRedirect(req.getContextPath());
    }
  1. 修改注销的菜单地址
    修改注销菜单的地址

使用验证码的原因及原理

之前验证码一直是写死的,这次我们实现动态的验证码。使用验证码的原因之一是为了防止用户重复提交表单而产生错误。
表单重复提交有以下三种情况。

  1. 提交完表单。服务器使用请求转来进行页面跳转。这个时候,用户按下功能键 F5,就会发起最后一次的请求。造成表单重复提交问题。解决方法:这个可以使用重定向来进行跳转
  2. 用户正常提交服务器,但是由于网络延迟等原因,迟迟未收到服务器的响应,这个时候,用户以为提交失败,就会着急,然后多点了几次提交操作,也会造成表单重复提交。
  3. 用户正常提交服务器。服务器也没有延迟,但是提交完成后,用户回退浏览器。重新提交。也会造成表单重复提交。

最后两种情况无法通过重定向解决,所以我们可以使用验证码解决。
验证码解决表单重复提交的底层原理


谷歌 kaptcha 图片验证码的使用

我们使用现有的 jar 包来完成我们的验证码功能。

  1. 导入谷歌验证码的 jar
kaptcha-2.3.2.jar
  1. web.xml 中去配置用于生成验证码的 Servlet 程序,因为 kaptcha 提供的也是 Servlet 程序,所以要在 web.xml 中配置完成才能使用。
    <servlet>
        <servlet-name>KaptchaServlet</servlet-name>
        <servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>KaptchaServlet</servlet-name>
        <url-pattern>/kaptcha.jpg</url-pattern>
    </servlet-mapping>
  1. 在表单中使用 img 标签去显示验证码图片并使用它
    使用验证码图片

  2. 在服务器获取谷歌生成的验证码和客户端发送过来的验证码比较使用
    服务器比较验证码

  3. 切换验证码,用户有时候可能看不清验证码,所以我们还要提供点击图片替换的功能。

			// 给验证码图片绑定单击事件
			$("#code_img").click(function () {
				// 在事件响应的function函数中有一个this对象,这个this对象,是当前正在响应事件的dom对象
				// src 属性表示验证码img标签的图片路径。它可读可写
				// 添加随机变量,防止调用缓存
				this.src = "${basePath}kaptcha.jpg?d=" + new Date();
			});
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaWeb书城项目是一个基于JavaWeb技术开发的在线图书销售平台。该项目旨在为用户提供一个方便快捷的购书平台,并支持在线购买、浏览图书信息等功能。 该项目的主要功能包括用户注册登录、图书分类浏览、商品搜索、购物车管理、订单管理等。 用户可以通过注册登录功能创建自己的账号,并进行个人信息的管理。用户登录后可以浏览不同分类的图书,并支持按关键字搜索特定的图书。同时,用户可以将心仪的图书添加到购物车中,并支持修改购物车数量和删除购物车中的图书。当用户完成商品的选购后,可以提交订单进行结算,实现购物流程的完整。 图书分类浏览的功能可以让用户根据自己的需求,选择不同的图书分类进行浏览和选择。用户可以根据自己的兴趣和需求来选择特定类型的图书。 商品搜索功能可以方便用户根据关键字快速找到所需要的图书。用户只需输入关键字即可快速搜索到与该关键字相关的图书信息。 购物车管理功能可以帮助用户管理已选购的图书。用户可以对购物车中的图书进行数量的增减和删除操作,方便用户根据自己的需求进行调整。 订单管理功能可以帮助用户查看和管理自己的订单。用户可以查看已购买的订单详情,并支持订单的取消和重新购买等操作。 总之,该JavaWeb书城项目通过提供用户注册登录、图书分类浏览、商品搜索、购物车管理、订单管理等功能,为用户打造了一个便利的在线图书销售平台。用户可以通过该平台方便地浏览、购买自己喜欢的图书,提高图书销售的便捷性和用户体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值