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

作者简介:全栈开发工程,从事Java、Python、前端、小程序方面的开发和研究,对大数据应用与开发比较感兴趣,

主要内容:Java项目、前端项目、Python项目、小程序开发、大数据项目、单片机

收藏点赞不迷路  关注作者有好处

文末获取源码 

感谢您的关注,请收藏以免忘记,点赞以示鼓励,评论给以建议,爱你哟

项目编号: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]。

管理员用例图:

思政教育平台|学院网站|基于JavaWeb的高校思政教育平台的设计与实现_第1张图片

 前端用户用例图

思政教育平台|学院网站|基于JavaWeb的高校思政教育平台的设计与实现_第2张图片

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

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

 思政教育平台|学院网站|基于JavaWeb的高校思政教育平台的设计与实现_第3张图片

 图 整体属性E-R图

 整体功能结构图:

思政教育平台|学院网站|基于JavaWeb的高校思政教育平台的设计与实现_第4张图片

1、前台功能模块:

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

2、后台功能模块:

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

三,系统展示

系统首页

思政教育平台|学院网站|基于JavaWeb的高校思政教育平台的设计与实现_第5张图片

 全文检索

思政教育平台|学院网站|基于JavaWeb的高校思政教育平台的设计与实现_第6张图片

评论互动

思政教育平台|学院网站|基于JavaWeb的高校思政教育平台的设计与实现_第7张图片

 新闻列表

思政教育平台|学院网站|基于JavaWeb的高校思政教育平台的设计与实现_第8张图片

 后台管理

思政教育平台|学院网站|基于JavaWeb的高校思政教育平台的设计与实现_第9张图片

会员管理

思政教育平台|学院网站|基于JavaWeb的高校思政教育平台的设计与实现_第10张图片

类型管理

思政教育平台|学院网站|基于JavaWeb的高校思政教育平台的设计与实现_第11张图片

四,核心代码展示

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   业务类
 * @param   实体类
 */
public abstract class BaseController {
    @Autowired
    protected S service;
    @Autowired
    protected HttpServletRequest request;
    @Autowired
    protected HttpServletResponse response;
    @Autowired
    protected HttpSession session;

    @RequestMapping("jsonList")
    @ResponseBody
    public List 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 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 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 {

    @RequestMapping("list")
    public String List(Integer pageNo, Integer role, String name, Model model) {
        if (StringUtils.isEmpty(name)) name = null;
        Map map = new HashMap();
        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 map = new HashMap();
        map.put("account", account);
        map.put("password", password);
        List 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 map = new HashMap();
        map.put("account", account);
        List 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 {

    /**
     * 首页的内容列表
     * @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 map = new HashMap();
        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 hotList() {
        Map map = new HashMap();
        //map.put("pubTime", Const.getCurrentDay());
        return service.getPage(1,10,"click desc",map).getList();
    }

    /**
     * 推荐内容查询:查询当前这条内容同类的内容信息,最多10条
     * @return
     */
    @RequestMapping("tuijianList")
    @ResponseBody
    public List tuijianList(int tid,int xid) {
        Map map = new HashMap();
        map.put("tid", tid);
        Jedis jedis = JedisUtil.getJedis();
        String tjnews = jedis.get("tjnews_"+tid);
        List 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

五,相关作品展示

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

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

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

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

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

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

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

 

 

你可能感兴趣的:(网站平台类项目,Java项目实战,学校网站,思政教育平台,思想教育平台,JAVA平台网站)