呃突然发现这玩意是干嘛的还没写。有点想法没做完并且不知道什么时候会做,把整体结构捋一遍备忘。
1. 简介
大一时候的导论课老师说可以做一个网站,把学到的东西一点点加进去。这种感觉听上去蛮好的,于是寒假做了一堆页面,大部分是本地静态页面并且到现在还是工地状态,虽然重新打开的时候发现以前审美吊打现在。但一个叫somewords的页面是做完的,后面还真的在用。其主要功能为记录说的一些废话,使用方式非常原始,需要手动打 和<br>来对齐和换行。
以上为历史背景。
今年突然发现自己该学点Java Web去找工作了,于是想把这个东西重写一遍以熟练相关技术,顺便优化使用体验(这个博客还不够装你的废话是吗)。听说Servlet要深入学,也不知道真的假的先用了再说,于是有了Vue+Servlet这种怪东西。弄了两天被判死缓,可以不用那么急了,因此陆陆续续摆到现在做完。
以上为近代史背景。
代码扔Github了。
目前效果:
2. 前端
打开页面,加载当前年份记录;
最上面为年份,左边是月份,右边是具体内容,点击月份可以跳转到对应位置。内容下面是编辑器。
Daily:显示具体内容的小方块;
HelloWorld:主页面,获得数据并分发给Daily;
SummerNote:编辑器,共有两个post操作,上传图片时会将图片post到临时文件夹并在编辑器内预览,正式发布时将用到的图片放到最终文件夹并清空临时文件夹;
数据格式:
{month:"Jan",
content:[
{date:"2023/1/25",
location:"上海",
type:"richText",
source:"myself",
diary:"晴朗。"}
]}
内容以月份分组(数据库里数据长这样而且便于链接),里面是这个月的内容。后面希望可以展示本地图片,图片和富文本用的模板应该不一样;source是以后用来源分类可能会比较方便。
3. 后端
Diary:上传日记
GetDiary:获取某一年的日记
Picture:将编辑器图片放到临时文件夹并返回URL
handlers:处理数据库返回数据的handler
DbUtil:数据库连接工具,使用时传SQL语句,如果有返回数据要处理再传一个Handler
java复制文件:
FileInputStream fis = new FileInputStream(s1+m.group(1)); FileOutputStream fos = new FileOutputStream(s2+m.group(1)); FileChannel inputChannel = fis.getChannel(); FileChannel outputChannel = fos.getChannel(); inputChannel.transferTo(0, inputChannel.size(), outputChannel); outputChannel.close(); inputChannel.close(); fos.close(); fis.close();
删除文件:
File file=new File(s1); File[] files = file.listFiles();//将file子目录及子文件放进文件数组 if (files != null) {//如果包含文件进行删除操作 for (int i = 0; i < files.length; i++) { if (files[i].isFile()) {//删除子文件 files[i].delete(); } files[i].delete();//删除子目录 } }
一个很厉害的正则表达式:C#正则表达式提取HTML中IMG标签的SRC地址
4. 结尾
后续想把看到的好玩的内容标注来源,整合进来,要不然哪天就404了。但还没想好整理方式和存储方式。
本地上传的图片就不要再存一道了
文件路径稍微有点迷
加载图片的时候不知道为什么先会请求一遍文件夹,然后404一下
写的时候感觉还有别的问题来着,但想不起来了,先这样吧。
哦想起来了,表单校验没做。