java mweb_url_个人JavaWeb项目--打造个人图床
项目概述
这个其实就是我个人的期末小项目,不是毕业设计……也不是什么大工程……没有用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流量池为自己服务器地址:
com.mysql.cj.jdbc.Driver
jdbc:mysql://server's ip:3306/ImageControl?useUnicode=true&characterEncoding=UTF-8
username
password
打包成war文件,到Tomcat服务器运行即可。
待完善功能
因为第一次打比较正式的项目……bug和功能不完善……
重要-上传图片重命名
我项目上传的图片是没有重命名的,这显然是不对的;这样导致不能上传两张名字一样的图片。
重要-规范代码
我真的应该先好好看看阿里开发者文档再打项目的,很多地方不规范。
次要-增加专属文件夹
原来考虑是搭建图片下载网站的,所以设计的是多位浏览游客,一位管理员上传、管理图片;所以没考虑太多……现在这样,显然也是不合理的。
开源地址这个,其实我是很不愿意的;因为代码……我现在就知道写的很乱;但是还是开源吧,大家就偷偷笑我好了,以后我会开自己代码,应该也会忍不住笑出声吧,哈哈哈。
2020.06.10
感谢很多人私信给我的建议;但是也有人自己自以为是,连JavaWeb都没学过,就指着我这个练手的JavaWeb项目说?你这么厉害,你自己实现给我看啊。该项目永不更新,不再接受任何反馈和指责,谢谢。该项目停止更新!
GitHub
写在最后
因为第一次写,所以确实很多地方需要完善;另外,我其实是学完Spring的,如果真的要问我Servlet和JSP有没有必要学?我个人觉得还是有必要学一下的,一开始就Spring,可能上手太难。
如果你也是和我一样,还在学习编程语言,可以和我一起讨论讨论。
java mweb_url_个人JavaWeb项目--打造个人图床相关推荐
- 阿里云对象存储OSS打造私人图床私人云存储(1年仅9元)
阿里云对象存储OSS打造私人图床&私人云存储(1年仅9元) 阿里云对象存储OSS(Object Storage Service)是一款海量.安全.低成本.高可靠的云存储服务,提供99.9999 ...
- Chevereto配合PicGo打造个人图床
什么是 Chevereto ? Chevereto 是目前最好的图床之一,功能也非常强大.其免费版和收费版的区别,在于收费版多了硬盘扩展,社交分享功能和技术支持.硬盘扩展指的是使用外部存储,例如:Am ...
- java web-inf_对JavaWeb项目中WEB-INF目录的理解
1:WEB-INF目录的位置,位于WebRoot或WebContent目录内,WEB-INF里默认有lib目录和web.xml配置文件. 2:WEB-INF下面的内容只能由服务器级别才能访问,客户端并 ...
- 图床云存储项目课程随堂笔记
这个项目属实重量级,第一遍学习的过程比较懵,只是记录一下随堂笔记.后面理解了项目后端代码流程,再细写几篇博客归纳. 基本单机环境配置 大的项目你可能连配置都配不清楚. 新手必须要心细,因为你错了一步, ...
- 阿里云自动java和mysql数据库_阿里云服务器之基于Linux系统部署上线JavaWeb项目和连接MySQL数据库(从购买云服务器到发布JavaWeb项目全套详细流程)...
阿里云服务器之基于Linux系统部署上线JavaWeb项目和连接MySQL数据库(从购买云服务器到发布JavaWeb项目全套详细流程) (仅此纪念人生第一篇学习博客) 前阵子接了一个小小的JavaWe ...
- Java源码 JavaWeb开发框架 代码 SSH SSM OA ERP CRM Java项目[Java通用框架源码及开发视频教程]
Java源码 JavaWeb开发框架 代码 SSH SSM OA ERP CRM Java项目 功能简介: A.代码生成器(开发利器) 生成Java各层次的类和JSP等文件,提高开发效率 B.阿里巴巴 ...
- java项目配置过滤器_在JavaWeb项目中如何正确的使用Filter过滤器
在JavaWeb项目中如何正确的使用Filter过滤器 发布时间:2020-11-11 17:12:00 来源:亿速云 阅读:79 作者:Leah 这期内容当中小编将会给大家带来有关在JavaWeb项 ...
- java 实训项目_实训方案(JavaWeb项目实训)-
实训方案(JavaWeb项目实训)- 2012-2013学年第一学期 <Java Web项目开发实训>课程实施方案 课程名称(英文):Training of Java Web Projec ...
- java搭建阿里云服务器环境(java环境+mysql+tomcat)和部署 JavaWeb 项目到云服务器(十分详细)
文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源. 购买一系列的东西 其实就是花钱买块区域,服务器,域名,云解析,花了好多money... 一. ...
最新文章
- 学习笔记之xss原理篇
- RStudio版本号管理 整合Git
- 奥巴马表示10天内债务谈判出结果 债务违约可能性底
- mssql的T-SQL教程(从建登陆到建库、表和约束)
- Linux服务器编程之:link()函数,ln命令,symlink,readlink,案例说明
- .htaccess 后门
- linux ucontext 类型,协程:posix::ucontext用户级线程实现原理分析 | WalkerTalking
- Cyptoquant CEO:2021年ETH历史最高价与2018年不同,抛压明显更弱
- React中受控组件和非受控组件
- JAVA读取Properties文件对象常用方法总结
- Facebook正测试对话式的评论新界面
- 啦啦外卖独立版40.4最新外卖源码全开源
- 新建文件没有word、ppt、excel,office图标显示为白色,不能正常显示
- 潘通色号与rgb转换_中秋福利!手把手教你用Python做一只口红色号识别器,秒变李佳琦...
- 用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给该函数.
- pool(六)——JedisPool
- SpringBootApplication是哪三个注解
- mysql grant失败_grant授权“失败”的原因
- springboot项目之部署阿里云服务器--简版
- NAVICAT 还原mssql bak备份文件