一.项目需求

1.登录功能。

2.进入自己的空间,左侧显示好友列表,右侧显示日志列表。

3.点击日志,进入日志详情。

4.日志详情下面是好友回复,空间主人可以对好友回复进行主人回复,一个好友回复主人只能回复一次。

5.添加回复功能,在每个人的空间或自己的空间都可以添加回复

6.删除日志,日志关联的所有回复和回复的主人回复都要删除

二.数据库设计

 1.抽取实体

  • 用户信息:用户基本信息+用户详细信息
  • 日志
  • 回复
  • 主人回复

2.分析实体属性

  • 用户基本信息:账号,密码,头像,昵称
  • 用户详细信息:真实姓名,电话,邮箱,出生日期,星座
  • 日志:标题,内容,日期,作者
  • 回复:针对回复的日志,日期,作者,内容
  • 主人回复:针对哪个回复进行的回复,日期,作者,内容

3.分析实体间关系

  • 用户基本信息:用户详细信息=1:1
  • 用户:日志=1:n
  • 日志:回复=1:n
  • 回复:主人回复=1:1
  • 用户:好友=m:n        一个人有多个好友,一个人可以成为多个人的好友

4.创建数据库表

t_user_basic表        用户基本信息表

id为主键

loginId为登录账号

nickName为昵称

pwd为密码

headImg为头像

t_user_datail表        用户详细信息表

id是主键

realName是真实姓名

tel是电话

email是邮箱

birth是出生日期

star是星座

这个表中的信息项目中没有用,拓展的话可以用到

t_topic表        日志表

id是主键

title是日志的标题

content是日志的内容

topicDate是日志发布时间

author是日志的作者,该字段引用t_user_basic表中的id。

t_reply表        回复表

id是主键

content是回复的内容

replyDate是回复的日期

author是回复的作者,引用t_user_basic的id

topic针对哪篇日志进行回复,引用t_topic中的id

t_host_reply        主人回复表

id是主键

content是主人回复内容

hostReplyDate是主人回复时间

author主人的名字,引用t_user_basic的id

reply是针对哪篇进行的回复,引用t_reply的id

t_friend        好友表

id是主键

uid和fid对应是朋友关系

都引用t_user_basic的id

三.Web页面设计

登录界面

首页

日志页面

四.后端设计

1.POJO层

将数据库中的实体对应到Java中的类,通过对类的操作达到对数据的操作。

 2.DAO层

3.service层

4.controller层

五.功能实现

1.登录功能

思路

  • 在表单中填写账号和密码,提交表单,UserController收到账号密码
  • userBasicService根据账号密码调用DAO查询对象并返回该对象
  • 如果对象是非空,进入主页,如果对象是空,返回登录界面。

2.显示好友列表

思路 

  • 登录时返回了当前用户这个对象,可以获取到当前用户的ID
  • 根据当前用户ID去好友表中查询所有好友的ID,封装到List<UserBasic>中,这个List中的所有UserBasic对象只有id属性有值。
  • 新创建一个UserBasic的集合,根据id再获取所有的好友用户。
  • 因为用户的好友是和用户相关的,可以将该集合保存的用户的属性中
  • 再将用户保存到作用域中
  • 在页面上展示好友的nickName

3.显示自己的日志

思路 

  • 根据当前用户的IDTopicService层查询去查询t_topic表,author值与ID相同的即为当前用户的日志。
  • 显示日志的标题

4.返回自己空间

思路

  • 在自己空间时不显示返回空间的超链接,在好友空间时显示。
  • 需要有一个判断的标准,首先登录时,将当前用户存入了user作用域。
  • 再创建一个friend作用域,默认存当前user,点击好友时,将好友存入这个作用域。
  • 通过判断两个作用域的ID是否相等,来确定是否显示返回自己空间的超链接
  • 点击好友时,传入好友的ID给UserController,根据好友的ID获取好友对象再存入friend作用域。
  • 并返回到index,这时friend和user作用域就不相等了。

5.查看好友空间

思路

  • 点击好友在中心区域显示好友的日志。
  • 点击好友传入好友的ID,根据id查询t_topic表中与author相同的记录并返回。
  • 保存到好友属性的List<Topic>中。

6.点击日志查看详情,显示回复

思路

根据日志的id,查询t_reply列表,t_reply列表的topic取值来自日志的id

查询出来的回复列表保存的Topic中的属性List<Reply>中,将Topic的对象保存到作用域。

7.显示主人回复

思路

主人回复是针对回复进行的回复,并且一个回复只能有一个主人回复。

百度网盘提取

链接:https://pan.baidu.com/s/1OXJRJJuWXHe6BVvuvr9VtQ?pwd=1234 
提取码:1234

JavaWeb项目1-QQZone相关推荐

  1. javaweb学习记录-qqzone项目-结构分析

    回顾下之前学习的水果项目的mvc各层设计 qqzone项目结构 几个问题及分析 3. 系统启动时,我们访问的页面是: http://localhost:8080/pro23/page.do?opera ...

  2. 使用maven搭建ssm框架的javaweb项目

    目前主流的javaweb项目,常会用到ssm(Spring+Spring MVC+Mybatis)框架来搭建项目的主体框架,本篇介绍搭建SSM框架的maven项目的实施流程.记之共享! 一.SSM框架 ...

  3. 【运维】阿里云宝塔面板部署JavaWeb项目

    本文摘要 · 前几年买了阿里云的ECS服务器,当时配置宝塔面板都是找朋友帮我弄的,去年一个项目给某公司做官网,涉及到域名解析的事情,最近开发项目又涉及到部署PHP项目.部署JavaWeb项目的工作.抽 ...

  4. eclipse(myeclipse) JavaWeb项目导入Idea2017

    2019独角兽企业重金招聘Python工程师标准>>> eclipse(myeclipse) JavaWeb项目导入Idea2017 转载于:https://my.oschina.n ...

  5. (014)java后台开发之用tomcat发布自己的javaWeb项目

    本地模拟tomcat发布javaWeb项目需要: 1.Mac本地安装tomcat. 2.Mac安装Eclipse-JavaEE. 3.tomcat 在Mac的安装. (http://blog.csdn ...

  6. JavaWeb 项目安全问题及其解决方案

    JavaWeb 项目安全问题及其解决方案 参考文章: (1)JavaWeb 项目安全问题及其解决方案 (2)https://www.cnblogs.com/lhhitnote/p/5531567.ht ...

  7. log4j在javaWeb项目中的使用

    在前边的文章中对log4j的配置文件进行了说明,今天介绍如何在普通的javaWeb项目中使用log4j. 在日常的开发过程中,日志使用的很频繁,我们可以利用日志来跟踪程序的错误,程序运行时的输出参数等 ...

  8. eclipse 将javaWeb项目转化成maven项目

    eclipse 将javaWeb项目转化成maven项目 CreateTime--2018年4月18日16:04:18 Author:Marydon 1.首先,maven项目的标准目录 2.web项目 ...

  9. 后台技术-JavaWeb项目初识

    ############################################# 安装包 myeclipse 10 https://pan.baidu.com/s/13rBksHrR96Po ...

  10. 新建JavaWeb项目

    新建JavaWeb项目 说明:通过Tomcat和部署了Tomcat的IDEA两种方式新建JavaWeb项目 仅由Tomcat创建JavaWeb项目 新建项目文件 在webapps文件夹下,新建一个项目 ...

最新文章

  1. 第十五章 深入分析iBatis框架之系统架构与映射原理(待续)
  2. 9.切换 iframe
  3. IT人的十八般武艺-序言
  4. C#如何使用DirectX实现视频播放
  5. python和django中的常见错误
  6. 洛谷P3369 普通平衡树
  7. Linux Rsync服务详解(一)——Rsync基本命令与使用
  8. 开源项目 05 Dapper
  9. 草根站长胖子讲述做站故事
  10. C语言程序设计(第五版)-谭浩强著-课后习题
  11. 如何下载Idea专业版
  12. kux格式 linux,怎么把1080P的kux视频转换成mp4呢
  13. 应用实例 | 手把手教你用OpenCV实现餐盘水果识别计价程序(附代码)
  14. java计算机毕业设计糖果销售管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  15. Debezium同步之oracle rac数据到oracle单机的安装步骤
  16. 【剑桥摄影协会】Photoshop中的USM算法(Unsharp Mask)
  17. 有符号数与无符号数之间运算问题
  18. 如何撰写管理咨询项目建议书
  19. 1月的碎碎念,但是很有必要
  20. DAC8760+STM32F407单电源电路硬件测试

热门文章

  1. 很不错的html学习资料
  2. Hive学习笔记——parse
  3. 3D模型欣赏:《死亡搁浅》角色Porter 次世代 现实主义 【3D游戏建模教程】
  4. [置顶] java-在非安全网络上建立可信任安全的通道(1/3)
  5. 春游4.1 | 湖南多校赛20190331 / 16东京区域赛
  6. 微信沟通的当下,你有多久没登陆过QQ?
  7. 解决opencv保存视频打不开问题
  8. ansible的安装、使用
  9. VScode VSC Netease Music(网易云音乐)插件
  10. 帝国cms如何导入php模板,帝国CMS模板组导入导出更换模板