标签:class 图片 用户 == 博客 表示 register blog jar
半年前,初学Java,使用JSP+Tomcat+MySQL搭建了一个简易的实验室仪器预约系统。
但是jsp技术过于老旧,已经被淘汰了,且系统的稳定性较差。因此近日使用 SpringBoot + Freemarker + MySQL 重构此项目。更重要的是,学习了一些css,把界面修整了一番,总算不至于太难看。
项目地址 http://193.112.92.196:8080/
首页
用户注册与登录
展示仪器详细信息
登录后可以进行预约
点击“我的预约”查看自己的预约记录,可以选择取消
按照包顺序从上往下介绍
这里没有太多好说的,主要是注册了拦截器,并设置了一些需要登录或者非登录状态才能进去的url
这里基本上就是调用Service处理一些request参数,然后映射到相应页面,再处理一下Session
拦截器,判断Session中有没有“username”参数,做相应拦截
定义了一些实体模型,并通过注解和JPA映射到数据库
全继承了JpaRepository,基本上没写什么方法
这里是主要内容。
DeviceService直接通过repository提供了两个方法,getAllDevice(),getDeviceById(int id)
UserService 提供2个方法,登录和注册,并分别定义了两个枚举类型来表示执行结果
package com.reservation.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.reservation.model.User; import com.reservation.repository.UserRepository; import java.util.List; @Service public class UserService { @Autowired private UserRepository userRepository; public LoginApplicationReturnEnum doLogin(User user) { if (user == null) { return LoginApplicationReturnEnum.USER_NOT_EXIST; } String username = user.getUsername(); if (username == null || username.equals("")) { return LoginApplicationReturnEnum.USER_NOT_EXIST; } List<User> list = userRepository.findByUsername(username); if (list.isEmpty()) { return LoginApplicationReturnEnum.USER_NOT_EXIST; } if (!list.get(0).getPassword().equals(user.getPassword())) { return LoginApplicationReturnEnum.WRONG_PASSWORD; } return LoginApplicationReturnEnum.OK; } public RegisterApplicationReturnEnum doRegister(User user) { if (user == null || user.getUsername() == null || user.getPassword() == null) { return RegisterApplicationReturnEnum.EMPTY_INFO; } String username = user.getUsername(); String password = user.getPassword(); if (username.length() < 6 || username.length() > 15 || password.length() < 6 || password.length() > 15) { return RegisterApplicationReturnEnum.INVALID_LENGTH; } if (!username.matches("\\w*") || !password.matches("\\w*")) { return RegisterApplicationReturnEnum.INVALID_CHAR; } List<User> list = userRepository.findByUsername(username); if (!list.isEmpty()) { return RegisterApplicationReturnEnum.USERNAME_EXIST; } userRepository.save(user); return RegisterApplicationReturnEnum.OK; } }
ReservationService提供了预约状态查询(根据日期),预约,用户预约查询
最后,使用Freemarker做的页面编写基本上就是变量获取,不再赘述。
在腾讯云上买了一年的云服务器,在博客园看的话应该下面就有广告。项目打完包后39M,配置完端口,ssh连上去装了jdk和docker,拉了一个mysql映射到3306,运行jar包就可以访问了http://193.112.92.196:8080/
这个项目虽然很简单,但对于初学者了解Java Web开发流程还是有一定帮助的。这个项目做完Java算入门了,但后面的路还很长。
这个项目如果以后再改进的话,应该会增加用户评论和超级管理员功能。
项目过程中还遇到了一些坑,比如url地址,浏览器缓存,中文乱码等问题,之后有机会展开详述。
wwj
2019.7.8
【SpringBoot + Freemarker + MySQL】 搭建实验室仪器预约系统
标签:class 图片 用户 == 博客 表示 register blog jar
原文地址:https://www.cnblogs.com/elucidator/p/11154632.html