Java Web之从零开始开发火车票售票系统(二)

本章将实现系统的用户注册和登录功能(分为管理员后台登录(即将进行)以及普通用户前台注册(已完成)和登录(即将进行)),并在后台登录成功之前,用过滤器实现对后台管理页面的拦截。


回顾用户管理开发步骤:①创建数据库 ②创建用户表 ③ 创建JSP文件 ④ 实现dao层 ⑤实现service层 ⑥ 实现controller层 ⑦调试测试

由于数据库、表以及dao层都已经建好,所以我们直接跳过①、②和④,进行③、⑤、⑥和⑦步骤

实现前台用户注册功能

  • 创建JSP文件,在WebContent目录下创建reg.jsp文件
    部分代码如下
    在这里插入图片描述效果如下
    在这里插入图片描述

实现reg.jsp的核心

实现随机生成验证码,并点击验证码图片可以换一张验证码
在这里说一下,我能实现验证码的生成与验证不是我知道怎么敲这些代码,而是知道怎么用这些代码!!验证码的生成与验证的代码都是在网上扒下来的,分享一下链接:https://www.cnblogs.com/nanyangke-cjz/p/7049281.html

那么使用链接中的代码呢?

  • 首先在src下创建一个工具包以及CodeUtil类,将链接中的CodeUtil类完整的copy下来。

  • 再在servlet中创建CodeServlet.java,并将链接中的servlet类完整的copy下来。

  • 完成上述两个步骤就可以生成随机验证码图了,接下来就将这个图的路径(getcode,这里我修改了一下servlet的路径,链接中的是getCode,我改成了getcode,影响不大)放到我们的jsp中。
    在这里插入图片描述

  • 要完成点一下就换一张图,我们通过js来完成,在js目录下创建function.js,并导入到reg.jsp中,为了页面得到实时更新,加入了Date().getTime()方法
    在这里插入图片描述

在这里插入图片描述
重点来了!我们要实现用户注册输入的限制,并给用户提示

  • 首先,当用户输入的部分信息为空时,应该提醒用户该部分信息不能为空,这里用js自定义了方法FocusItem(obj)当用户鼠标点击在这个输入栏上时,提示消失;CheckItem(obj)当用户鼠标离开这个输入栏时进行内容检查,如果不合法,则给出提示。
    在这里插入图片描述

在这里插入图片描述效果如下
在这里插入图片描述
重重点来了!!!对电话号码唯一性和验证码对错进行验证

毕竟现实中,每一个电话号码都是唯一的,名字啊什么的当然不唯一了(虽然身份证号码也是唯一的,但是你不能确定一个人会有两三甚至更多个手机号码对不对),所以不需要验证

  • 这里通过Ajax异步验证来请求,对手机号码是否存在进行反馈,部分代码如下

在这里插入图片描述

  • 完了之后,实现service层,电话号码查询服务(和之前的用户管理通过电话号码查询基本完全一样,用户管理的返回的是用户实体,只不过这里返回的是int类型来判断是否查到这个电话号码即可),代码如下
    在这里插入图片描述
  • 然后就是controller层,创建servlet,代码如下
    在这里插入图片描述
    验证码对错验证和电话号码唯一性验证差不多,通过Ajax异步验证,首先在function.js中编写提示内容,由于验证码不需要用到数据库,所以不用实现service层,直接实现controller层,创建servlet,代码如下
    在这里插入图片描述

使用过滤器对用户注册的数据进行限制,比如电话号码必须输入11位数字,两次密码输入必须一致等等
在src下创建com.trainbooking.filter包,并在包中创建register.java Filter,在doFilter方法下写入代码,代码如下
在这里插入图片描述

  • 用输出流方式提示用户哪里出了问题,部分代码如下
    在这里插入图片描述在这里插入图片描述

实现service层

用户注册的service层和后台管理的新增用户的service一样都是将数据加入到数据库中,因此都是使用insert方法,不需要将方法进行改写,直接使用insert方法就行
在这里插入图片描述

实现controller层

这里的controller层和后台管理的新增用户的controller层一模一样,并对controller进行了完善,即新增用户不再是新增状态码为2的成人用户了,还可以新增状态码为1的学生用户。同时对后台管理的新增用户的controller层也进行了和这一样的完善。
部分代码如下
在这里插入图片描述

系统用户注册功能实现效果

在这里插入图片描述
在这种情况下提交注册会显示注册失败,并返回注册页面
在这里插入图片描述
当手机号码不足11位时,点击注册会显示,手机号码应为11位的提示
在这里插入图片描述
当所有信息都正确时,点击注册,注册成功后,会跳转到登录界面

在这里插入图片描述在这里插入图片描述在这里插入图片描述

我们可以通过后台用户管理或者数据库的用户表中查看是否将该用户数据录入

可以看到刚刚注册的用户已经出现在后台的用户管理界面中

在这里插入图片描述
这里我们再看一下数据库中,该用户的状态码是否为学生(即USER_STATUS是否等于1,成人为2,管理员为3),显然是正确的,即表明我们的用户注册功能已经实现

在这里插入图片描述ps.接下来将实现用户登录功能,以及管理员登录功能,持续更新中……

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值