作者是一名大二学生ovo,空闲时间用原生的JavaWeb开发了一个图书管理系统,没有使用任何框架,挺适合刚入门的新手去学习,前后端代码都是自己编写的,这是本人第一个项目并希望大家能够支持一下,可以挺好的应付老师的作业和毕业设计。
前端技术:HTML+CSS+JavaScript+正则表达式
后端技术:JDBC+Servlet+Jsp+EL表达式+JavaBean+dao
数据库:MySQL
服务器与Java版本:Tomcat 10.0.12 JDK1.8
开发工具:IDEA+Chorme+Navicat
1、administrator(管理员信息表)
字段:username(管理员姓名)、password(管理员密码)、sex(性别)
2、message(管理员通知信息表)
3、admessage(管理员通知用户信息表)
字段:content(内容)、time(时间)、name(用户姓名)
4、book(图书表)
字段:number(图书编号)、bookname(书名)、writer(作者)、price(价格)、type(类型)、loc(位置)、state(状态)
5、borrowbook(借阅图书信息表)
字段:id(序号)、number(图书编号)、bookname(书名)、writer(作者)、price(价格)、type(类型)、loc(位置)、 name(借阅者姓名)、bbooktime(借书时间)、rtbooktime(还书时间)、state(类型)
6、user(用户信息表)
字段:username(用户姓名)、password(用户密码)、sex(性别)
7、usermassage(用户反馈信息表)
字段:name(用户名)、content(内容)、time(时间)
在该项目中,bean包下主要是将数据库表的内容进行实体化而存放的类的位置,而持久层(dao包)则是进行与数据库之间的操作,例如crud。dao包下的接口是定义方法,而dao包下的impl包则是实现接口的类。resources包是简化代码量的工具类。filter包则是过滤一些进入网站的方法。servlet包下则是为了展示页面所进行的操作。
①、登录、注册、退出模块
视图层:Login.jsp(登录页面)、Register.jsp(注册页面)、Agreement.html(隐私页面)
功能:十天内免登陆、用户和管理员的登录和退出、注册时的账号密码判断
在web.xml中设置了欢迎页面,如果点击了十天内免登陆的功能,就会创建一个cookie去保存信息从而以后进入就到WelcomeServlet中查询其cookie,做到免登陆的实现。以下就是部分代码展示
在退出的功能上,也称安全退出,这里是可以将网页上的cookie信息删除以及销毁session,防止他人对cookie信息进行恶意使用
在注册页面中,使用了正则表达式以及JavaScript,这样就对注册页面有了进一步的功能完善(并不是随意姓名或者密码即可注册成功)。
用户登录成功进入图书馆的首页
②、用户查阅图书模块
功能:查阅图书以及借阅图书
视图层:Referbook.jsp、Referbook1.jsp
③、借阅记录模块
视图层:Record.jsp
④、管理员对用户管理模块
视图层:Acontrol.jsp、Check.jsp
⑤、管理员增加图书模块
视图层:AddBook.jsp
功能:在区域方面使用了JavaScript以及正则表达式,防止管理员不小心添加到错误区域。
视图层:ViewBook.jsp、ViewBook2.jsp、ViewBook3.jsp
⑦、用户反馈模块
视图层:Ainbox.jsp
⑧、BUtil类
该类是为了减少其余类对JDBC的代码量,提高效率,而所写的JDBC工具类,获取指定资源jdbc.properties,因为数据库可能不止使用一个,所以这里使用了编程的OCP原则。
⑨、dao层类
此层的类主要是为了和数据库打交道,都是一些简单的crud语句
由于Date类中日期方法已过时,所以采用了Calendar来进行处理日期。进而对还书时间(一次默认为十天)的平闰年和月份问题进行了处理。
1、尚未实现拦截器的功能,可以直接输入地址栏上的内容进入网站,这个安全措施并未进行处理。
2、JSP中嵌套着JDBC代码,耦合度问题还未完全处理。
本次课程设计,是跟着老杜的学习那小小的部门表进而来实现这个小小的图书管理系统的,充分而又系统的统一了web应用开发的基础知识,加强了对基础知识的理解。但还未学习到框架技术进行优化改进。也体会到了从头到尾设计一个网站所带来的乐趣,进一步的熟悉了网站的整个的开发流程,更加深入的了解了web开发的B/S架构,以及浏览器与服务器之间交互的细节等等。进一步的提高了网上解决问题的能力与网上学习能力。
我放在百度云盘里,链接:百度网盘 请输入提取码
提取码:rz2z