个人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 |
|
打包成war文件,到Tomcat服务器运行即可。
待完善功能
因为第一次打比较正式的项目……bug和功能不完善……
重要-上传图片重命名
我项目上传的图片是没有重命名的,这显然是不对的;这样导致不能上传两张名字一样的图片。
重要-规范代码
我真的应该先好好看看阿里开发者文档再打项目的,很多地方不规范。
次要-增加专属文件夹
原来考虑是搭建图片下载网站的,所以设计的是多位浏览游客,一位管理员上传、管理图片;所以没考虑太多……现在这样,显然也是不合理的。
开源地址
这个,其实我是很不愿意的;因为代码……我现在就知道写的很乱;但是还是开源吧,大家就偷偷笑我好了,以后我会开自己代码,应该也会忍不住笑出声吧,哈哈哈。2020.06.10
感谢很多人私信给我的建议;但是也有人自己自以为是,连JavaWeb都没学过,就指着我这个练手的JavaWeb项目说?你这么厉害,你自己实现给我看啊。该项目永不更新,不再接受任何反馈和指责,谢谢。该项目停止更新!
GitHub
GitHub项目地址:https://github.com/Mintimate/ImageHost
写在最后
因为第一次写,所以确实很多地方需要完善;另外,我其实是学完Spring的,如果真的要问我Servlet和JSP有没有必要学?我个人觉得还是有必要学一下的,一开始就Spring,可能上手太难。
如果你也是和我一样,还在学习编程语言,可以和我一起讨论讨论。