使用JSP技术搭建实验仪器预约系统
学院里面做实验需要预约实验仪器,但学院里面并没有一个管理系统,预约工作由学生担任。管理比较混乱,沟通成本也比较高,因此设计一个简单的实验仪器预约系统,以期解决此问题。
使用的技术为JSP,MySQL和Java基础。
开发条件:Windows 10 + jdk1.8.0_181 + eclipse_for_JavaEE + Tomcat 9.0.14 + MySQL 8.0
1,需求分析
系统首先应该展示可以预约的仪器,学生注册账号,再使用自己的账号登录,选择相应时间预约仪器,同一时间只能有一个用户使用仪器。
2,建立项目
在Eclipse中新建一个Dynamic Web Project,项目名称为YuYue,Target Runtime选择Apache Tomcat v9.0。项目结构如下图,这里是已经做完的。
文件资源:https://github.com/JosephJoster/YuYue
src文件夹用于存放我们编写的java文件,WebContent是项目的根目录,images文件夹里面存放了本项目需要用到的一些图片。
在Window->Preferences->Web->JSP Files中更改Encoding为UTF-8,以避免后续修改页面字符集
3,页面设计
设计首页index.jsp,效果如下
这里在session中检测了用户是否存在,若存在则显示用户名
点击任意一个仪器标题可查看详情
这里的数据都是从数据库提取的,需要预先在数据库建立相应的表。
连接数据库的时候需要注意,MySQL8.0的连接驱动名称和路径与老版本稍微有些不一样
private static final String driver = "com.mysql.cj.jdbc.Driver";//数据库驱动,注意中间有个cj //连接数据库的URL地址,必须要加时区 private static final String url = "jdbc:mysql://localhost:3306/my_database?" + "&useSSL=true&serverTimezone=GMT"; //my_database是我schema的名字 private static final String username = "root";//数据库用户名 private static final String password = "1234";//数据库密码 private static Connection conn = null; //静态代码块加载驱动 static { try { Class.forName(driver); } catch (Exception e) { e.printStackTrace(); } }
4,用户注册与登录
首页和详情页都可以跳转到登录页面login.jsp。
新用户注册要求输入合法的用户名和密码,并且已经注册的用户名不得再次注册,由checkRegister.jsp执行检查。
注册成功后可以登录,登录成功后session中会建立一个名为“myUser”的Attribute
User myUser = new User(); myUser.setUsername(username); myUser.setPassword(password); request.getSession().setAttribute("myUser", myUser);
5,预约仪器
登录成功后即可进行预约。
预约时间暂时限定在用户操作时间之后的三天内,时间段为上午,下午,晚上。
选择好时间预约仪器后,系统会检查该时间段是否存在预约记录,若存在则预约失败。
预约成功后,用户可以在“我的预约”中查看记录。
具体的页面编写见 https://github.com/JosephJoster/YuYue