思政教育平台|学院网站|基于JavaWeb的高校思政教育平台的设计与实现

简介: 思政教育平台|学院网站|基于JavaWeb的高校思政教育平台的设计与实现

前言:

毕业设计作为大学几年学习后最终成果的展示,占有很大的份量,也是非常重要的一个里程碑!但是很多人志不在此专业,或别有所求,大量的人群进入考公、考研的大军中备战,如此一来,准备毕设计和论文的时间少之又少。而近年来导师对毕业设计的要求可以说是越来越高,很多超出了企业开发的一般难度,令大多数学子望而却步,踌躇不前!本专栏提供了为客户开发的BS作品展示以便为你提供一个参考的思路,或者有需要的话也可以为你提供更多的一系列服务,相关项目开发、LW文档撰写、项目讲解、远程调试等可供你选择!

项目编号:BS-PT-096

一,环境介绍

语言环境:Java:  jdk1.8

数据库:Mysql: mysql5.7

应用服务器:Tomcat:  tomcat8.5.31

开发工具:IDEA或eclipse

开发技术后台:SSM框架   前台:JSP+Bootstrap+Jquery

二,项目简介

当代大学生人生观、社会价值观与以往大学生是截然不同的,相对于80后,90后赶上新世纪的门槛,其性格更加独立自主,自我意识强,但对于网络的依赖性非常大。但是,过分沉溺于网络的虚拟世界势必会造成部分大学生思想意志的薄弱,精神空虚,拜金及贪图享乐的思想严重等情况。这对个人发展是极其不利的,对祖国的未来甚至于国家安全来说都是一种隐患,所以加强大学生思想政治教育是我国高校人才培养中非常重要、必不可少的一环。针对于当代大学生对网络的依赖性较强的特点,利用新世纪网络技术的优势来建设一个大学生思想政治教育网站可以作为学生校内思想政治教育的线上补充,充分调动大学生学习热情,提高大学生爱党爱国、艰苦奋斗、乐于奉献的思想觉悟。

本网站使用Java语言编写,使用MySQL数据库进行数据存储和管理,开发与实现了一个高校的思政教育平台网站。网站包含多个模块,通过后期调试,实现了网站预计的目标,与传统的线下教学相比,本网站更高效的利用现代计算机网络技术通过线上教育的方式对大学生进行思想政治教育,拓宽了大学生思想政治教育的研究方向。系统采用B/S结构,SSM三大框架以及IDEA集成开发工具和Tomcat8.5服务器完成系统开发。

管理员模块分成六大子模块分别是注册会员管理,网站内容类别管理,网站内容信息管理,网站公告管理,评论信息管理,留言信息管理。会员用户功能包括:注册登录操作,网站内容信息浏览,网站内容信息搜索,网站内容信息评论,网站内容信息浏览,网站内容信息发布。根据模块进行数据库表编写,然后在IDEA开发工具中分模块进行代码的编,写每做好一个模块进行都会与数据库进行交互信息以确定信息能正确的进行前端展示,然后进行分析总结调试。各个模块全部开发好以后进行模块拼接测试,将降低模块耦合提升性能,最后编写测试用例,根据测试用例进行系统测试找出BUG修改。

我这次设计的内容管理系统分成了三个部分进行了不同的设计这三部分包括浏览者、会员与管理员:

1、浏览者权限:这个角色只能搜索和浏览内容内容但是不可以对任何内容进行评论当然也不可以留言只有注册成为会员以后才能使用相应权限。

2、会员权限:会员可以进行不同的搜索和模糊搜索,还可以对所有内容进行评论留言以及自己的个人信息。

3、管理员:管理员拥有系统的所有权限,管理员能对内容有增加删除修改查询操作等,可以冻结不良用户,维护内容系统等工作[4]。

管理员用例图:

前端用户用例图

从会员用例图中可以看出只有注册成为会员后,注册成为会员以后方可浏览内容、搜索内容、评价内容、公告浏览急留言信息发布[6]。

数据表的设计思想我是首先建立一个E-R图模型,然后就是确定数据库表之间的关系图解,在E-R图用长方形来展示实体名称,实体名称在长方形框中写明此名称,椭圆的形状是用来展现实体具备的属性,菱形联系实体,并标明名称,再用无向边把模型中所有的图联系起来[8]。数据概念模型设计如图所示。

图 整体属性E-R图

整体功能结构图:

1、前台功能模块:

  1. 注册登录:浏览者注册后有权限进行评论内容与留言。
  2. 内容的分类模块:分类就是从数据库里动态的获取不同的功能进行不同的选择就会跳转到不同的内容页中去比如点国际就会进入关于国际内容的页面中等等都是如此。
  3. 前台公告栏:方便管理者给成为会员的用户发布本网站重要消息和公告。
  4. 内容评论:只有会员才能进行评论和删除功能以及看到其他人的评论

2、后台功能模块:

  1. 会员信息管理:系统管理员有权限对会员的信息进行删除修改等一些操作对一些不良会员可以制裁他们进行冻结会员权限。
  2. 类别管理:系统管理员对不同的内容类别进行分别管理。
  3. 信息发布:信息发布是管理员管理。
  4. 公告管理:管理员发布公告给会员,当然也会有相应的修改删除权限。
  5. 留言管理:管理员进行回复工作使用。
  6. 评论管理:管理员进行评论管理对评论进行审查。

三,系统展示

系统首页

全文检索

评论互动

新闻列表

后台管理

会员管理

类型管理

四,核心代码展示

package cn.base.controller;
import cn.base.service.BaseService;
import cn.entity.User;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.List;
import java.util.Map;
/**
 * 抽取的顶层controller:提取公用的方法并利于扩展
 * @param <S>  业务类
 * @param <T>  实体类
 */
public abstract class BaseController<S extends BaseService, T> {
    @Autowired
    protected S service;
    @Autowired
    protected HttpServletRequest request;
    @Autowired
    protected HttpServletResponse response;
    @Autowired
    protected HttpSession session;
    @RequestMapping("jsonList")
    @ResponseBody
    public List<T> jsonList() {
        return service.getList(null);
    }
    @RequestMapping("get")
    @ResponseBody
    public T get(Integer id) {
        return (T) service.get(id);
    }
    @RequestMapping("del")
    @ResponseBody
    public void del(Integer id) {
        service.delete(id);
    }
    @RequestMapping("modify")
    @ResponseBody
    public void modify(T t) {
        service.updateSelective(t);
    }
    @RequestMapping("insert")
    @ResponseBody
    public void insert(T t) {
        service.insertSelective(t);
    }
    /**
     *
     * @param pageNo  页码
     * @param pageSize  每页显示的条数
     * @param map  查询条件
     * @param model  存储数据模型
     */
    protected void page(Integer pageNo, Integer pageSize, Map<String, Object> map, Model model) {
        pageSize = pageSize == null ? 10 : pageSize;
        pageNo = pageNo == null ? 1 : pageNo;
        String order = "";
        if (map != null && map.containsKey("order")) {
            order = (String) map.get("order");
            map.remove("order");
        }
        PageInfo<T> pageInfo=service.getPage(pageNo, pageSize, order, map);
        model.addAttribute("pageInfo",pageInfo);
        if (map!=null) {
            for (String key : map.keySet()) {
                model.addAttribute(key,map.get(key));
            }
        }
    }
    protected User getLogin(){
        return (User) session.getAttribute("login");
    }
}
package cn.controller;
import cn.base.controller.BaseController;
import cn.base.util.RestResult;
import cn.entity.User;
import cn.service.UserService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Controller
@RequestMapping("user")
public class UserController extends BaseController<UserService, User> {
    @RequestMapping("list")
    public String List(Integer pageNo, Integer role, String name, Model model) {
        if (StringUtils.isEmpty(name)) name = null;
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("isDel", 0);
        map.put("name", name);
        if (role != null && role != -1) map.put("role", role);
        page(pageNo, 5, map, model);
        return "manage/userList";
    }
    @RequestMapping("jsonLogin")
    @ResponseBody
    public RestResult login(String account, String password, Model model) {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("account", account);
        map.put("password", password);
        List<User> list = service.getList(map);
        if (list.size() > 0) {
            User user = list.get(0);
            session.setAttribute("login", user);
            return new RestResult(RestResult.SUCCESS, new Exception(""));
        } else {
            model.addAttribute("error", "用户名或密码错误");
            return new RestResult(RestResult.ERROR, new Exception("用户名或密码错误!\n请重新输入。"));
        }
    }
    @RequestMapping("reg")
    @ResponseBody
    public void reg(User user) {
        user.setRole(2);
        service.insert(user);
    }
    @RequestMapping("accTest")
    @ResponseBody
    public boolean accTest(String account) {
        if (StringUtils.isEmpty(account)) account = null;
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("account", account);
        List<User> list = service.getList(map);
        return list.size() >0;
    }
    @RequestMapping("pwdTest")
    @ResponseBody
    public boolean pwdTest(String old) {
        User user = (User) session.getAttribute("login");
        return user.getPassword().equals(old);
    }
    @RequestMapping("pwd")
    @ResponseBody
    public void pwd(String password) {
        User user = (User) session.getAttribute("login");
        user.setPassword(password);
        service.updateSelective(user);
    }
    @RequestMapping("view/{id}")
    public String view(@PathVariable Integer id, Model model) {
        User user = service.get(id);
        model.addAttribute("user", user);
        if (user.getRole() == 1) return "manage/userView";
        return "pwd";
    }
    @RequestMapping("logout")
    public String logout() {
        User user = getLogin();
        session.removeAttribute("login");
        if (user.getRole() == 1) return "manage/login/login";
        else return "login";
    }
}
package cn.controller;
import cn.base.controller.BaseController;
import cn.base.util.Const;
import cn.base.util.JedisUtil;
import cn.entity.Xin;
import cn.service.XinService;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import redis.clients.jedis.Jedis;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * 内容相关的请求控制器
 */
@Controller
@RequestMapping("xin")
public class XinController extends BaseController<XinService, Xin> {
    /**
     * 首页的内容列表
     * @param pageNo  页码参数
     * @param title  搜索时的标题
     * @param tid  内容分类ID
     * @param model  数据存储模型
     * @return
     */
    @RequestMapping("list")
    public String List(Integer pageNo, String title, Integer tid, Model model) {
        if (StringUtils.isEmpty(title)) {
            title = null;
        }
        if (tid != null && tid == -1) {
            tid = null;
        }
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("title", title);
        map.put("tid", tid);
        page(pageNo, 10, map, model);
        //角色判断:如果未登陆或登陆人为普通用户,跳转到前端显示
        if (getLogin() == null || getLogin().getRole() == 2) {
            return "list";
        }else {
            //角色判断:如果是管理员用户,跳转到后端显示
            return "manage/xinList";
        }
    }
    public void insert(Xin xin) {
        xin.setClick(0);
        xin.setPubTime(Const.getCurrentTime());
        service.insert(xin);
    }
    @RequestMapping("view/{id}")
    public String view(@PathVariable Integer id, Model model) {
        Xin xin = service.get(id);
        xin.setClick(xin.getClick()+1);
        service.updateSelective(xin);
        xin=service.get(id);
        model.addAttribute("xin", xin);
        if (getLogin()==null||getLogin().getRole()==2) return "xinView";
        return "manage/view";
    }
    /**
     * 今日最热查询:查询今天发布的内容,最多10条
     * @return
     */
    @RequestMapping("hotList")
    @ResponseBody
    public List<Xin> hotList() {
        Map<String, Object> map = new HashMap<String, Object>();
        //map.put("pubTime", Const.getCurrentDay());
        return service.getPage(1,10,"click desc",map).getList();
    }
    /**
     * 推荐内容查询:查询当前这条内容同类的内容信息,最多10条
     * @return
     */
    @RequestMapping("tuijianList")
    @ResponseBody
    public List<Xin> tuijianList(int tid,int xid) {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("tid", tid);
        Jedis jedis = JedisUtil.getJedis();
        String tjnews = jedis.get("tjnews_"+tid);
        List<Xin> xinList = new ArrayList<>();
        if(tjnews!=null){
            xinList = JSON.parseArray(tjnews,Xin.class );
        }else{
            xinList = service.getPage(1, 10, "click desc", map).getList();
            jedis.set("tjnews_"+tid, JSON.toJSONString(xinList));
        }
        //将当前浏览的内容排除
        for(int i=0;i<xinList.size();i++){
            if(xinList.get(i).getXid()==xid){
                xinList.remove(i);
            }
        }
        return xinList;
    }
}

五,相关作品展示

基于Java开发、Python开发、PHP开发、C#开发等相关语言开发的各类毕业设计作品

基于Nodejs、Vue等前端技术开发设计的前端毕业设计作品

基于微信小程序和安卓APP应用开发的相关作品

基于51单片机等嵌入式物联网开发应用

基于各类算法实现的AI智能应用

基于大数据实现的各类数据管理和推荐系统

前沿技术、一站式服务、贴心售后解决你后顾之忧

相关文章
|
小程序 前端开发 Java
【实训项目】智联校友会小程序
【实训项目】智联校友会小程序
139 0
|
传感器 人工智能 大数据
高校-阿里云共建特色化示范性软件学院
21世纪的今天,人工智能已在世界范围内引起了高度重视,已经成为国际学术的新热点、新焦点以及产业合作的新机遇,全球多个国家相继发布了政府层面的官方人工智能白皮书和战略。我国亦高度重视人工智能产业的发展,已将人工智能上升到国家战略层面,陆续出台了《“互联网+”人工智能三年行动实施方案》、《国务院关于印发新一代人工智能发展规划的通知》、《促进新一代人工智能产业发展三年行动计划(2018-2020年)》等一系列人工智能产业发展政策,着力构筑人工智能先发优势,加快建设创新型国家和世界科技强国。
553 0
高校-阿里云共建特色化示范性软件学院
|
6月前
技术好文:TRS_WCM(拓尔思信息技术有限公司)内容协作平台平台置标经验攻略
技术好文:TRS_WCM(拓尔思信息技术有限公司)内容协作平台平台置标经验攻略
66 0
|
7月前
互联网行业常见岗位工作内容及发展前景介绍——【大学生就业训练营】系列第二课
系列课程共有八节,下方完成视频课程观看并在评论区回复学习心得,还可以领取惊喜礼品~
432400 1640
|
7月前
|
前端开发 Java 测试技术
思政教育平台|学院网站|基于JavaWeb的高校思政教育平台的设计与实现
思政教育平台|学院网站|基于JavaWeb的高校思政教育平台的设计与实现
|
7月前
|
前端开发 JavaScript Java
基于SSM实现校园互助论坛平台
基于SSM实现校园互助论坛平台
|
小程序 计算机视觉
智慧学校云平台源码 智慧校园源码
智慧电子班牌区别于传统电子班牌,智慧校园电子班牌系统更加注重老师和学生的沟通交流和及时数据交互。学校为每个教室配置一台智能电子班牌,一般安装于教室门口,用来实时显示学校通知、班级通知,可设置集中分布式管理,自由控制每个终端;主页显示班级全面的基本信息,包括天气、班名、课程表、值日表等。通过智能班牌,打通学校和教师、教师和学生,学生与家长,学校和家长之间的互动通道,真正的将智慧校园落地。
248 0
智慧学校云平台源码 智慧校园源码
|
运维 文字识别 小程序
中国高校计算机大赛——微信小程序应用开发赛
中国高校计算机大赛——微信小程序应用开发赛
445 0
中国高校计算机大赛——微信小程序应用开发赛
|
传感器 存储 数据采集
iNeuOS工业互联网平台,在高校教学实训领域的应用
中国工业互联网从 0 向 1 演进从缺政策、缺技术、缺市场,逐渐转移到了缺人才,跨行业、跨领域的复合型人才;IT与OT融合型人才;了解工业、了解数据分析、了解工业机理的复合型人才;既懂工业运营需求、又懂网络信息技术、有较强创新能力和操作能力的复合型人才;既有专业领域的知识、又懂得大数据、人工智能新算法的人才;懂工业和新兴技术的跨界人才等。
476 0
iNeuOS工业互联网平台,在高校教学实训领域的应用
|
运维 监控 JavaScript
「开发者说」实验室上钉钉--南大研究生的数字化校园故事
钉钉应用开发不仅完成了实验室数字化运营的定制需求,这段落地的应用开发经验也丰富了我的实践经历,成为我的实习面试宝典。
1041 0
「开发者说」实验室上钉钉--南大研究生的数字化校园故事