# 新闻发布系统 **Repository Path**: FindYou_J/news-release-system ## Basic Information - **Project Name**: 新闻发布系统 - **Description**: 基于JSP和JQuery的javaweb期末大作业---黄淮新闻发布系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 10 - **Forks**: 0 - **Created**: 2024-06-22 - **Last Updated**: 2026-02-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: jsp, jQuery ## README **注意要在Util包下的JDBC.java里面修改对应的数据库账号和密码。** **注意要在Util包在的AliOssUtil里面修改对应的账号和密码。** **------------------------------用户(User)部分start-------------------------** **登录** ![输入图片说明](https://foruda.gitee.com/images/1719042418414536672/b32fefc1_14040620.png "Snipaste_2024-06-22_15-46-37.png") 前端获取到输入框里面的账号和密码,发送给后端 后端接收到数据,然后根据这个账号去服务器里面取出来对应的User对象,会出现以下两种情况 1.该对象为null,表示不存在这个用户,返回给前端对应的数据来 表示这个用户是不存在。 2.该用户存在,然后把前端的传来的密码进行MD5加密,然后对比后端的传来的User对象的password A.equal, 返回给前端对应的数据,把这个User存到Session里面,后面很多操作都会用到,前端接收到这个数据,来判断这个用户是男还是女,然后做出对应的欢迎语句,然后跳到主页 B.not equal,返回给前端对应的数据,做出对应的信息提示 ![输入图片说明](https://foruda.gitee.com/images/1719042501658499586/dcec20e9_14040620.png "Snipaste_2024-06-22_15-47-52.png") **注册** 前端把输入框里面的账号和密码以及昵称全部都传给后端,然后后端去接收 先去根据前端传来的账号,去看看这个账号是不是存在的 1.该账号存在:返回给前端数据 2.该账号不存在: 把密码进行MD5密码加密,调用Service层以及Dao层把这个 用户给存到数据库里面 **查看文章的分类** ![输入图片说明](https://foruda.gitee.com/images/1719042658724219633/84428758_14040620.png "Snipaste_2024-06-22_15-50-35.png") 想后端发送请求,把数据库里面的文章的分类信息,包括:名称、文章数量 带回给前端,点击对应的文章分类,想后端发送这个分类的id,然后去后端 查,哪些文章是数据这个分类下面的,把它用list存起来,然后用string的 形式返回给前端进行渲染 **查看全部的文章** ![输入图片说明](https://foruda.gitee.com/images/1719042723748937426/35aa4964_14040620.png "Snipaste_2024-06-22_15-51-29.png") ![输入图片说明](https://foruda.gitee.com/images/1719042738410700884/4e3cca40_14040620.png "Snipaste_2024-06-22_15-51-36.png") ![输入图片说明](https://foruda.gitee.com/images/1719042754837272416/8cbe90bd_14040620.png "Snipaste_2024-06-22_15-51-43.png") 1.查找文章 前端把对应的数据传到后端,后端进行一个 模糊查询 like“%” + name + “%,也是用一个List给存起来,带给前端进行渲染。 2.按发布时间排序 怎么去判断前端传来的是按照时间排序还是浏览量排序呢? 看看前端这个sort传来的是什么,要是time的话,也就是按照时 间排序,只需要把全部的essay这个List,按照时间sort一下然后 返回 3.按浏览量排序 同理按照浏览量排序,也是sort一下然后再去返回 **修改自己的文章** ![输入图片说明](https://foruda.gitee.com/images/1719042803887927927/5221b213_14040620.png "Snipaste_2024-06-22_15-52-54.png") 其实在写文章这个页面,我都尝试着去get这个context,要是有的话,我就把原先的内容给显示出来,要是没有的话那就是发布文章了。 **举报别人的文章** ![输入图片说明](https://foruda.gitee.com/images/1719042847883116396/93b36403_14040620.png "Snipaste_2024-06-22_15-53-52.png") 点击举报,会把这个文章的id发送到后端去,让后端存到数据库里面,把文章id、用户id也就是谁举报的、以及举报原因、举报时间。 提交后做出提示: **发表评论** ![输入图片说明](https://foruda.gitee.com/images/1719042898218926627/0f716556_14040620.png "Snipaste_2024-06-22_15-54-42.png") 也即是向数据库里面插入这条评论 查看评论(看全部的评论,只看楼主的评论) 1、查看全部的评论 无脑去数据库里面把全部的评论给取出来 2、查看楼主的评论: 把全部的评论拿出来,然后看看这个评论的发布者是不是和这篇文章的发布者的id是一样的,要是一样的话就说明他是楼主 **修改信息(性别,头像,名字,密码)** ![输入图片说明](https://foruda.gitee.com/images/1719042940010571856/4f162768_14040620.png "Snipaste_2024-06-22_15-55-26.png") 性别和姓名: 直接传到后端就可以了 头像: 用的是阿里oss,把这个照片上传到服务器里面,然后把这个照片用UUID随机生成一段字符串然后把它存到服务器里面,然后把这个URL给返回 密码: 老密码,新密码,再次确定密码 先去数据库里面看看这个老密码是不是正确的,要是正确的话再去判断新密码和再次确定密码是不是一致的,其实这个前端已经判断过了,然后把这个新密码进行MD5加密,然后update即可 **查看公告** ![输入图片说明](https://foruda.gitee.com/images/1719042990683331937/1b9c24d8_14040620.png "Snipaste_2024-06-22_15-56-17.png") 之前是没想到写这个公告的,但是有一天,我在别的新闻网站上看到这个给用户的一份信,然后就想到这个公告了。 公告其实也就是去数据库里面去读取罢了,在前端进行渲染,在前端点击这个公告,会把公告的id传到后端,然后后端把这个对应的公告给取出来。 **天气以及日期** ![输入图片说明](https://foruda.gitee.com/images/1719043026836004628/e939cf91_14040620.png "Snipaste_2024-06-22_15-56-49.png") 天气: 本来是想和大二上一样,写web作业的时候一样,写一个假的呢!但是到后来在网上百度了一下,看到了有免费的天气的接口,直接拿过来用,然后用个盒子把它包起来,然后公告大小和位置即可。 日期: 这个是前端的实现,前端用js获取当前的时间,每1s进行刷新(调用显示时间这个函数)一次即可 **我的好友** 实在是没时间去写了,都期末了,什么也不会啊! 以下是我的思路: 建一个friends的表(id, userId, friendId),表示AB是好朋友的话,插入两条数据 A B表示的是A的好友是B,B A表示的是B的好友是A。看id的好友的话,只需要去数据库里面看userId = id的friendId的这个集合就可以了,然后前端渲染一下,点击这个用户可以看到它的信息,也可以看到他写的文章。 **------------------------------用户(Uer)部分end----------------------------** **----------------------------管理员(Admin)部分start----------------------** **登录:** ![输入图片说明](https://foruda.gitee.com/images/1719043086982970228/7192d671_14040620.png "Snipaste_2024-06-22_15-57-51.png") 要是把数据传到后端,然后把密码进行MD5加密,对比数据库里面的密码是否正确,给前端做出反应。 **申请为管理员** : **管理分类:** ![输入图片说明](https://foruda.gitee.com/images/1719043153809425733/f641f899_14040620.png "Snipaste_2024-06-22_15-58-58.png") 1.增加分类: 输入分类的名称,本来也想再加上这个分类的背景呢!但是前端实现实现起来,以及时间不够了,后期自己再去实现吧! 输入分类的名称,发送到后端插入数据库里面即可,然后在刷新前端的页面,再次获取全部的分类即可,这里也增加了这个分类下面的文章的数量 2.删除分类: 删除这个分类,那么就要删除这个分类下面的全部文章,也要删除这些文章下面的全部评论! **管理用户:** ![输入图片说明](https://foruda.gitee.com/images/1719043282072858657/9db6906d_14040620.png "Snipaste_2024-06-22_16-01-06.png") 考虑到用户可能多次违规,发表不当言论或者是不好的文章,那么就要把这个用户给删除掉,或者是封一段时间。 **管理公告:** ![输入图片说明](https://foruda.gitee.com/images/1719043086982970228/7192d671_14040620.png "Snipaste_2024-06-22_15-57-51.png") admin作为很高的管理者,要发布公告,比如这个网站做出了什么更新,做出了什么优化,以及上线了什么功能这都是要去通知用户的,用户是有知道的权利的。 1.删除公告: 把这个公告的id发送到后端进行删除即可,那么user界面再次进行获取的时候就没了这个公告了。 2.发布公告: 公共的标题,公告的内容,传到后端,用report这个对象进行分装,然后在把当前的时间记录一下,写到数据库里面insert **管理举报:** ![输入图片说明](https://foruda.gitee.com/images/1719043357422990932/bda54a59_14040620.png "Snipaste_2024-06-22_16-02-05.png") 在user界面,用户可以举报文章,然后管理员来判定这篇文章是否是违章的。 1.文章违章: 删除该文章、评论、这条举报记录! 2.违章不违章: 删除这条举报记录即可! **退出登录:** 也就是把session里面的信息给删除掉。 **----------------------------管理员(Admin)部分end------------------------** **-----------------------------2024/12/28新增功能start---------------------** # 优化用户登陆界面&&增加验证码校验&&增加鼠标样式(🌟) ![输入图片说明](%E7%99%BB%E5%BD%95.gif) # 增加对用户的封号处理 ![输入图片说明](image.png) ** 也可以去解封 ** ![输入图片说明](NoBan.png) ** 用户登录的时候显示限制时间 ** ![输入图片说明](image_login_for_ban.png) # 增加邮箱功能(后端发送实时邮箱) && 注册绑定邮箱 && 修改密码需邮箱验证码 ![输入图片说明](image_register.png) # 增加管理员发送广告功能(通过数据库里面的邮箱 全部都发) ![输入图片说明](image_AD.png) # 优化登录界面,增加等待动画。 ![输入图片说明](login.gif) # 优化用户账号管理的背景 ![输入图片说明](image_user_background.png) # 新增 加入我们 ![输入图片说明](image_join_us.png) # 优化详细用户背景,增加气泡 ![输入图片说明](image_user_background_pp.png) **-----------------------------2024/12/28新增功能end-----------------------**