# weibo **Repository Path**: thgman/weibo ## Basic Information - **Project Name**: weibo - **Description**: :earth_asia:TopView工作室二轮考核项目:微博,weibo是一个类似微博的社交软件系统,主要由微博功能,微博相册,在线聊天,账户管理,关注和粉丝,好友管理,聊天记录管理,聊天群组等功能模块所组成。程序使用java作为后台开发语言,tomcat服务器,以及mysql数据库,以jsp实现界面展示,使用websocket和ajax,以及json实现前后端数据传输 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2022-01-04 - **Last Updated**: 2022-01-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HYCWeiboSystem #### this is 黄钰朝‘s WeiboSystem ------ 欢迎使用本软件,HYCWeiboSystem是一个类似微博的社交软件系统,主要由微博功能,微博相册,在线聊天,账户管理,关注和粉丝,好友管理,聊天记录管理,聊天群组等功能模块所组成。程序使用java作为后台开发语言,tomcat服务器,以及mysql数据库,以jsp实现界面展示,使用websocket和ajax,以及json实现前后端数据传输 ------ # 开发者信息: > 开发者:黄钰朝 > 联系邮箱:kobe524348@gmail.com > 项目启动时间:2019-05-20 > 版本号:1.0 > 发布时间:2019-05-30 > 开源许可:Apache License 2.0 > 开发环境: ###### Idea IntelliJ IDEA 2019.1.1 (Ultimate Edition) ###### Build #IU-191.6707.61, built on April 16, 2019 ###### Licensed to wu anjun ###### Subscription is active until January 8, 2020 ###### JRE: 1.8.0_202-release-1483-b44 amd64 ###### JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o ###### Windows 10 10.0 ------ # 目录 > * 安装运行 > * 功能介绍 > * 亮点介绍 > * 错误处理 > * 版权声明 ------ # 安装环境说明 ### 安装环境 > Tomcat版本:9.0.17 > Jdk 版本:1.8 > MySQL版本:5.7 ### 配置说明 - 数据库配置文件路径:项目路径/src/data_source.properties - sql文件路径: 项目路径/weibo.sql - log4j配置文件路径: 项目路径/log4j.properties - 数据库配置: ##### 在运行sql文件之后需要在数据库group表添加一个id为0的记录,作为默认好友分组,并且把user表的email为“微博团队“的用户的id设置为0,否则程序无法正常运行 - multiConfig配置说明 ##### 项目路径\src\com\hyc\www\controller\impl\servlet\MyServlet.java,在这个类的额注解中配置multiConfig的路径为"项目部署路径\web\upload"文件夹在系统中的绝对路径 - log4j配置说明 ##### 配置中有两处配置了日志文件的路径,根据实际将其修改为日志文件在系统中的绝对路径 - 服务器主机名配置 ##### 如果运行环境的主机名不是localhost:8080,需要修改/web/views/index.jsp文件的第二行配置,将host的值改为对应的主机名 - contextPath配置 ##### 如果是在tomcat部署,在server.xml中将项目路径映射为/weibo,如果是在idea中部署,在tomcat的deployment设置中将Application context设置为/weibo - 如果参照以上配置仍然存在问题,请参照本文档错误处理部分 ---------- # 基本操作 - 登陆进入主页面,左边是菜单,右边是窗口 - 查看微博,右上角选择不同分类 - 点击评论按钮进行评论 - 点击微博内容进入微博详情 - 点击用户头像查看主页 - 在主页点击“我的关注”查看我关注的人 > 测试账号: - 管理员:账号:微博团队 密码:test1234 - 用户1: 账号:test1@qq.com 密码:test1234 - 用户2: 账号:test2@qq.com 密码:test1234 ------- # 完成的功能 ### 基本需求 ###### 游客 - 根据不同的标签(搞笑、社会、时尚、电影、美女、体育、动漫等)查看不同的帖子 ###### 用户 - 在游客的基础上 - 登录、修改用户信息 - 我的关注(关注的人等)、我的粉丝、我的微博 - 对帖子的评论,点赞,转发 ###### 系统管理员 - 管理用户、冻结用户等操作 ### 进阶需求 - 分页:采取分页的手段分段抽取后台的数据 - 搜索功能:搜索用户 - 支持图片上传:在发布微博时可添加图片 - 我的相册:可查看发过的微博中的所有图片 ### 升华需求 - 实时聊天(私信):用户之间可创建聊天窗口进行聊天 ### 吊炸天需求 - 日志功能:对用户、管理员的操作进行日志记录 ------ # 项目亮点 ## 功能亮点 - 发微博支持多张图片,支持多重转发,支持点赞,评论,浏览量,分页查看 - 支持用户实时聊天 - 聊天支持发文字,图片,文件,保存聊天记录,管理聊天记录,更换聊天背景 - 支持用户创建,加入群聊,管理群聊 ## 技术亮点 - 使用注解+反射实现controller请求自动分发 - 使用动态代理+注解+反射实现操作权限校验 - 使用动态代理+注解+反射实现Dao层纯接口无实现类 - 使用代理工厂实现面向接口编程,service层,provider层使用工厂注入 - 使用过滤器+cookie实现会话中免登陆,自动登陆 - 使用原生ajax技术实现接近前后端分离(仍然使用jsp) - 使用数据库连接池(原生手写)+线程池提高性能 - 使用缓存技术+队列数据结构实现聊天功能消息低延迟转发 - 使用枚举类维护常量提高代码可维护性 - service层与前端使用DTO统一数据传输格式 - 使用动态代理实现代理数据库连接 ------ # 错误处理 ### 1.第一次启动tomcat服务器访问时提示MyServlet这个类ClassNotFound? ##### 这种情况下需要重新热部署一下项目即可(redeploy),我不知道这个问题的具体原因,我查看编译后的的文件目录中是有这个class的... ### 2.无法访问? ##### 可能原因:没有将项目路径映射为/weibo。 ### 3.图片加载不出? ##### 检查一下upload文件夹有没有配置路径映射... ### 4.日志文件或控制台中文乱码? ##### 请尝试在idea的tomcat中配置VMoption为-Dfile.encoding=UTF-8 ### 5.网页点击无响应? ##### 请刷新浏览器,因为前端使用了ajax技术,如果登陆失效,登陆过滤器会将请求转发到登陆界面,无法得到结果,刷新浏览器可以让登陆过滤器执行自动登陆 ### 6.前端数据不同步? ##### 请刷新浏览器,因为部分前端页面不完善,需要手动刷新页面 ### 7.登陆新的用户之后还是之前的账户在登陆? ##### 在session失效之前系统都会记住一个客户端的登陆,如需登陆新账号要退出登陆,或者关闭浏览器 ------ ## 版权声明 本软件仅供交流学习,不得用于商业用途