项目描述
临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问题,今天给大家介绍一篇校园论坛网站设计设计与实现。
功能需求
随着互联网科技的快速发展,各行各业都借助互联网飞快革新,提高产品性能,功能齐全,应用范围,兼容性强的应用软件相应问世,可见计算机已经得到了广泛的应用,很多行业把握住机会,利用科技信息化等有了不小收获。计算机在生活中的使用频率越来越高,使用的方式也层次不齐,大部分学校都借助计算机信息化管理学生、工作、数据分配工作。学生之间信息交流成了一个热门的话题,因此开发校园论坛网站,一个全面的、具有独特风格的校园论坛网站对学生交流学习有着莫大的帮助。
具备以下功能:
本网站通过确定各个模块之间的数据关系和功能区别,依据论坛发帖回帖业务逻辑处理考虑,从整体到细化的分析系统每个功能点,在这基础上考虑用户使用心里和页面操作难度。
 用户登录注册:用户可以通过注册账号并登录网站,管理员分配的固定账号进行登录。
 首页模块:展示页面导航菜单以及置顶的精华帖子展示以及网站相关连接信息
 发帖回帖:对已经添加在网站出售的酒店信息查看修改,对新曾的酒店信息添加功能。
 帖子管理:
 个人中心:包括个人信息维护、我的帖子、我的动态信息查看。
 我的收藏:对感兴趣帖子进行收藏和查看。
 公告:展示校园论坛实施动态信息。
系统总体设计

部分效果图


 


数据库设计
系统中用到了21张表,针对每个表都进行了设计,下面对部分核心表进行汇总罗列展示
 用户数据表
 
帖子数据表
 
收藏夹信息表
 
 评论数据表
 
行为数据表
 
部分代码
  /**
     * 显示首页
     */
    public void index() {
        Page<Post> postPage = postService.paginate(1, 20, null, null);
        userService.join(postPage, "user_id");
        categoryService.join(postPage, "category_id");
        setAttr("pageData", postPage);
        render("index.html");
    }
    public void page() {
        Integer pageNumber = getParaToInt();
        if (pageNumber == null || pageNumber <= 1) {
            redirect("/");
            return;
        }
        Page<Post> postPage = postService.paginate(pageNumber, 20, null, null);
        if (postPage == null || postPage.getPageNumber() > postPage.getTotalPage()) {
            renderError(404);
            return;
        }
        userService.join(postPage, "user_id");
        categoryService.join(postPage, "category_id");
        setAttr("pageData", postPage);
        render("page.html");
    }
    /**
     * 显示登陆页面
     */
    public void login() {
    }
    /**
     * 进行登录操作
     */
    @EmptyValidate(value = {
            @Form(name = "email", message = "Email不能为空。"),
            @Form(name = "password", message = "密码不能为空。"),
    }, errorRedirect = "/login")
    @CaptchaValidate(form = "vercode", message = "验证码错误", errorRedirect = "/login")
    public void doLogin(String email, String password) {
        Ret ret = userService.doLogin(email, password);
        setFlashMap(ret);
        if (ret.isOk()) {
            User user = ret.getAs("user");
            user.setLogged(new Date());
            user.update();
            //发送用户登录 事件
            Jboot.sendEvent(Constants.ACTION_USER_LOGIN, user);
            //保存登录的cookie信息
            EncryptCookieUtils.put(this, Constants.COOKIE_USER_ID, user.getId());
        }
        redirect(ret.isOk() ? "/" : "/login");
    }
    /**
     * 退出登录
     */
    public void logout() {
        removeCookie(Constants.COOKIE_USER_ID);
        redirect("/login");
    }
    /**
     * 注册页面
     */
    public void register() {
    }
    /**
     * 进行注册操作
     */
    @EmptyValidate(value = {
            @Form(name = "email", message = "Email不能为空。"),
            @Form(name = "nickname", message = "昵称不能为空。"),
            @Form(name = "password", message = "密码不能为空。"),
            @Form(name = "repassword", message = "确认密码不能为空。"),
    }, errorRedirect = "/register")
    @CaptchaValidate(form = "vercode", message = "验证码错误", errorRedirect = "/regsiter")
    public void doRegister(String email, String nickname, String password, String repassword) {
        if (!password.equals(repassword)) {
            setFlashAttr("message", "密码为空 或 两次输入密码不相等");
            redirect("/register");
            return;
        }
        User user = userService.findByEmail(email);
        if (user != null) {
            setFlashAttr("message", "该邮箱已经存在");
            redirect("/register");
            return;
        }
        user = new User();
        user.setEmail(email);
        user.setNickname(nickname);
        user.setPoint((long) FlyConfig.get().getInitPoint());
        user.setStatus(User.STATUS_AUDITING); //审核中
        String salt = EncryptUtils.generateSalt();
        String encryptPassword = EncryptUtils.encryptPassword(password, salt);
        user.setSalt(salt);
        user.setPassword(encryptPassword);
        boolean success = userService.save(user);
        if (success) {
            setFlashAttr("message", "用户注册成功!请登录。");
            redirect("/active");
        } else {
            setFlashAttr("message", "系统错误,请联系管理员。");
            redirect("/register");
        }
    }
安装部署需求
eclipse、idea运行启动
系统部署
系统开发后,在生产环境配置项目运行环境,具体步骤如下:
 安装linux或者windows10操作系统;
 安装JDK1.8并配置环境变量;
 安装MySQL5.7版本以上版本数据库,创建数据库并执行脚本创建表;
 在IDEA中编辑进行打包;
 下载并配置Tomcat8.0服务器,配置系统服务,上传项目打包文件
本项目用到的技术和框架
1.开发语言:Java
 2.开发模式:B/S
 3.数据库:MySQL
 4.框架:jsp+springboot
本项目中的关键点
此系统的开发采用java语言开发,基于B/S结构,这些开发环境使系统更加完善。使用到的工具和技术都是开源免费的。
环境工具
开发工具 Eclipse/IDEA
 语言 JDK1.8 、jsp、CSS、springboot
 硬件:笔记本电脑;
 软件:Tomcat8.0 Web服务器、Navicat数据库客户端、MySQL;
 操作系统:Windows 10;
 其它软件:截图工具、常用浏览器;
 以上是本系统的部分功能展示,如果你的选题正好相符,那么可以做毕业设计或课程设计使用。



















