Java课程设计团队博客
引子:
该博客仅提供宏观概念、逻辑原理、以及项目功能的展示,不进行具体的细化阐述,详细的技术原理请根据成员分工去查看成员的个人博客链接。
组员 | 职务 | 负责模块 | 博客链接 |
---|---|---|---|
骆锟宏 | 组长 | 项目框架的搭建以及前后端交互(主要是从页面读取到数据库);过滤器的编写;项目的整合和代码规范与调试;组织组员解决技术问题推进项目进度 | 博客链接 |
陈剑 | 成员 | 实现了前后端交互(主要是将后端数据展示到前端);服务器的搭建和管理;为数据库增加连接池以及数据库管理;团队技术顾问 | 博客链接 |
吴俊豪 | 成员 | 前端静态页面的设计;协同解决项目前后端需求的修改;项目网页的域名申请与解析 | 博客链接 |
林进源 | 成员 | 数据库DAO代码实现以及数据库的管理;实体类的实现;协同解决项目其他问题.(切实有协助进程推进) | 博客链接 |
项目的网站:
- 可以通过该网站来访问我们的web项目。
点这里访问我们的论坛首页。 - 项目通过阿里的静态代码扫描后:并不存在明显的错误:
1. 项目简介
- 这是一个是实现了:
- 登录/注册
- 区分了管理员与用户。
- 对网页访问有一定的安全权限限制
- 可以实现正常发贴子的网页论坛。
- 值得一提的是,虽然依然有诸如删除帖子、修改用户信息、对贴子进行回复等功能没有实现,且存在从网页端从数据库中写入中文会出现乱码的问题,但是我们的项目的整体架构和层次的分离十分清晰在架构上我们很好地将页面显示,数据库控制,以及前后端交互的业务逻辑分离开来,十分方便功能的添加的和技术的拓展,项目本身可以作为一个网页论坛或者相关类似系统的基础,进行舒适的拓展。
2. 项目采用技术
- 前端
- Html、css、Bootstrap框架、部分使用到了Json、vue框架、ajax技术(axios)。
- 前后端交互
- Servlet
- 后端
- JDBC以及使用了数据库连接池:druid
- 服务器
- Tomcat
3. 功能需求分析
- 作为一个在线论坛,其最重要的功能莫过于能发送帖子,并且帖子能在社区中被大家所看到,这个是最为核心的功能,同时,由于帖子相关的绑定属性,所以用户身份也就变得重要起来,所以用户的注册和登录也是一大重要的需求。
- 于是我们本次的课程设计,也便是在基于web开发的基础上,围绕着这两个核心点展开,从而拓展其他的功能:包括引入了管理员这一身份预设用于管理用户和帖子。
- 项目层次
4. 项目亮点
- 项目采用了MVC的开发模式,即把前端显示(View),后端的数据实体类(模型:Model)【当然包括它进行数据持久化的DAO层】,**以及前后端交互的业务逻辑控制层(Servlet)**区分开来了。
- 使得前端可以专注于同用户进行数据交互;
- DAO可以专注于对数据进行持久化管理;
- service层和servlet层可以专注于业务逻辑的控制;
- 最终使得将对于项目功能的实现,转化成在各层之间进行合理的数据传输。
- 其中项目在后端的分层也很合理。
- 我们的项目架设到了web服务器上,只要连接到互联网上的设备都可以通过开头给出的网址来访问我们的项目。
- 我们的项目的Web前端设计得相对美观。
- 主页欣赏:
- 注册页面欣赏:
- 论坛主页:
- 还有其他页面,在后续的功能展示中会一一出现。
- 该项目所使用的课外技术广泛。(在开头的所使用的技术中可以看到)
5. 主要功能截图
(由于功能设计跳转比较多,所以在此处仅简单注明,具体过程可以看具体展示)
- 登录功能(包括用户和管理员):
- 用户:
登录成功后的论坛页面:(如果登录不成功将会刷新页面)
管理员:
管理员登陆后的后台:(如果登录不成功也将会刷新页面)
- 注册功能:
- 注册中对用户名,密码,手机号都有明确的规范,这个在展示的时候具体体现。
- 用户名不能为空并且不能与已有的重复。
- 密码不能少于3位且不能为中文。
- 手机号必须要求有效!
- 用户名不能为空并且不能与已有的重复。
- 并且通过对数据库的设定实现了用户名的统一化,如果数据库中的用户名已经存在的话,便无法注册成功。
- 注册不成功会重新刷新页面。
- 用户功能:
- 可以查看所有人的帖子:
- 可以发帖:
- 可以查看个人信息:
- 可以查看自己写的帖子:
- 可以退出登录(会返回到首页(也就是登录页))
- 可以查看所有人的帖子:
- 管理员功能:
- 可以查看所有的帖子:
- 可以查看所有用户的信息:
- 可以实现登出(会跳转到登陆页面,也就是主页面)。
- 可以查看所有的帖子:
- 隐藏的安全功能,使用了权限限定的技术,防止用户通过直接修改URL的地址来直接访问到论坛后台。(虽然如果没有账户信息的话,即使能到达论坛页面也没有意义~~)
6. 项目git地址
-
团队代码提交展示:
-
补充说明,由于项目的特殊性,团队成员都是从Web几乎0基础开始挑战这个项目,所以大家没有办法一开始就很合理分配好每个人的具体该做的内容,所以我们项目前期的探索期是直接靠QQ上进行文件的传递,具有直接高效的特点,而待到框架相对成熟之后,我们转而向使用gitee来管理代码。
另外补充我们在QQ上进行交流的频度。
7. 额外的总结和补充。
- 团队项目不同于个人作战,规范和管理很重要,分工和合作也很重要,这些都建议在开始前定好。
- 项目是面对需求的,所以不要拘泥于技术限制,要大胆从效率和功能的角度去学习新技术,明白技术是为人服务的,不要恐惧对新技术的学习。
- 在编写代码的过程中要保持理性和冷静,面对困难不要轻易放弃,要冷静地去寻找解决的办法,这样才能有所提高。
题外话:
本次课设项目,其实对我们团队的所有人来说,都是一次压力很大的挑战,因为除了浅薄的Java面向对象设计基础之外,在课程设计开始前,我们团队的成员几乎没有相关的知识储备,我们所有用到的技术,都是在这短短的课设时间内硬肝出来的,并且由于大家都需要先学习后实践,我们团队的管理也不同于那类有清晰的需求分析和技术定位的项目,我们更像是抓住一个方向,往这个方向去探索和研究。
在这种模式下,我们团队成员的编程能力得到了很大的提高,但也不得不承认的是,在功能的实现上,我们团队实现地并没有很完善,这一点是不得不承认的,但是我们不后悔我们挑战的难题的选择!