一.思路

  1. 功能:做一个能够发说说并且附带图片,可以进行点赞,发表评论(评论只做了一级评论)

  2. 数据库:comment(评论表),dynamic(动态表),like(点赞表)
    dynamic表:

    comment表:

    Like表:

  3. 思路
    3.1:上传的图片保存路径在项目的本地目录,新建一个img,在img下,文件夹采用按月存储, 图片名,采用 用户id_时间戳.后缀名 这样的方式应该是可以保证上传图片不被覆盖。

3.2:注意:我这个点赞表,在客户端是不显示具体的点赞人的名字的。

二.Java Web端实现(这里是采用原生servlet实现,如果使用mvc框架会更方便一点)

1.上传采用: fileupload 框架,下载与使用我参考了这个博客:https://www.cnblogs.com/feipeng8848/p/6769261.html

2:根据 fileupload 封装了一个 保存 图片的 ImgSaveUtil,

public class ImgSaveUtil {/*** 将图片保存在 项目根目录下/img/时间文件夹/id_ 时间戳.后缀* @param request * @param servlet* @param id 上传图片的用户id* @return 保存成功的 图片路径*/
public static List<String> saveToLocalImg(HttpServletRequest request, HttpServlet servlet, String id) {List<String> paths = new ArrayList<String>();Boolean isMultipart = ServletFileUpload.isMultipartContent(request);if (isMultipart) {// 创建工厂 (这里用的是工厂模式)DiskFileItemFactory factory = new DiskFileItemFactory();// 从servletContext中得到上传来的数据factory.setSizeThreshold(1024*100);    // 缓冲区大小100kbServletContext servletContext = servlet.getServletConfig().getServletContext();File repository = (File) servletContext.getAttribute("javax.servlet.context.tempdir");ServletFileUpload upload = new ServletFileUpload(factory);upload.setFileSizeMax(512*1024);    // 设置单文件大小为512kbupload.setSizeMax(512*1024*9);    //最多发9张图片try {// 从request 中获取 FileItemList<FileItem> items = upload.parseRequest(request);for(int i = 0; i < items.size(); i++){FileItem item = items.get(i);if (item.isFormField()) {    //普通的文本输入域 不进行处理continue;}// 限制上传文件类型String name = item.getName();    // 获取上传文件的名字List<String> fileType = Arrays.asList(".png", ".jpg");String fileExtName = name.substring(name.lastIndexOf("."));    // 获取文件后缀名if (!fileType.contains(fileExtName)) {    // 不在限制的格式内System.out.println("上传图片格式不正确");continue;}// 数据库存储的路径String path = TimeUtil.getYearMonth()+ "\\" + id + "_" + TimeUtil.getTimeStamp() + fileExtName;// 本地保存的路径String savePath = request.getRealPath("/img")+"\\" + path;System.out.println("保存地址" + savePath);File file = new File(savePath);if (!file.exists()) {try {file.createNewFile();    } catch (IOException e) {    e.printStackTrace();    }    }FileOutputStream fos = new FileOutputStream(file);                  InputStream fis = (InputStream) item.getInputStream();IOUtils.copy(fis, fos);    // 内置utils 类 读取inputstream 数据 到 outputstreamfis.close();fos.close();paths.add(path);//打印List中的内容(每一个FileItem的实例代表一个文件,执行这行代码会打印该文件的一些基本属性,文件名,大小等)System.out.println(item);}} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}return paths;
}
}

3:获取到 保存图片返回的路径, 将 这些 信息 插入到数据库,发表说说的功能 就ok了

类似于 qq发说说动态 基于原生servlet 后台方案相关推荐

  1. 【java毕业设计】基于javaEE+原生Servlet+MySql的村镇旅游网站设计与实现(毕业论文+程序源码)——村镇旅游网站

    基于javaEE+原生Servlet+MySql的村镇旅游网站设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+原生Servlet+MySql的村镇旅游网站设计与实现,文章末尾 ...

  2. 【java毕业设计】基于javaEE+原生Servlet+MySql的企业财务管理系统设计与实现(毕业论文+程序源码)——企业财务管理系统

    基于javaEE+原生Servlet+MySql的企业财务管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+原生Servlet+MySql的企业财务管理系统设计与实现, ...

  3. 【java毕业设计】基于javaEE+原生Servlet+SqlServer的医院管理住院系统设计与实现(毕业论文+程序源码)——医院管理住院系统

    基于javaEE+原生Servlet+SqlServer的医院管理住院系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+原生Servlet+SqlServer的医院管理住院 ...

  4. 【java毕业设计】基于javaEE+原生servlet+tomcat的教师工资管理系统设计与实现(毕业论文+程序源码)——教师工资管理系统

    基于javaEE+原生servlet+tomcat的教师工资管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+原生servlet+tomcat的教师工资管理系统设计与实 ...

  5. 【java毕业设计】基于javaEE+原生Servlet+MySql的企业员工信息管理系统设计与实现(毕业论文+程序源码)——企业员工信息管理系统

    基于javaEE+原生Servlet+MySql的企业员工信息管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+原生Servlet+MySql的企业员工信息管理系统设计 ...

  6. 【java毕业设计】基于javaEE+原生Servlet+MySql的Web停车场管理系统设计与实现(毕业论文+程序源码)——停车场管理系统

    基于javaEE+原生Servlet+MySql的Web停车场管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+原生Servlet+MySql的Web停车场管理系统设计 ...

  7. 【java毕业设计】基于javaEE+原生Servlet+MySql的网络考试系统设计与实现(毕业论文+程序源码)——网络考试系统

    基于javaEE+原生Servlet+MySql的网络考试系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+原生Servlet+MySql的网络考试系统设计与实现,文章末尾 ...

  8. 【java毕业设计】基于javaEE+原生Servlet+jsp的人力资源管理系统设计与实现(毕业论文+程序源码)——人力资源管理系统

    基于javaEE+原生Servlet+jsp的人力资源管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+原生Servlet+jsp的人力资源管理系统设计与实现,文章末尾 ...

  9. 仿qq空间java源码_android 发说说动态源码下载(高仿QQ空间,含图片多选)

    [实例简介]仿qq发动态,图片发布效果 [实例截图] [核心代码] package com.king.photo.activity; import android.annotation.Suppres ...

最新文章

  1. Linux上PHP加入环境变量
  2. Ubuntu 16.04使用root 帐号开启 SSH 登录
  3. 关于__str__的介绍
  4. java 耦合度_Java第三十八天,Spring框架系列,使用工厂模式降低程序耦合度
  5. C 语言结构体引用,引用 C 语言结构体学习
  6. java抓取百度搜索结果_java实现抓取百度对某站点搜索结果
  7. Signaltap的使用
  8. 手机html5测试苹果八,怎么简单质检你的iPhone手机以及真假判断!
  9. AE常用快捷键及最常用功能说明
  10. OSChina 周三乱弹 —— 我在 if 里,你却在 else
  11. android nfc P2P模式
  12. 英特尔oneAPI—开拓
  13. 使用链表进行奇偶分排 c语言
  14. 计算机联锁想系统包括哪几层,计算机联锁系统技术_习题.ppt
  15. Handler 简介
  16. markdown表情
  17. 安装EDEM出现There is a problem with this Windows Installer package问题
  18. CTF之crpto练习三
  19. 区块链如何破解供应链金融痛点
  20. PMON学习记录2:PMON启动流程1

热门文章

  1. 程序员35岁压哨转行事业单位3年有感
  2. Lora源码的相关问题(lora_pkt_fwd.c 修改记录)
  3. 开场舞蹈 #普及组#
  4. plt.plot()的使用
  5. FFmpeg(5) -- 相关工具类
  6. C++中的泛型编程有函数模板与类模板
  7. 洛克希德·马丁定义的“杀伤链”
  8. 2017移动端UI设计规范模板参考以及设计规范的好处
  9. Html5 获取手机短信号码
  10. Python 学习文档