【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行!

博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享获取新知,大家一起进步!

吾等采石之人,应怀大教堂之心,愿我们奔赴在各自的热爱里…


一、毕设专栏介绍

📖☕️🌊📝📚🎩🚀📣

☕️最近开设的专栏整理了很多优秀Java项目,详细的分享了设计思路,计算机毕业生可以参考学习数据库设计,论文写作,项目优化等,每一篇博文均整理了相关系统可以设计的具体模块,以及详细的业务讲解,祝大家学业进步!

🚀Java项目精选:点击进入Java毕设专栏 关注走一波

📝分享的所有Java项目源码均包含(前端+后台+数据库),可做毕业设计或课程设计


二、选题背景介绍

📖本篇给大家介绍大学生在线心理咨询服务系统的设计与实现

由于社会竞争压力的增大,人们工作和生活方式的变化,心理问题已经成为当今社会日益严重的普遍问题

作为计算机系大学生,旨在运用网络技术对高校大学生心理健康教育进行网络化管理,该体系集存储式自助服务平台,参与式互助服务平台,智能式心理测量服务平台于一体,将极大改善当前我国高校大学生心理健康教育的状况,提升高校心理健康教育的科学化,规范化,信息化。

📝推荐理由选题新颖,实用,切合大学主题

⚡️系统包含的技术

后端:SpringBoot
前端:layui,js,css等
开发工具:IDEA
数据库:MySQL
JDK版本:jdk1.8

📣备注:所有Java项目系统均有完整源码(前端+后台+数据库)


三、模块设计思路

📖用户端模块设计:首页、文章、心理评测、留言、公告等;用户登录系统后可在心理评测页面进行答题评分,系统会根据答题情况进行性格分析,包括内向、外向、外内混合等性格;
在这里插入图片描述

📖管理端模块设计思路: 文章管理,留言管理,用户管理,心理测评,公告管理,系统设置
在这里插入图片描述
系统导航栏参考

在这里插入图片描述

🌊大家在毕设选题,项目升级,论文写作,就业毕业等相关问题都可以给我留言咨询,非常乐意帮助更多的人!


四、项目运行截图

🚀登录页面:系统首页大家可以根据自己喜好自行配置
在这里插入图片描述
在这里插入图片描述

🚀文章列表:点击箭头可以进入文章预览

在这里插入图片描述

🚀心理测评:此次测评要进行登录,如果是管理员跳入后台管理页面,如果是学生即跳入测评页面

在这里插入图片描述
🚀心理测评板块:测试完成系统会出现对应的心理健康分数
在这里插入图片描述

🚀留言板块:相当于一个树洞,大家可以留言沟通交流

权限设计:当然用户必须登录后才能留言

在这里插入图片描述

🚀公告板块: 管理员可以在后台发布对应的公告信息
在这里插入图片描述

管理端截图

🚀文章管理板块:文章查询、添加文章、编辑、删除等;

在这里插入图片描述

🚀添加文章的模块
在这里插入图片描述

🚀留言管理:负责管理用户留言信息
在这里插入图片描述

🚀用户管理:用户列表、查询、编辑、删除、重置密码等;

在这里插入图片描述
🚀心理测评:测评题目查询、修改、删除;
在这里插入图片描述

🚀测评管理:可以查看用户的心理测评情况,得分
在这里插入图片描述

🚀公告管理:公告查询、公告添加、查看、编辑、删除等;
在这里插入图片描述

🚀新增公告: 管理员可以发布公告相关信息,学生可以直接查阅
在这里插入图片描述

🚀系统设置:管理员密码修改等;
在这里插入图片描述


五、项目代码分析

对用户而言其实不用登录也是可以访问网站的

如果用户想进行测评必须登录,登录后用户信息放入session中保存

/**
 * 存放用户登入的Session
 */
public class LoginSession {

    public static final String USER_IN_SESSION = "user_in_session";

    //获取session对象
    private static HttpSession getSession() {

        return ((ServletRequestAttributes) (RequestContextHolder.getRequestAttributes())).getRequest().getSession();
    }

    //设置用户登入的Session
    public static void setUserInSession(User contextUser) {
        if (contextUser != null) {
            //保存session
            getSession().setAttribute(USER_IN_SESSION, contextUser);
        } else {
            //注销session
            getSession().invalidate();
        }
    }

    //共享给外部调用登入session
    public static User getCurrentUser() {
        return (User) getSession().getAttribute(USER_IN_SESSION);
    }
}

项目使用的前端框架是layui必须按照其规范返回值

/**
 * Layui表格封装json格式数据工具类
 */
public class ServerLayResult<T> {
    private int code;
    private String msg;
    private long count;
    private  T data;
    //备注:仅保留主要的参考
}
    

生成验证码的相关代码
在这里插入图片描述

通过验证嘛,避免了用户直接账号密码登录的情况,安全性更高

 /**
     * 生成验证码
     *
     * @param httpServletRequest
     * @param httpServletResponse
     * @throws Exception
     */
    @GetMapping("/defaultKaptcha")
    public void defaultKaptcha(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)
            throws Exception {
        byte[] captchaChallengeAsJpeg = null;
        ByteArrayOutputStream jpegOutputStream = new ByteArrayOutputStream();
        try {
            //生产验证码字符串并保存到session中
            String createText = producer.createText();
            httpServletRequest.getSession().setAttribute("vrifyCode", createText);
            //使用生产的验证码字符串返回一个BufferedImage对象并转为byte写入到byte数组中
            BufferedImage challenge = producer.createImage(createText);
            ImageIO.write(challenge, "jpg", jpegOutputStream);
        } catch (IllegalArgumentException e) {
            httpServletResponse.sendError(HttpServletResponse.SC_NOT_FOUND);
            return;
        }
        //定义response输出类型为image/jpeg类型,使用response输出流输出图片的byte数组
        captchaChallengeAsJpeg = jpegOutputStream.toByteArray();
        httpServletResponse.setHeader("Cache-Control", "no-store");
        httpServletResponse.setHeader("Pragma", "no-cache");
        httpServletResponse.setDateHeader("Expires", 0);
        httpServletResponse.setContentType("image/jpeg");
        ServletOutputStream responseOutputStream =
                httpServletResponse.getOutputStream();
        responseOutputStream.write(captchaChallengeAsJpeg);
        responseOutputStream.flush();
        responseOutputStream.close();
    }

未完待续………


六、项目优化升级

📝希望有基础的学生可以自己做出更优质的项目

开发建议: 尽量基于SpringBoot框架搭建项目,因为潮流,简单,方便,易用!

数据库设计: 参考已有的类似项目设计数据库,深入挖掘自己选题要解决什么问题,即设计什么数据表

项目升级: 前端的话有条件使用vue +element等潮流的前端框架,前后端分离开发; 后台引入中间件 如消息队列+缓存Redis , 微信支付(根据业务定),Jwt单点登录,爬虫,算法等!

升级案例分享:商城购物系统设计与实现

具体项目如何优化可以参考上面的商城系统,我写了很完整的项目升级,优化案例!


🌊大家在毕设选题,项目升级,论文写作,就业毕业等相关问题都可以给我留言咨询,非常乐意帮助更多的人


📣非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞👍 关注❤️ 分享👥 留言💬thanks!!!

📚愿我们奔赴在各自的热爱里!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐