JavaWeb图书管理系统(MVC框架)-包含源码
Java Web图书管理系统
⼀、前⾔
这是⼤⼆写的系统,因此这个系统并没有⽤到很多框架,只是使⽤了MVC框架,前端使⽤的是Layui框架、bootstrap框架、JSP技术、JSTL表达式和EL表达式,操作数据库使⽤的是druid连接池,将前端信息转发到后端将信息封装⽤到了beanutils⼯具包,前端与后端进⾏异步交互时还使⽤到了json语句。这种框架的好处是⽅便管理,逻辑清晰,缺点是并没有做到真正的前后端分离,随着学习web的深⼊,会继续进⾏优化,改进。本系统功能主要分为两个模块,有读者登陆系统和管理员登陆系统。这两种不同的登陆⾝份信息会有不同的操作权限,读者登录,读者可以进⾏图书的借阅,图书归还,个⼈信息修改;图书管理员登录,管理员可以进⾏图书的添加,图书查,删除,修改读者的信息,查看所有读者借阅信息以及借阅历史。
过滤器:程序中添加了过滤器,在没有登录之前,只能访问与登录有关的资源,⽐如登录页⾯,注册页⾯,有关账号、密码与数据库匹配的servlet资源和图⽚资源。当登录完成之后,后端通过session域存储⽤户信息,如果在访问其他页⾯时,能够访问到⽤户信息,说明是已经登录完成之后了,那么就可以放⾏,也就能够访问其他的资源,在没有登录时,强制访问其他页⾯也只能跳转到登录页⾯提⽰⽤户登录。
⼆、测试截图
登录页⾯
登录页⾯分为⽤户登录和管理员登录,⽤户如果没有账号,可以选择注册,⽤户登录和管理员登录时会跳转到不同的页⾯进⾏相应的操作。
注册页⾯
⽤户输⼊完⽤户名后,触发失去焦点动作,前端通过ajax异步请求⽅式检查数据库中是否有相同的⽤户名,并将查询结果通过servlet 转发到前端页⾯,前端页⾯根据结果进⾏判断,如果有相同的⽤户名,会提⽰⽤户换⼀个⽤户名。并且在注册时,输⼊密码⽤户名等信息时,前端通过正则表达式进⾏匹配,必须符合设定的标准才能够注册成功。注册成功后,会将⽤户信息储存到数据库的user表中。
登录页⾯
当输⼊框失去焦点时,后端通过ajax异步请求⽅式检查⽤户输⼊的⽤户名和密码是否与数据库中的匹配,如果匹配则会通过转发的⽅式将servlet中从数据库查询的结果传给前端页⾯,前端页⾯根据⽤户名或密码的正确与否来修改css样式,显⽰绿⾊的笑脸表⽰⽤户输⼊正确,如果不匹配则会显⽰红⾊的哭脸表⽰⽤户输⼊的不正确。在⽤户名或者密码不正确时,强⾏点击登录按钮时,会提⽰⽤户⽤户名或密码错误,并且返回到当前的登录页⾯。
⽤户登录失败页⾯
el表达式获取值⽤户⾸页
⽤户登录成功后,会跳转到图书管理⾸页,显⽰当前⽤户、登录时间以及轮播图。前端页⾯的导航栏以及轮播图是使⽤layui中的导航栏框架修改⽽成。当登陆成功时,后端通过session域存储⽤户的信息,以及当前的存储时间,并将数据转发到前端页⾯,前端通过EL表达式将数据显⽰页⾯。
⽤户图书查询页⾯
通过分页⽅式显⽰数据库中的所有图书信息,每页显⽰8条记录,并且显⽰总页数,以及总记录数。⽤
户在当前页⾯可以查看所有图书、查图书以及借阅图书。
⾸先创建⼀个books对象,对象中的变量对应数据库中的字段,这样⽅便后续查询数据时将其封装成对象。再创建⼀个pagebean对象,⾥⾯保存页⾯信息,包括页⾯的记录数,当前页⾯,总页数和books集合,这样做的好处是在转发是直接将pagebean对象转发到jsp页⾯,jsp页⾯直接获取这个对象就可以获取与页⾯有关的所有信息。当点击图书查询按钮时,跳转⾄servlet层,servlet层调⽤dao层的⽅法从数据库中读取所有信息并将数据封装成⼀个list集合,list集合中存放数据库中的所有books对象,这样servlet层即获取到数据库中所有的相关信息,然后将list集合传给pagebean对象,同时经过dao层从数据库中获取总记录数,根据总记录数再结合⼀页显⽰的记录数即可计算出总页数,然后将这些信息都存储到pagebean对象中,并通过转发的⽅式将数据存储到jsp页⾯,jsp页⾯通过JSTL语句循环遍历集合,即可遍历出所有信息。
⽤户查询图书
⽤户输⼊完成信息后,点击查询按钮跳转到servlet页⾯,servlet页⾯获取输⼊框中的数据,然后通过dao层从数据库中进⾏模糊条件查询,返回⼀个books集合,然后servlet页⾯将查询结果返回到jsp页⾯,显⽰出结果即可,同时为了增强⽤户体验,将⽤户的查询条件依然显⽰到输⼊框中,可以将查询条件通过转发到前端页⾯,前端页⾯添加输⼊框的value属性即可。但是此时如果点击分页按钮时会出现bug,点击分页查询条件就消失了,原因就是点击分页时并没有携带查询条件,因此在跳转页⾯时还需要添加上查询条件信息,这样就可以在点击分页时,也能够条件查询。
⽤户借阅图书
⽤户点击借阅后,跳转到该页⾯选择图书时长,借阅成功后,会跳转到借阅信息页⾯。⾸先先要获取
⽤户选择某个图书借阅的id号,这个可以利⽤分页时同时将id号转发到前端页⾯,在转发到service层时,同时将图书id传递到后端。⽤户选择时长,点击⽴即借阅按钮,跳转到service层,后端获取前端的数据,然后通过dao层操作数据库,修改数据库信息即可。
⽤户借阅信息页⾯
此页⾯显⽰当前⽤户借阅书籍的信息,并且⽤户可以选择续借,以及还书。当⽤户选择还书时,在借阅历史中会显⽰借阅的信息。⾸先创建⼀个userbook对象,对象中包含⽤户信息,⽤户借阅图书信息,
以及借阅时长,还书时间等信息。再创建⼀个UBPageBean 对象⽤来储存当前页数,总页数,总记录数,以及userbook集合,然后再通过dao层从数据库中获取信息并保存到UBPageBean对象中,将对象转发到前端页⾯,⽤JSTL表达式循环遍历信息即可。
⽤户还书操作
当⽤户点击还书链接时,跳转到service层,根据点击的相应id号,通过dao层修改userbook表中的还书时间,以及还书标记(1代表已还书,0代表还未还书),这样前端就可以根据还书标记通过jstl表达式进⾏判断,如果是1,则显⽰还书图标,⽤户可以点击还书,如果是0,则直接显⽰已还书,⽤户不能继续还书,这样做的好处就是防⽌⽤户误操作,多次还书。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。