java程序设计——MiniBlog

一、团队介绍

成员姓名 任务分配
吴美婷 数据库、实体类设计、数据收集 、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部分编写时,前后端分得任务比较混乱

posted @ 2020-01-10 11:24  听风寂  阅读(709)  评论(0编辑  收藏  举报