• 基于springboot的体育馆预约系统(前端+后端)


    一、系统简介


    本项目采用idea工具开发,html+springboot+mybatis+jquery+thymeleaf技术编写,数据库采用的是mysql,navicat开发工具。

    系统一共分为2个角色分别是:管理员,用户

    二、模块简介

    管理员

    1、登录

    2、统计管理

    3、用户管理

    4、场地类别管理

    5、场地管理

    6、公告管理

    7、评论管理

    8、预约场地管理

    9、个人信息管理

    用户

    1、登录注册

    2、浏览网站

    3、查看场地

    4、预约场地

    5、查看公告

    6、评论公告

    7、个人信息管理

    8、评论历史记录查询

    9、预约历史记录查询

    项目简介:
    难度等级:✩✩✩
    用户类型:2角色( 管理员,用户)
    设计模式:MVC
    项目架构:B/S架构
    开发语言:Java语言
    前端技术:bootstrap+HTML、CSS、JS、JQuery、thymeleaf等
    后端技术:springboot+mybatis框架
    运行环境:Windows7或10、JDK1.8
    运行工具:本系统采用idea开发,仅支持idea运行,不支持MyEclipse和eclipse运行,因为三者的骨架不一样,强行导入打开运行可能会导致出现未知的错误。
    数  据  库:MySQL5.5/5.7/8.0版本
    是否基于Maven环境:是
    是否采用框架:是
    数据库表数量:7张表
    JSP页面数量:20多张
    是否有分页:有分页
     

    相关截图

    相关代码

    登录

    1. html>
    2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>体育馆预约系统title>
    6. <link rel="icon" th:href="@{/public/favicon.ico}" type="image/x-icon"/>
    7. <link rel="bookmark" th:href="@{/public/favicon.ico}" type="image/x-icon"/>
    8. <link rel="stylesheet" type="text/css" th:href="@{/css/bootstrap.css}">
    9. <link rel="stylesheet" type="text/css" th:href="@{/css/back.css}">
    10. <link rel="stylesheet" type="text/css" th:href="@{/css/bootstrap-theme.css}">
    11. <script type="text/javascript" th:src="@{/js/jquery-3.6.0.js}">script>
    12. <script type="text/javascript" th:src="@{/js/login.js}">script>
    13. <script th:src="@{/layui/layui.js}" charset="utf-8">script>
    14. <script>
    15. $(function() {
    16. //防止页面后退
    17. history.pushState(null, null, document.URL);
    18. window.addEventListener('popstate', function () {
    19. history.pushState(null, null, document.URL);
    20. });
    21. })
    22. script>
    23. head>
    24. <body onload="loadTopWindow()">
    25. <div id="magicalDragScene" class="mc-root mc-ui-absolute-pane">
    26. <h1 style="margin-left: 56%;margin-top: 8%;font-family: 隶书;font-size: 60px;color: white" >体育馆预约系统h1>
    27. <br>
    28. <div id="tmd" style="width: 25%;height: 300px;">
    29. <form style="margin: 0 auto;width: 80%;height: 300px;" th:action="@{/loginUser}" method="post" onsubmit="return regCheck()">
    30. <h1 class="h3 mb-3 font-weight-normal" style="color:white;font-family: 隶书;text-align: center;" >登录h1>
    31. <input id="username" name="username" class="layui-input" type="text" th:placeholder="请填写用户名"/>
    32. <input id="password" name="password" class="layui-input" style="margin-top: 5px" type="password" th:placeholder="请填写用户密码" origin-type="password"/>
    33. <br><br>
    34. <select name="type" class="form-control" style="width: 75%">
    35. <option value="1" selected>管理员option>
    36. <option value="2">用户option>
    37. select>
    38. <span id="statusTip" style="color: #d62727;font-size: 15px;margin-left: 40%" th:text="${status}">span>
    39. <br>
    40. <p class="mt-5 mb-3 text-muted text-sm-right" style="margin-top: 10px"><span >还没有账号,span>
    41. <a type="button" th:onclick="reg()" >用户注册a>
    42. p>
    43. <button class="layui-btn1" style="width: 300px;height: 40px;font-size: 16px;color: white" type="submit">登录button>
    44. form>
    45. div>
    46. <br>
    47. div>
    48. <script>
    49. layui.use([ 'form','jquery','layer','upload' ], function() {
    50. var form = layui.form,
    51. layer = layui.layer,
    52. $ = layui.jquery,
    53. upload = layui.upload;
    54. form.render();//这句一定要加,占坑
    55. window.reg = function(e){
    56. layer.open({
    57. //调整弹框的大小
    58. area:['500px','800px'],
    59. shadeClose:true,//点击旁边地方自动关闭
    60. //动画
    61. anim:2,
    62. //弹出层的基本类型
    63. type: 2,
    64. title: '用户注册',
    65. //刚才定义的弹窗页面
    66. content: 'register', //这里content是一个URL,如果你不想让iframe出现滚动条,你还可以content: ['http://sentsin.com', 'no']
    67. });
    68. }
    69. })
    70. script>
    71. body>
    72. html>
    1. /**
    2. * 登录
    3. * @param username
    4. * @param password
    5. * @param type
    6. * @param httpSession
    7. * @param model
    8. * @return
    9. * @throws UnsupportedEncodingException
    10. */
    11. @RequestMapping(value = "/loginUser",method = RequestMethod.POST)
    12. public String loginUser( String username,String password, String type,HttpSession httpSession, Model model) throws UnsupportedEncodingException {
    13. Admin admin = new Admin();
    14. if(type !=null&& type.equals("1")){
    15. admin = loginService.selectAdmin(username,password);
    16. if (admin != null){
    17. httpSession.setAttribute("username",admin.getUsername());
    18. httpSession.setAttribute("admin",admin);
    19. httpSession.setAttribute("type",type);
    20. model.addAttribute("type",type);
    21. return "home/homepage";
    22. }else{
    23. model.addAttribute("status","账号或者密码输入错误!");
    24. return "login";
    25. }
    26. }
    27. else if(type.equals("2")){//用户
    28. User user = loginService.selectUser(username,password);
    29. if(user != null){
    30. httpSession.setAttribute("username",user.getRealname());
    31. httpSession.setAttribute("user",user);
    32. httpSession.setAttribute("type",type);
    33. model.addAttribute("type",type);
    34. return "redirect:/toIndex";
    35. //return "home/homepage";
    36. }else{
    37. model.addAttribute("status","账号或者密码输入错误!");
    38. return "login";
    39. }
    40. }else{
    41. model.addAttribute("status","账号或者密码输入错误!");
    42. return "login";
    43. }
    44. }

    其他模块代码都是类似的,此项目适合初学者学习借鉴
    喜欢的朋友的点赞加关注,感兴趣的同学可以研究!!!!!

    项目截图中的数据,很多是用来测试的,需要自行添加合适的数据图片!!
    非开源!!!!!! 感谢  = v =

  • 相关阅读:
    Java基础Integer包装类
    【ICASSP 2023】ST-MVDNET++论文阅读分析与总结
    可见光通信(毕业设计)
    【服务器虚拟化数据恢复】ESXI虚拟机误还原快照的数据恢复案例
    前端工作总结101-根据页面的内容调用
    Android shape记录
    MySQL性能指标TPS\QPS\IOPS如何压测?
    【Dotnet 工具箱】推荐一个使用 C# 开发的轻量级压测工具
    两种方式实现css取消页面鼠标双击选中文字或单击拖动选中文字的效果
    阅读分享--重读Youtube深度学习推荐系统论文,字字珠玑,惊为神文
  • 原文地址:https://blog.csdn.net/qq_43485489/article/details/126428926