servlet+Mysql实现的校园论坛管理系统(功能包含登录,首页帖子查看、发帖、个人帖子删除编辑、帖子评论回复、用户管理等)

news2024/11/15 12:21:32

博客目录

  • servlet+Mysql实现的校园论坛管理系统
    • 实现功能截图
    • 系统功能
    • 使用技术
    • 代码
    • 完整源码

servlet+Mysql实现的校园论坛管理系统

本系统是一个简单的校园论坛系统,学生可以在线发帖并进行帖子评论回复,同同时管理员可以对用户进行管理。
(文末查看完整源码)

实现功能截图

登录
请添加图片描述
发帖
请添加图片描述
个人帖子编辑删除
请添加图片描述
个人信息
请添加图片描述
帖子评论回复
请添加图片描述

用户管理
请添加图片描述

系统功能

本系统实现了以下功能:
1、登录
2、发帖
3、帖子查看
4、帖子删除编辑
5、帖子评论回复
6、用户管理

使用技术

数据库:mysql
开发工具:Idea(Myeclispe、Eclipse也可以)
知识点:servlet+jsp

项目结构
在这里插入图片描述

代码

java端
实体类
ForumEntity.java

package com.xh.bbs.entity;

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;

/**
 * 帖子实体类
 */
public class ForumEntity {

	private int fid;
	private String title;
	private String content;
//	private Timestamp createTime;
	private Timestamp createTime;
	//关联用户,多对一额关联
	private UserEntity author = new UserEntity();
	//关联回复
	private List<ReplyEntity> replyList = new ArrayList<ReplyEntity>();

	public int getFid() {
		return fid;
	}

	public void setFid(int fid) {
		this.fid = fid;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}

	
	
//	public Timestamp getCreateTime() {
//		return createTime;
//	}
//
//	public void setCreateTime(Timestamp createTime) {
//		this.createTime = createTime;
//	}

	public Timestamp getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Timestamp createTime) {
		this.createTime = createTime;
	}

	public UserEntity getAuthor() {
		return author;
	}

	public void setAuthor(UserEntity author) {
		this.author = author;
	}

	
	
	public List<ReplyEntity> getReplyList() {
		return replyList;
	}

	public void setReplyList(List<ReplyEntity> replyList) {
		this.replyList = replyList;
	}


}

service层
BbsServiceImpl.java

package com.xh.bbs.service;

import java.util.ArrayList;
import java.util.List;

import com.xh.bbs.dao.BbsDaoImpl;
import com.xh.bbs.dao.BbsDaoInf;
import com.xh.bbs.dao.UserDaoImpl;
import com.xh.bbs.dao.UserDaoInf;
import com.xh.bbs.entity.ForumEntity;
import com.xh.bbs.entity.ReplyEntity;
import com.xh.bbs.entity.UserEntity;

public class BbsServiceImpl implements BbsServiceInf{

	
	public List<ForumEntity> findForumList() {
		System.out.println("查询帖子列表");
		BbsDaoInf bbsDao = new BbsDaoImpl();
		UserDaoInf userDao = new UserDaoImpl(); 
	
		List<ForumEntity> forumList = bbsDao.findForumList();
	
		for (ForumEntity forumEntity : forumList) {
			int uid = forumEntity.getAuthor().getUser_id();
			UserEntity author = userDao.findUserById(uid);
			forumEntity.setAuthor(author);
			
			
		}
		System.out.println(forumList);
		return forumList;
	}

	//发表帖子
	public int createForum(ForumEntity forum) {
		BbsDaoInf bbsDao = new BbsDaoImpl();
		return bbsDao.addForum(forum);
	}


	public ForumEntity findReplyList(int fid) {
		BbsDaoInf bbsDao = new BbsDaoImpl();
		UserDaoInf userDao = new UserDaoImpl();
	
		ForumEntity forum = bbsDao.findForumById(fid);		
		UserEntity author = userDao.findUserById(forum.getAuthor().getUser_id());
			
		List<ReplyEntity> replyList = bbsDao.findReplyList(fid);
			
		for (ReplyEntity replyEntity : replyList) {
			UserEntity replyUser = userDao.findUserById(replyEntity.getUser().getUser_id());
			replyEntity.setUser(replyUser);
		}
		
		forum.setAuthor(author);
		forum.setReplyList(replyList);
		return forum;
	}

	//发表回复
	public int createReply(ReplyEntity reply) {
		BbsDaoInf dao = new BbsDaoImpl();
		return dao.addReply(reply);
	}
	
	//查询个人发帖
	public List<ForumEntity> personForum(int pid){
		BbsDaoInf dao=new BbsDaoImpl();
		List<ForumEntity> personList=new ArrayList<ForumEntity>();
		
		personList=dao.personForum(pid);
		
		return (personList==null)?null:personList;
	}
	
	//删除个人帖子
	public void deleteForumByFid(int fid){
		BbsDaoInf dao=new BbsDaoImpl();
		dao.deleteForum(fid);
	}
								
	//删除帖子的所有回复
	public void deleteReplyByFid(int fid){
		BbsDaoInf dao=new BbsDaoImpl();
		dao.deleteReply(fid);
	}
	
	//删除帖子下的某个用户的回帖
	public void deleteReplyByRid(int rid){
		BbsDaoInf dao=new BbsDaoImpl();
		dao.deleteReplyByRid(rid);
	}
			                      //管理员模块
	//删除用户(删除用户信息,发帖信息,回帖信息)
	public void dUserAllForumByUid(int uid){
		BbsDaoInf dao=new BbsDaoImpl();
		dao.dUserAllforumByUid(uid);
	}
	
	//删除该用户所有回帖
	public void dUserAllreplyByUid(int uid){
		BbsDaoInf dao=new BbsDaoImpl();
		dao.dUserAllreplyByUid(uid);
	}
	
	//删除用户帖子下的所有回帖
	public void dUserOtherRelyByFid(int uid){
		BbsDaoInf dao=new BbsDaoImpl();
		dao.dUserOtherRelyByFid(uid);
	}
	
	//查看单个用户发帖情况
	public List<ForumEntity> seeUserForumList(int uid){
		BbsDaoInf dao=new BbsDaoImpl();
		List<ForumEntity> forum=dao.personForum(uid);	
		return forum;
	}
}

servlet层
ForumListServlet.java

package com.xh.bbs.servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.xh.bbs.entity.ForumEntity;
import com.xh.bbs.service.BbsServiceImpl;
import com.xh.bbs.service.BbsServiceInf;

@SuppressWarnings("serial")
public class ForumListServlet extends HttpServlet{

	public void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		BbsServiceInf service = new BbsServiceImpl();
		List<ForumEntity> forumList = service.findForumList();

		request.setAttribute("forumList", forumList);	
		request.getRequestDispatcher("forumlist.jsp").forward(request, response);
	}
}

FindUserByIdServlet.java

package com.xh.bbs.servlet;


import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.xh.bbs.entity.UserEntity;
import com.xh.bbs.service.UserServiceImpl;
import com.xh.bbs.service.UserServiceInf;
@SuppressWarnings("serial")
public class FindUserByIdServlet extends HttpServlet {
	public void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		String u_id=request.getParameter("uid");
		int uid=Integer.parseInt(u_id);
		
		UserServiceInf service=new UserServiceImpl();
		UserEntity user=service.findUser(uid);
		request.setAttribute("user",user);
		
		request.getRequestDispatcher("userinfo.jsp").forward(request, response);
		
		
	}

}

完整源码

觉得有用,记得一键三连哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/79835.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

win11: cmake+glfw+imgui

下载源码&#xff1a;imgui github地址 将需要的文件拖拽入项目外部库的imgui文件夹 backends文件夹里选择与环境适配的文件&#xff0c;我这里用了glfw和opengl3 目录结构&#xff1a; CMakeLists.txt cmake_minimum_required(VERSION 3.24) project(proforlearn) set(CM…

基于java+springmvc+mybatis+jsp+mysql的实验室计算机故障报修系统

项目介绍 本系统采用java语言开发&#xff0c;后端采用ssm框架&#xff0c;前端采用jsp技术&#xff0c;数据库采用mysql进行数据存储。 前端页面&#xff1a; 功能&#xff1a;首页、设备信息、公告资讯、个人中心、后台管理、联系客服 管理员后台页面&#xff1a; 功能&…

电子学会2020年12月青少年软件编程(图形化)等级考试试卷(二级)答案解析

目录 一、单选题&#xff08;共25题&#xff0c;每题2分&#xff0c;共50分&#xff09; 二、判断题&#xff08;共10题&#xff0c;每题2分&#xff0c;共20分&#xff09; 三、编程题【该题由测评师线下评分】&#xff08;共2题&#xff0c;共30分&#xff09; 青少年软件…

业务流程监控:让多维度监控有了灵魂

需求 《可视化业务流程监控&#xff0c;是解决方案更是运维之道&#xff01;》一文让我们知道可以借助Grafana 两个插件&#xff1a;Diagram、FlowCharting&#xff0c;满足我们对于图形数据业务流程的可视化监控&#xff0c;但是在使用前需要我们做好以下两点工作&#xff1a…

修复自定义标题word题注错误:错误,文档中没有指定样式的文字以及编号无法随章节变化问题

一、单个修复指定章节号 假设采用自定义样式“毕业”&#xff0c;如果出现类似提示&#xff0c;可以具体操作如下&#xff1a; 光标定位与错误题注的位置&#xff0c;按shift F9 {STYLEREF 1 \s} - 2 将内容修改为 图 {STYLEREF "毕业" \s} - 2 右击&#xff0c;更…

被人叫做砖家模拟器的ChatGPT,它真的靠谱吗?

大家好啊&#xff0c;我是测评君&#xff0c;欢迎来到web测评。 前言 最近很热门的聊天机器人ChatGPT&#xff0c;据说五天时间用户就破了百万&#xff0c;这几天在体验过程中发现了一些问题&#xff0c;今天我就以下列几个方面来跟大家简单的交流下ChatGPT。 ChatGPT怎么注册国…

【博客555】prometheus的step,durations,rate interval,scrape interval对数据查询结果的影响

prometheus的step&#xff0c;durations&#xff0c;rate interval&#xff0c;scrape interval对数据查询结果的影响 1、场景&#xff1a;在查询prometheus数据时出现很多诡异的现象 1、为什么同样的查询语句在不同的时间点查询&#xff0c;对过去某一时刻的数据展示却不一样…

网络拓扑配置案例练习(VRRP,浮动路由,DCHP,三层交换机配置)

网络拓扑配置案例网络拓扑配置案例练习网络拓扑需求描述具体操作命令交换机创建vlan&#xff0c;配置access、trunk口&#xff0c;划分vlanvrrp配置路由配置验证vrrp和浮动路由DHCP配置总结网络拓扑配置案例练习 在这篇文章中将记录网络的常见配置&#xff1a;VRRP&#xff0c…

vue-cli和vue有什么区别

目录 1、什么是 Vue&#xff1f; 2、什么是vue-cli&#xff1f; 3、区别和关联 &#x1f449; 区别 &#x1f449; 关联 &#x1f340; 扩展知识 “vue-cli”和vue的区别&#xff1a;vue是“vue.js”的简称&#xff0c;是一个成熟的用于构建用户界面的JavaScript渐进式框…

「Docker学习系列教程」9-Docker容器数据卷介绍

通过前面8篇文章的学习&#xff0c;我们已经学会了docker的安装、docker常用的命令已经docker镜像修改后提交的远程镜像仓库及提交到公司的私服仓库中。接下来&#xff0c;我们再来学学Docker另外一个重要的东西-容器数据卷。 我们先来看看一个场景&#xff1a;我们有多个dock…

18. 权重衰退的代码的从零实现和简洁实现

通过一个简单的例子来演示权重衰减。 %matplotlib inline import torch from torch import nn from d2l import torch as d2l0.01就是权重&#xff0c;xi是随机的输入&#xff0c;噪音是均值为0&#xff0c;方差为0.01的一个正态分布 n_train,n_test,num_inputs,batch_size 2…

Alibaba 官方微服务扛把子「SpringCloudAlibaba 全彩学习手册.PDF」,开源学习ing,

最近我在知乎上看过的一个热门回答&#xff1a; 初级 Java 开发面临的最大瓶颈在于&#xff0c;脱离不出自身业务带来的局限。日常工作中大部分时间在增删改查、写写接口、改改 bug&#xff0c;久而久之就会发现&#xff0c;自己的技术水平跟刚工作时相比没什么进步。 所以我们…

Spring Batch 批处理入门案例

引言 书接上篇 何为Spring Batch&#xff1f;怎么玩&#xff1f; &#xff0c;前面普及了一下Spring Batch 相关介绍&#xff0c;本篇来一个helloword&#xff0c;简单试一下Spring Batch 怎么玩 批量处理流程 开始前&#xff0c;先了解一下Spring Batch程序运行大纲&#x…

[附源码]计算机毕业设计惠农微信小程序论文Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

这些不知道,别说你熟悉 Spring

写在前面 我们大多数 Java 程序员的日常工作基本都是在做业务开发&#xff0c;俗称 crudboy。 作为 crudboy 的你有没有这些烦恼呢&#xff1f; 随着业务的迭代&#xff0c;新功能的加入&#xff0c;代码变得越来越臃肿&#xff0c;可维护性越来越低&#xff0c;慢慢变成了屎…

【亲测有用】ERR_PROXY_CONNECTION_FAILED的解决方案(电脑明明有网络,但就是无法访问浏览器的网页!)

一、问题描述 就我而言&#xff0c;每次遇到这种问题&#xff0c;都是因为电脑意外关机导致的。昨天&#xff0c;我忘记给电脑充电&#xff0c;结果一觉醒来&#xff0c;发现电脑明明有网络&#xff0c;因为微信、QQ甚至向日葵远程连接别的电脑都没有问题&#xff0c;但就是所…

基于java+springboot+mybatis+vue+mysql的漫画动漫管理网站

项目介绍 本系统主要包括管理员和用户两个角色组成&#xff0c;主要包括以下功能&#xff1a; &#xff08;1&#xff09;前台&#xff1a;首页、漫画资源、排行榜、交流论坛、公告信息、个人中心、后台管理 。 &#xff08;2&#xff09;管理员&#xff1a;首页、个人中心、…

算法基础篇-06-排序-NB三人组(快速/堆/归并排序)

1. NB 三人组介绍 1.1 快速排序(Quick Sort) 时间复杂度&#xff1a;O(nlogn) 归位&#xff1a; 让元素去它该去的位置&#xff0c;保证左边的元素都比他小&#xff0c;右边都比他大&#xff1b; 1.1.1 原理图示&#xff1a; 假设初始列表&#xff1a; 我们从左边第一个…

三秒钟,我要拿到世界杯所有队伍阵容信息

文章目录&#x1f550;Im coming~&#x1f551;我写了个啥&#xff1f;&#x1f554;咋写的&#xff1f;&#x1f558;代码供上&#x1f55b; See you next time专栏Python零基础入门篇&#x1f525;Python网络蜘蛛&#x1f525;Python数据分析Django基础入门宝典&#x1f525;…

硬核,阿里自爆虐心万字面试手册,Github上获赞89.7K

开篇小叙 现在Java面试可以说是老生常谈的一个问题了&#xff0c;确实也是这么回事。面试题、面试宝典、面试手册......各种Java面试题一搜一大把&#xff0c;根本看不完&#xff0c;也看不过来&#xff0c;而且每份面试资料也都觉得Nice&#xff0c;然后就开启了收藏之路。 …