基于SSM框架开发的美食论坛设计与实现

  要

中国经济迅速发展,各方面都取得了值得骄傲的进步,随着互联网的飞速发展,当前网络信息也越来越普及,无论是乡下还是城市,都有许多的人了解或是正在使用互联网。计算机成为了辅助类工具中的最佳。它方便,快捷,操作简单且价格合适。致使越来越多的人能够有资金购买计算机。让计算机越来越普及。疫情的开始使人们的生活逐渐进行网络信息化,人们都因为疫情在家隔离而无法出去,这时候人们都会上网进行生活。随着网络的发展,论坛已经成为人们日常进行交流的一个不可或缺的空间。人们可以在论坛中谈论喜欢的话题、提出或解答疑问、发布通知和公告等。由于它独特的形式和强大的功能,受到广大网友的欢迎,并成为全世界计算机用户交流信息的园地。本美食论坛是针对目前美食论坛的实际需求,从实际工作出发,对过去的美食论坛存在的问题进行分析,结合计算机系统的结构、概念、模型、原理、方法,在计算机各种优势的情况下,采用目前最流行的ssm框架和idea编辑器、mysql数据库设计并实现的。本美食论坛主要包括登录模块、注册模块、我的主页、基本设置、版主申请、我的关注、屏蔽用户、我的私信等多个模块。它帮助美食论坛实现了信息化、网络化,通过测试,实现了系统设计目标,相比传统的管理模式,本系统合理的利用了网络数据资源,有效的减少了美食论坛的经济投入,大大提高了美食论坛的效率。

经过本人的综合考虑和研究美食论坛的设计是基于java+mysql数据库+tomcat服务器+基于Java SSM架构的美食论坛方式设计,以ieda为开发工具。美食论坛是基于面向对象编程(Java面向对象)的web应用程序。本系统是根据美食论坛相关的业务流程等需求设计并实现业务。在过去美食论坛使用传统的各种功能,各种界面进行登录、注册、订阅、关注、查看、保存、设置,这种方式存在着许多的缺点例如:界面的美化对人的心理影响已经跟不上时代的步伐、各种功能的不完善导致用户不知从何找起、过于复杂的操作使用户大大减少,另外时间一长将产生大量的冗余问题例如:大量的信息不知道从何处查询,这对于查找业务、更新和维护用户等信息都带来了不少的困难。如今采用新版数据库进行信息化数据的管理,大大提高了管理的方便性、数据的安全性等,而且也适应了当今社会信息化高速发展的特征。

【关键词】美食论坛,SSM, spring booot,jsp编程技术, mysql数据库

Abstract

With the rapid development of China's economy, China has made proud progress in all aspects. With the rapid development of the Internet, the network information is becoming more and more popular. Whether in the countryside or in the city, there are many people who know or are using the Internet. The computer became the best of the auxiliary tools. It's convenient, fast, easy to operate and affordable. As a result, more and more people can afford to buy computers. Make computers more and more popular. With the end of the epidemic, people's lives gradually returned to stability, but also the speed of social development is very fast, and the competition has become increasingly fierce. With the rapid development of information science and technology, Office Automation (OA) in technology and application have been a higher level of development, people gradually realize that the use of office management system can make the daily office work more convenient, fast and efficient. The importance of office activities is becoming more and more prominent, but also caused the general attention of enterprise managers, they feel more and more that the enterprise management without information technology support is powerless, so the office automation system arises at the right moment. For a long time, people have been accustomed to the traditional office centered on paper documents. This not only consumes a lot of manpower, material resources and financial resources, but also has low efficiency, poor timeliness and easy to make mistakes, which is not conducive to the long-term stable and efficient development of enterprises. And the application of new office automation system can liberate people from tedious, disordered, low order, low-end work to engage in core affairs, overall improve the enterprise work efficiency and information control, well standardized and improved the existing enterprise management, reduce the cost of office, improve the executive force, so that the management tends to perfect, enterprises are more competitive. The OA office online management system is developed to solve various problems in home office. This system is based on SSM  framework. The main responsibility of this system is to simplify various repetitive affairs of employees, so as not to waste time. At the same time, it is equipped with the sign in and sign out module to absolutely meet the needs of the boss to observe the status and progress of employees' daily work.

At the same time, the system provides extremely perfect multi-user function, OA office online management system has two login identities, respectively administrator and common user. Users can check in (sign in, sign out, sign in record), network disk (public network disk, my network disk), ask for leave. The basic functions of the administrator are attendance (sign in and sign out, sign in record, sign in setting), network disk (public network disk, my network disk), leave (leave, approval leave), staff management (add staff, manage staff). This OA office online management system is developed in order to further improve the unified management of OA office online management system and its information resources, serve the software development process more comprehensively and effectively, and facilitate the management in the software development process better.

After my comprehensive consideration and research, the design of OA office online management system is based on java+mysql database +tomcat server + OA office online management mode based on Java SSM and Spring Boot architecture, with ieda as the development tool. OA office online management system is a web application based on object-oriented programming (Java Object-Oriented). This system is designed and implemented according to the requirements of OA office online management system and other business processes. In the past, the company used the traditional manual way to sign in, sign out, ask for leave approval, staff management, this way has many shortcomings such as: low efficiency, occupy the boss's time, poor confidentiality, when may be accidentally lost, in addition to a long time will produce a large number of redundant problems such as: There is a lot of information that you don't know where to look, which makes it difficult to find business, update and maintain employee information. Nowadays, the use of computer information data management, greatly improve the convenience of management, data security, but also adapt to the characteristics of the rapid development of information society.

Key wordsOA online office management system, SSM, spring booot, jsp programming technology, mysql database

目  录

摘  要

Abstract

第1章 绪论

1.1 课题的目的及意义

1.1.1 课题的目的

1.1.2 课题的意义

1.2 研究现状

1.3 本课题主要研究内容

第2章 系统分析

2.1 可行性分析

2.1.1 技术可行性

2.1.2 经济可行性

2.1.3 操作可行性

2.2 系统需求

2.2.1 用户需求

2.2.2 用例分析

2.2.3 系统功能分析

2.2.4 功能描述

2.3 开发工具介绍

2.3.1 J2SE平台

2.3.2 IDEA简介

2.3.3 SSM简介

2.3.4 jsp嵌入式脚本

2.3.5 数据库选型

2.4 本章小结

第3章 总体设计

3.1 系统功能模块设计

3.2 数据库设计

3.2.1 设计依据

3.2.2 数据库的概念结构设计

3.2.3 数据库的逻辑结构设计

3.3 本章小结

第4章 详细设计

4.1 用户各功能模块

4.1.1登录功能模块的实现

4.1.2首页模块的实现

4.1.3我的主页

4.1.4用户中心

4.1.5基本设置

4.1.6版主申请

4.1.7我的关注

4.1.8屏蔽用户

4.1.9我的私信

4.2 管理员各功能模块的实现

4.2.1首页

4.2.2 会员管理

4.2.3 站内资讯

4.2.4 友情链接

4.2.5 板块管理

4.2.6帖子管理

4.2.7版主审核

4.2.8意见建议

4.2.9敏感字符管理

4.2.10举报信息

4.3 本章小结

第5章 系统测试

5.1 系统测试的基本原则

5.2 软件测试方法

5.3 系统测试用例

5.4 本章小结

结  论

致  谢

参考文献

附 录 1

附 录 2

附 录 3

第1章 绪论

1.1 课题的目的及意义

1.1.1 课题的目的

对于互联网技术和计算机科学技术迅速发展的二十一世纪来说,越来越多的事情得益于计算机网络技术而被快速并且完美地解决了。与此同时,随着互联网快速的增长发展,在当前的互联网上存在极其海量的数据信息。当用户想要进行数据信息的筛选的时候,一般会通过搜索引擎进行查找。但是通过搜索引擎所搜索到的信息总是被动的信息,有的时候还需要进行多个网页的反复对比筛查才能够找到自己想要的那一份信息,甚是耗时耗力还不讨好。随着计算机网络技术发展日趋的成熟,特别是软件技术的蓬勃的发展,人们完全可以通过一些计算机软件系统或是计算机某些技术在浩如烟海的互联网信息中轻松地筛选找到自己所需要的信息。

上个世纪末期,网络技术逐渐开始流行起来,互联网发展进入了起步阶段。到了新世纪初期,信息化技术开始逐渐发展,计算机应用技术逐渐体现出优势来。接着,大量的电脑进入了千家万户,更是诞生了大量的管理平台。信息化时代逐渐来临,互联网成为时代下媒体关注的核心内容。美食论坛随着互联网的潮流,给相关机构和管理员提供了高效的服务。以往的模式长期来看,管理十分不便利,存在误差,查询难的现象,一旦数据过多,人工管理方式就很难维持。随着信息技术的应用拓展,逐渐引用了信息化技术管理,逐渐取代了人工管理模式,采用计算机系统来管理美食论坛,带来的好处是查询便利,信息准确率高,节省了资源,提高了工作的效率。本次系统开发,主要以美食论坛为对象,根据需求来完成功能设计。

1.1.2 课题的意义

本文以“美食”论坛为例,分析了美食论坛的特点及存在的问题;介绍了基于ssm开发美食论坛的基本理论与关键技术;设计实现了一款美食论坛管理系统——美食论坛。本文所开发出的美食论坛管理系统不仅能方便广大网民及时获取最新资讯,而且还可作为其他网站的有益补充。另外,本美食论坛管理系统的设计思想也适用于其它类似的信息管理系统的设计与实现。总之,本论文的研究成果对于提高我国信息化水平有一定的现实意义,为今后更好地推广网络经济奠定基础。

1.2 研究现状

目前常见的论坛系统主要有两类:一类是利用Telnet软件登陆站点上,这种方式可以使用同时上站的用户数大大增加,每一个站点可以同时有200人上线,使多人之间的直接讨论成为可能:另一类就是现在许多用户更习惯的,基于web的论坛系统,用户只要连接到Internet上直接利用浏览器就可以进入论坛,阅读其他用户的发言,发表自己的意见。

迄今为止,计算机的功能一直在不断地增强,不停地在进步,其价格却越来越低廉。所以,赖于计算机的人的数量在持续的增长,计算机的运用也越来越广泛。一些比较发达的城市甚至还有无人售货商场,无人售货餐厅等,这都得益于计算机技术的迅速发展。使人们的生活也越发的便捷轻松。

计算机使用如此广泛的因素包括以下几个方面:第一,计算机能够帮助人们完成部分复杂的工作,节约人力资源;其次,计算机能够节省资源,避免不必要的浪费;第三,计算机能够在很大程度提高时间的利用率,减少不必要的时间消耗;第四,计算机能够提高重要文档的安全性等。

目前我国的大部分的论坛他的界面啊,功能啊还停留在上个时代,这样既不吸引新用户,也无法留住老用户。这种论坛显然无法追上这个时代成长的脚步,而且还会消耗更多的资源。在信息技术飞速发展的时代,这种陈旧的论坛终将被新的论坛取而代之。

部分运行截图

 

 

 

 

 

 

 

 部分主要代码:   需要源码的私信博主

package com.controller;

import javax.annotation.Resource;


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

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.*;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.bean.Banzhu;
import com.bean.Bbstype;
import com.bean.Member;
import com.bean.User;
import com.dao.BanzhuDAO;
import com.dao.BbstypeDAO;
import com.dao.MemberDAO;
import com.dao.UserDAO;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;

import java.util.*;

@Controller
public class BbstypeController extends BaseController {
	@Resource
	BbstypeDAO bbstypeDAO;
	@Resource
	BanzhuDAO banzhuDAO;
	@Resource
	MemberDAO memberDAO;
	
	
	
	//后台版块列表
	@RequestMapping("admin/bbstypeList")
	public String bbstypeList(HttpServletRequest request) {
		String index = request.getParameter("index");
	   	int pageindex = 1;
	   	if(index!=null){
	   		 pageindex = Integer.parseInt(index);
	   	}
   	    Page<Object> page = PageHelper.startPage(pageindex,6);
		List<Bbstype> list = bbstypeDAO.selectAll();
		for(int i=0;i<list.size();i++){
			List<Bbstype> childlist  = bbstypeDAO.selectChildtype(list.get(i).getId());
			list.get(i).setChildlist(childlist);
			List<Banzhu> banzhulist = banzhuDAO.selectOne(list.get(i).getId());
			if(banzhulist.size()!=0){
				Member banzhu = memberDAO.findById(banzhulist.get(0).getMemberid());
				list.get(i).setBanzhu(banzhu);
			}
		}
		request.setAttribute("list", list);
		request.setAttribute("index", page.getPageNum());
		request.setAttribute("pages", page.getPages());
		request.setAttribute("total", page.getTotal());
		return "admin/bbstypelist";
	}
	
	//添加大类
	@RequestMapping("admin/bbstypeAdd")
	public String bbstypeAdd(Bbstype bbstype, HttpServletRequest request) {
		String type = request.getParameter("type");
		if(type!=null&&type.equals("child")){
			Bbstype  bt = new Bbstype();
		}else{
		bbstypeDAO.add(bbstype);	
		}
		return "redirect:bbstypeList.do";
	}
	
	//显示版块信息
	@RequestMapping("admin/bbstypeShow")
	public String bbstypeShow(int id, HttpServletRequest request) {
		Bbstype bbstype = bbstypeDAO.findById(id);
		request.setAttribute("bbstype", bbstype);
		return "admin/bbstypeedit";
	}
	
	//编辑大类
	@RequestMapping("admin/bbstypeEdit")
	public String bbstypeEdit(Bbstype bbstype, HttpServletRequest request) {
		bbstypeDAO.update(bbstype);
		return "redirect:bbstypeList.do";
	}
	
	//删除类别
	@RequestMapping("admin/bbstypeDel")
	public String bbstypeDel(int id, HttpServletRequest request) {
		bbstypeDAO.delete(id);
		return "redirect:bbstypeList.do";
	}
	
	//搜索类别
	@RequestMapping("admin/searchTypename")
	public String searchTypename(HttpServletRequest request) {
		String index = request.getParameter("index");
		String key = request.getParameter("key");
	   	int pageindex = 1;
	   	if(index!=null){
	   		 pageindex = Integer.parseInt(index);
	   	}
   	    Page<Object> page = PageHelper.startPage(pageindex,6);
		List<Bbstype> list = bbstypeDAO.searchTypename(key);
		for(int i=0;i<list.size();i++){
			List<Bbstype> childlist  = bbstypeDAO.selectChildtype(list.get(i).getId());
			list.get(i).setChildlist(childlist);
		}
		request.setAttribute("list", list);
		request.setAttribute("key", key);
		request.setAttribute("index", page.getPageNum());
		request.setAttribute("pages", page.getPages());
		request.setAttribute("total", page.getTotal());
		return "admin/bbstypesearch";
	}
	
	//ajax查找子类
	@RequestMapping("admin/searchBbstype")
	public void searchBbstype(HttpServletRequest request,HttpServletResponse response) {
		try {
			response.setContentType("text/html;charset=utf-8");
			PrintWriter out = response.getWriter();
			String fid = request.getParameter("fid");
			
			List<Bbstype> stypelist = bbstypeDAO.selectChildtype(Integer.parseInt(fid));
			String optionstr = "";
			for(Bbstype bbstype:stypelist){
				optionstr +="<option value="+bbstype.getId()+">"+bbstype.getTypename()+"</option>";
			}
			//System.out.println("optionstr==="+optionstr);
			out.print(optionstr);
			out.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	
	//撤消版主
	@RequestMapping("admin/bzDel")
	public void bzDel(Banzhu banzhu, HttpServletRequest request,HttpServletResponse response) {
		try {
			banzhuDAO.delete(banzhu);
			PrintWriter out = response.getWriter();
			out.print(0);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

}
package com.controller;

import javax.annotation.Resource;


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

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.*;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.bean.Banzhu;
import com.bean.Bbstype;
import com.bean.Bzapplyrecord;
import com.bean.Member;
import com.bean.News;
import com.bean.User;
import com.dao.BanzhuDAO;
import com.dao.BbstypeDAO;
import com.dao.BzapplyrecordDAO;
import com.dao.MemberDAO;
import com.dao.UserDAO;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.util.Info;

import java.util.*;

@Controller
public class BzapplyrecordController extends BaseController {
	@Resource
	BzapplyrecordDAO bzapplyrecordDAO;
	@Resource
	BbstypeDAO bbstypeDAO;
	@Resource
	MemberDAO memberDAO;
	@Resource
	BanzhuDAO banzhuDAO;
	
	//前台申请版主列表
	@RequestMapping("bzApply")
	public String bzApply(HttpServletRequest request) {
		Member member = (Member)request.getSession().getAttribute("member");
		String index = request.getParameter("index");
	   	int pageindex = 1;
	   	if(index!=null){
	   		 pageindex = Integer.parseInt(index);
	   	}
   	    Page<Object> page = PageHelper.startPage(pageindex,6);
		List<Bzapplyrecord> list = bzapplyrecordDAO.selectMybzapply(member.getId());
		for(Bzapplyrecord bzapplyrecord:list){
			Bbstype bbstype = bbstypeDAO.findById(bzapplyrecord.getFid());
			bzapplyrecord.setFtype(bbstype);
		}
		request.setAttribute("list", list);
		request.setAttribute("index", page.getPageNum());
		request.setAttribute("pages", page.getPages());
		request.setAttribute("total", page.getTotal());
		return "bzapply";
	}
	
	//得到版块类别到申请版主添加页面
	@RequestMapping("bzapplyShowbbstype")
	public String bzapplyShowbbstype(HttpServletRequest request) {
		Member member = (Member)request.getSession().getAttribute("member");
		if(member!=null){
			List<Bbstype> list = bbstypeDAO.selectAll();
			request.setAttribute("list", list);
			request.setAttribute("member", member);
			return "bzapplyadd";
		}else{
			return "login";
		}
	}
	
	//添加版主申请
	@RequestMapping("applyAdd")
	public void applyAdd(HttpServletRequest request,HttpServletResponse response) {
		try {
			String msgstr = "";
			String fid = request.getParameter("fid");
			String memberid = request.getParameter("memberid");
			String note = request.getParameter("note");
			Bzapplyrecord bzapplyrecord = new Bzapplyrecord();
			bzapplyrecord.setFid(Integer.parseInt(fid));
			bzapplyrecord.setMemberid(Integer.parseInt(memberid));
			bzapplyrecord.setNote(note);
			List<Bzapplyrecord> issqlist = bzapplyrecordDAO.selectIssqlist(bzapplyrecord);
			List<Bzapplyrecord> isbzlist = bzapplyrecordDAO.selectIsbzlist(bzapplyrecord);
			if(issqlist.size()==1){
				msgstr = "1";//有一条申请记录
			}
			if(isbzlist.size()==1){
				msgstr = "2";//已是版主
			}
			if(issqlist.size()==0&&isbzlist.size()==0){
				bzapplyrecord.setSavetime(Info.getDateStr());
				bzapplyrecord.setShstatus("待审核");
				bzapplyrecordDAO.add(bzapplyrecord);
			}
			PrintWriter out = response.getWriter();
			out.print(msgstr);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();

需要源码和论文的私信

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值