JavaWeb项目1-QQZone
一.项目需求
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相关推荐
- javaweb学习记录-qqzone项目-结构分析
回顾下之前学习的水果项目的mvc各层设计 qqzone项目结构 几个问题及分析 3. 系统启动时,我们访问的页面是: http://localhost:8080/pro23/page.do?opera ...
- 使用maven搭建ssm框架的javaweb项目
目前主流的javaweb项目,常会用到ssm(Spring+Spring MVC+Mybatis)框架来搭建项目的主体框架,本篇介绍搭建SSM框架的maven项目的实施流程.记之共享! 一.SSM框架 ...
- 【运维】阿里云宝塔面板部署JavaWeb项目
本文摘要 · 前几年买了阿里云的ECS服务器,当时配置宝塔面板都是找朋友帮我弄的,去年一个项目给某公司做官网,涉及到域名解析的事情,最近开发项目又涉及到部署PHP项目.部署JavaWeb项目的工作.抽 ...
- eclipse(myeclipse) JavaWeb项目导入Idea2017
2019独角兽企业重金招聘Python工程师标准>>> eclipse(myeclipse) JavaWeb项目导入Idea2017 转载于:https://my.oschina.n ...
- (014)java后台开发之用tomcat发布自己的javaWeb项目
本地模拟tomcat发布javaWeb项目需要: 1.Mac本地安装tomcat. 2.Mac安装Eclipse-JavaEE. 3.tomcat 在Mac的安装. (http://blog.csdn ...
- JavaWeb 项目安全问题及其解决方案
JavaWeb 项目安全问题及其解决方案 参考文章: (1)JavaWeb 项目安全问题及其解决方案 (2)https://www.cnblogs.com/lhhitnote/p/5531567.ht ...
- log4j在javaWeb项目中的使用
在前边的文章中对log4j的配置文件进行了说明,今天介绍如何在普通的javaWeb项目中使用log4j. 在日常的开发过程中,日志使用的很频繁,我们可以利用日志来跟踪程序的错误,程序运行时的输出参数等 ...
- eclipse 将javaWeb项目转化成maven项目
eclipse 将javaWeb项目转化成maven项目 CreateTime--2018年4月18日16:04:18 Author:Marydon 1.首先,maven项目的标准目录 2.web项目 ...
- 后台技术-JavaWeb项目初识
############################################# 安装包 myeclipse 10 https://pan.baidu.com/s/13rBksHrR96Po ...
- 新建JavaWeb项目
新建JavaWeb项目 说明:通过Tomcat和部署了Tomcat的IDEA两种方式新建JavaWeb项目 仅由Tomcat创建JavaWeb项目 新建项目文件 在webapps文件夹下,新建一个项目 ...
最新文章
- 第十五章 深入分析iBatis框架之系统架构与映射原理(待续)
- 9.切换 iframe
- IT人的十八般武艺-序言
- C#如何使用DirectX实现视频播放
- python和django中的常见错误
- 洛谷P3369 普通平衡树
- Linux Rsync服务详解(一)——Rsync基本命令与使用
- 开源项目 05 Dapper
- 草根站长胖子讲述做站故事
- C语言程序设计(第五版)-谭浩强著-课后习题
- 如何下载Idea专业版
- kux格式 linux,怎么把1080P的kux视频转换成mp4呢
- 应用实例 | 手把手教你用OpenCV实现餐盘水果识别计价程序(附代码)
- java计算机毕业设计糖果销售管理系统源码+系统+数据库+lw文档+mybatis+运行部署
- Debezium同步之oracle rac数据到oracle单机的安装步骤
- 【剑桥摄影协会】Photoshop中的USM算法(Unsharp Mask)
- 有符号数与无符号数之间运算问题
- 如何撰写管理咨询项目建议书
- 1月的碎碎念,但是很有必要
- DAC8760+STM32F407单电源电路硬件测试
热门文章
- 很不错的html学习资料
- Hive学习笔记——parse
- 3D模型欣赏:《死亡搁浅》角色Porter 次世代 现实主义 【3D游戏建模教程】
- [置顶] java-在非安全网络上建立可信任安全的通道(1/3)
- 春游4.1 | 湖南多校赛20190331 / 16东京区域赛
- 微信沟通的当下,你有多久没登陆过QQ?
- 解决opencv保存视频打不开问题
- ansible的安装、使用
- VScode VSC Netease Music(网易云音乐)插件
- 帝国cms如何导入php模板,帝国CMS模板组导入导出更换模板