基于SSM实现校园互助论坛平台

简介: 基于SSM实现校园互助论坛平台

项目编号:BS-PT-117

一,环境介绍

语言环境:Java:  jdk1.8

数据库:Mysql: mysql5.7

应用服务器:Tomcat:  tomcat8.5.31

开发工具:IDEA或eclipse

开发技术:SSM+JSP

二,项目简介

本项目基于SSM框架和JSP实现了一个校园互助论坛管理系统平台。系统用户分为注册用户和平台管理员,注册用户可以在线注册登录、在线发贴、回复贴子、点赞、举报处理,在线留言,查看公告等。管理员可以管理用户信息、贴子分类、贴子信息、回复信息、留言信息、公告信息、举报信息、对系统的轮播图和友情链接进行管理操作。具体见下面功能展示。

三,系统展示

系统首页

可以对贴子进行回复,举报,点赞等操作

个人中心

后台管理员登录

后台管理模块

四,核心代码展示

package com.spring.controller;
import com.jntoo.db.*;
import com.jntoo.db.utils.*;
import com.spring.dao.*;
import com.spring.entity.*;
import com.spring.service.*;
import com.spring.util.*;
import java.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
 * 管理员 模块访问入口
 */
@Controller
public class AdminsController extends BaseController {
    @Autowired
    private AdminsMapper dao;
    @Autowired
    private AdminsService service;
    /**
     *  后台列表页
     *
     */
    @RequestMapping("/admins_list")
    public String list() {
        // 检测是否有登录,没登录则跳转到登录页面
        if (!checkLogin()) {
            return showError("尚未登录", "./login.do");
        }
        String order = Request.get("order", "id"); // 获取浏览器上地址栏参数 order  如果没有则设置为id
        String sort = Request.get("sort", "desc"); // 获取浏览器上地址栏参数 sort  如果没有则设置为desc
        SelectExample example = new SelectExample(); //  创建一个搜索类
        String where = " 1=1 "; // 创建初始条件为:1=1
        where += getWhere(); // 从方法中获取url 上的参数,并写成 sql条件语句
        example.setWhere(where); // 将条件写进sql里面
        example.setOrder(order + " " + sort); // 设置查询的排序情况
        int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page")); // 获取前台提交的URL参数 page  如果没有则设置为1
        page = Math.max(1, page); // 取两个数的最大值,防止page 小于1
        List<Admins> list = service.selectPage(example, page, 12); // 获取当前页的行数
        // 将列表写给界面使用
        assign("list", list);
        assign("orderby", order); // 把当前排序结果写进前台
        assign("sort", sort); // 把当前排序结果写进前台
        assign("where", where); // 把当前条件写给前台
        return "admins_list"; // 使用视图文件:WebRoot\admins_list.jsp
    }
    /**
     *  获取前台搜索框填写的内容,并组成where 语句
     */
    public String getWhere() {
        String where = " ";
        // 以下是判断搜索框中是否有输入内容,判断是否前台是否有填写相关条件,符合则写入sql搜索语句
        if (!Request.get("username").equals("")) {
            where += " AND username LIKE '%" + Request.get("username") + "%' ";
        }
        return where;
    }
    @RequestMapping("/admins_add")
    public String add() {
        if (!checkLogin()) {
            return showError("尚未登录", "./");
        }
        return "admins_add";
    }
    @RequestMapping("/admins_updt")
    public String updt() {
        int id = Request.getInt("id");
        // 获取行数据,并赋值给前台jsp页面
        Admins mmm = service.find(id);
        request.setAttribute("mmm", mmm);
        request.setAttribute("updtself", 0);
        return "admins_updt";
    }
    @RequestMapping("/admins_updtself")
    public String updtself() {
        // 更新个人资料
        int id = (int) request.getSession().getAttribute("id");
        Admins mmm = service.find(id);
        request.setAttribute("mmm", mmm);
        request.setAttribute("updtself", 1);
        return "admins_updtself";
    }
    /**
     * 添加内容
     * @return
     */
    @RequestMapping("/adminsinsert")
    public String insert() {
        String tmp = "";
        Admins post = new Admins(); // 创建实体类
        // 设置前台提交上来的数据到实体类中
        post.setUsername(Request.get("username"));
        post.setPwd(Request.get("pwd"));
        service.insert(post); // 插入数据
        int charuid = post.getId().intValue();
        return showSuccess("保存成功", Request.get("referer").equals("") ? request.getHeader("referer") : Request.get("referer"));
    }
    /**
     * 更新内容
     * @return
     */
    @RequestMapping("/adminsupdate")
    public String update() {
        // 创建实体类
        Admins post = new Admins();
        // 将前台表单数据填充到实体类
        if (!Request.get("username").equals("")) post.setUsername(Request.get("username"));
        if (!Request.get("pwd").equals("")) post.setPwd(Request.get("pwd"));
        post.setId(Request.getInt("id"));
        service.update(post); // 更新数据
        int charuid = post.getId().intValue();
        if (Request.getInt("updtself") == 1) {
            return showSuccess("保存成功", "admins_updtself.do");
        }
        return showSuccess("保存成功", Request.get("referer")); // 弹出保存成功,并跳转到前台提交的 referer 页面
    }
    /**
     *  删除
     */
    @RequestMapping("/admins_delete")
    public String delete() {
        if (!checkLogin()) {
            return showError("尚未登录");
        }
        int id = Request.getInt("id"); // 根据id 删除某行数据
        Map map = Query.make("admins").find(id);
        service.delete(id); // 根据id 删除某行数据
        return showSuccess("删除成功", request.getHeader("referer")); //弹出删除成功,并跳回上一页
    }
}
package com.spring.controller;
import com.alibaba.fastjson.*;
import com.jntoo.db.*;
import com.jntoo.db.utils.*;
import com.spring.dao.*;
import com.spring.entity.*;
import com.spring.service.*;
import com.spring.util.*;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
 * 公共路由
 */
@Controller
public class CommonController extends BaseController {
    /**
     * 使用ajax 检测某表中某个字段是否已存在,已存在则无法提交
     * @return
     */
    @RequestMapping(value = "/checkno")
    @ResponseBody
    public String checkon() {
        String table = request.getParameter("table");
        String col = request.getParameter("col");
        String checktype = request.getParameter("checktype");
        String value = request.getParameter(col);
        // 检测新添加的
        if (checktype.equals("insert")) {
            if (Query.make(table).where(col, value).count() > 0) {
                return "false";
            } else {
                return "true";
            }
            // 检测更新的
        } else if (checktype.equals("update")) {
            String id = request.getParameter("id") == null ? "" : request.getParameter("id");
            if (Query.make(table).where(col, value).where("id", "neq", id).count() > 0) {
                return "false";
            } else {
                return "true";
            }
        }
        return "false";
    }
    /**
     * 审核数据,将是否审核改为已审核状态,点击一下 是 则变否, 点击一下 否 变为是
     * @return
     */
    @RequestMapping("/sh")
    @ResponseBody
    public String sh() {
        String yuan = request.getParameter("yuan");
        String id = request.getParameter("id");
        String tablename = request.getParameter("tablename");
        String sql = "";
        if (yuan.equals("是")) {
            sql = "update " + tablename + " set issh='否' where id=" + id;
        } else {
            sql = "update " + tablename + " set issh='是' where id=" + id;
        }
        DB.execute(sql);
        return "<script>location.href='" + request.getHeader("Referer") + "';</script>";
    }
    /**
     * 通过ajax获取表的某行数据
     * @return
     */
    @RequestMapping("/tableAjax")
    @ResponseBody
    public String tableFind() {
        String table = request.getParameter("table");
        String id = request.getParameter("id");
        Map map = Query.make(table).where("id", id).find();
        //JSONObject json = JSONObject.parse(map);
        return JSON.toJSONString(map); //.toString();
    }
    /**
     * 搜索下拉某表的数据
     * @return
     */
    @RequestMapping("/selectUpdateSearch")
    @ResponseBody
    public String selectUpdateSearch() {
        String table = Request.get("table");
        Query query = Query.make(table);
        String limit = "50";
        JSONObject where = JSON.parseObject(Request.get("where"));
        for (Map.Entry entry : where.entrySet()) {
            String key = (String) entry.getKey();
            Object value = entry.getValue();
            if ("limit".equals(key)) {
                limit = String.valueOf(value);
            } else {
                if (value instanceof JSONObject) {
                    JSONObject w = (JSONObject) value;
                    query.where(key, w.getString("exp"), w.getString("value"));
                } else if (value instanceof JSONArray) {
                    JSONArray w = (JSONArray) value;
                    query.where(key, (String) w.get(0), w.get(1));
                } else {
                    query.where(key, value);
                }
            }
        }
        List list = query.order("id desc").limit(limit).select();
        return JSON.toJSONString(list);
    }
}

五,相关作品展示

基于Java开发、Python开发、PHP开发、C#开发等相关语言开发的实战项目

基于Nodejs、Vue等前端技术开发的前端实战项目

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

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

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

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

相关文章
|
6月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的大学生校园兼职附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的大学生校园兼职附带文章和源代码部署视频讲解等
98 8
|
6月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的跑腿平台附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的跑腿平台附带文章和源代码部署视频讲解等
78 10
|
6月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的洛川县苹果销售管理平台附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的洛川县苹果销售管理平台附带文章和源代码部署视频讲解等
37 5
|
6月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的求职招聘平台附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的求职招聘平台附带文章和源代码部署视频讲解等
55 3
|
6月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的编程语言在线学习平台附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的编程语言在线学习平台附带文章和源代码部署视频讲解等
40 4
|
5月前
|
存储 关系型数据库 测试技术
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)(2)
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)
78 1
|
6月前
|
前端开发
杨校老师之基于SSM开发的校园点餐配送系统
杨校老师之基于SSM开发的校园点餐配送系统
65 0
杨校老师之基于SSM开发的校园点餐配送系统
|
6月前
|
Java 测试技术 数据库连接
基于SSM框架实现的快递配送平台
基于SSM框架实现的快递配送平台
|
6月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的校园导航微信小程序附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的校园导航微信小程序附带文章和源代码部署视频讲解等
60 6
|
5月前
|
Java 关系型数据库 测试技术
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)(1)
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)
66 0