一、团队介绍
成员姓名 | 任务分配 |
---|---|
吴美婷 | 数据库、实体类设计、数据收集 、servlet的设计 |
林舒馨 | html页面设计、前后端交互、servlet的设计 |
一个简单的个人博客,实现用户注册和登录,个人主页,文章编写、查看,建索、分词搜索。
二、项目git链接
https://gitee.com/fengqiyunyan/Mini-Blog
三、项目git提交截图
四、项目设计技术
Mybatis
数据库dao模式
MVC
Axios
Bootstrap
vue
Web
五、项目功能架构图与主要功能流程图
六、面向对象类图
Passage类:存放作者、标题、内容、编写时间、点击次数
User类:存放用户名、密码、姓名、邮箱、手机、性别
七、项目运行截图
登录界面
注册界面
对于存在的用户名不能注册
个人主页
文章界面
编辑界面
搜索界面
搜索得到的内容
八、项目关键代码
(1)数据库
数据库采用dao模式,在Mybatis框架下进行操作
PassageMapper.xml
UserGeMapper.xml
检索部分
刚开始的时候是想直接用select * from xxx where xxxxx like '%xx%' 这个语法的来返回查询结果的,后来经过百度发现数据库可以用ngram插件进行分词索引,然后查询。如果用 like语法的话,只能外部进行分词再查询,显得不够便捷。
全文检索的定义:全文检索就是先创建索引,然后根据索引来进行搜索的过程,就叫全文检索。
全文检索首先对要搜索的数据或者是文档进行分词,然后形成索引,通过查询索引来查询文档。原理和查字典一样,对于一个不认识的字,我们先在偏旁部首表中找到偏旁,然后跳到所有带这个偏旁的字里面,再来搜寻这个字。再跳到这个词指定的页数,得到我们想要的结果。建立索引的话就是把查字典的过程给逆过来。对于一大段内容,先利用分词器ngram进行分词(拆分成单独的字或词,去除标点,停词等),然后建立索引。搜索的话就和查字典一样了
(2)前后端
使用了axios进行前后端交互,html加载完成之前,执行mounted,通过get方式从服务器获取相应文章数据和用户的个人信息
html加载完成之后通过点击绑定read (item)方法,执行methods, 通过get方式向服务器发送所点击的文章的id.
九、项目扫描结果及改正
扫描结果:
改正后:
十、尚待改进
1、本次课设只有一周的时间,时间赶,任务重,有很多想做的功能没有实现、例如文章的修改和个人信息的修改。
2、Servlet部分编写时,前后端分得任务比较混乱