个人JavaWeb项目--打造个人图床

本文最后更新于 2020年6月30日 凌晨

项目概述

这个其实就是我个人的期末小项目,不是毕业设计……也不是什么大工程……没有用Springboot,就是最基础的JSP和Servlet,大佬们就别喷我了:-)
项目目的:部署在任意一台个人服务器,可以把服务器变成个人图床服务器。

操作逻辑简述

管理员登陆系统,可以上传本地图片,上传完毕后,可以得到图片直接链接和下载链接;并且可以在后台对图片进行删除。
直接链接:用于markdown的展示,图片每被加载一次,后台自动记录一次。
下载链接:用于下载,图片每被下载一次,后台自动记录一次。

界面展示

首页

登录页

登录后欢迎页面



功能页

请到操作功能内查看

项目结构

非视图层主要结构

controller包 entity包 repository包 service包 util包
CommentServlet Image_Type CommentRepository CommentService JDBCTools
DownloadServlet IP_Count IP_CountRepository DownloadService GetIP
ImageServlet Public_Image Public_ImageRepository DeleteImgService SqlToJson
LoginServlet User_Admin User_AdminRepository FindImgService
LogoutServlet User_Comment User_GuestRepository LoginService
RegisterServlet User_Guest RegisterService
UploadServlet UploadService

确实,有命名不规范……我也是后来看了阿里开发手册才知道的,下次一定改。

非实体层次要结构

这边是filter的结构:

CheckLoginFilter

监测用户是否已经登陆,否则回到登陆页面

UTF8Filter

对页面UTF-8编码

视图层

游客 管理员 公共
Guest_Control.jsp Admin_Control.jsp index.jsp
Admin_Upload.jsp login.jsp
CommentControl.jsp Support.html
FindAllOfIP.jsp Comment.jsp
ALLPlus.jsp
Cartoon.jsp
Others.jsp
Wallpaper.jsp

其实是因为,我本来的目的是一个图片下载网站,所以有游客系统和评论系统;改成图床,这些都没删……

操作功能

因为改成图床系统了,所以我就只提管理员功能了。
其实我个人觉得,比如:jsp的一些基本东西就好,还有一些逻辑思维吧,不如:分页怎么实现、登入验证怎么做到。对以后写代码,逻辑思维有帮助……

上传图片

Admin_Upload.jsp是上传视图层,用户可以上传自己的图片进入服务器,同时数据库上存图片在服务器的位置。

管理图片

对数据库图片进行展示,并提供删除操作。

下载功能

下载用户触发下载机制,根据数据库的地址定位到服务器上的图片,以二进制流的方式传回本地

图床功能

对上传的图片,提供图片直接链接,用于博客内Markdown图片展示。因为功能采用http协议的get方式,所以 后台数据库记录图片调取次数

快速使用

数据库创建

可以到GitHub上下载sql结构文件,管理员用户需要手动在User_Admin内参加(因为原来是设计成下载站的原因,注册用户为游客……)

项目打包

导入项目到IDEA内,编辑c3p0-config.xml流量池为自己服务器地址:

1
2
3
4
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://server's ip:3306/ImageControl?useUnicode=true&amp;characterEncoding=UTF-8</property>
<property name="user">username</property>
<property name="password">password</property>

打包成war文件,到Tomcat服务器运行即可。

待完善功能

因为第一次打比较正式的项目……bug和功能不完善……

重要-上传图片重命名

我项目上传的图片是没有重命名的,这显然是不对的;这样导致不能上传两张名字一样的图片。

重要-规范代码

我真的应该先好好看看阿里开发者文档再打项目的,很多地方不规范。

次要-增加专属文件夹

原来考虑是搭建图片下载网站的,所以设计的是多位浏览游客,一位管理员上传、管理图片;所以没考虑太多……现在这样,显然也是不合理的。

开源地址

这个,其实我是很不愿意的;因为代码……我现在就知道写的很乱;但是还是开源吧,大家就偷偷笑我好了,以后我会开自己代码,应该也会忍不住笑出声吧,哈哈哈。

2020.06.10
感谢很多人私信给我的建议;但是也有人自己自以为是,连JavaWeb都没学过,就指着我这个练手的JavaWeb项目说?你这么厉害,你自己实现给我看啊。该项目永不更新,不再接受任何反馈和指责,谢谢。该项目停止更新!

GitHub

GitHub项目地址:https://github.com/Mintimate/ImageHost

写在最后

因为第一次写,所以确实很多地方需要完善;另外,我其实是学完Spring的,如果真的要问我Servlet和JSP有没有必要学?我个人觉得还是有必要学一下的,一开始就Spring,可能上手太难。
如果你也是和我一样,还在学习编程语言,可以和我一起讨论讨论。



个人JavaWeb项目--打造个人图床
https://www.mintimate.cn/2020/06/01/JavaWeb/
作者
Mintimate
发布于
2020年6月1日
许可协议