博主介绍:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌
项目名称
基于Java的心理服务平台的设计与实现
下载地址
https://ym.maptoface.com/archives/58914
视频演示
基于Java的心理服务平台的设计与实_哔哩哔哩_bilibili
系统介绍
摘 要
伴随着网络技术的高速发展,各行各业都需要依赖数字信息化系统来进行业务处理,让业务办理更加方便,这其中心理咨询服务行业也不例外。通过一套心理服务平台系统来在线了解大学生心理健康情况,方便学生用户群体在线进行心理问题咨询,及时解决心理负担是非常有必要的。目前大多数医院的在线服务系统,很少有针对心理服务咨询开展工作的,多数还是以简单的挂号为主,这对有心理咨询需求的用户来说非常的不方便。一个是对心理健康问题不重视,另外也对心理健康问题难以启齿。心理服务平台就是为了解决大学生心理健康问题所提出来的,为每一位用户起到释放压力,给内心“放一个假”的作用。
系统采用Java开发语言进行开发,使用SSM框架以及MySQL关系型数据库作为基本架构进行开发,遵循MVC体系架构和软件工程的思想,通过需求分析,整体设计,详细设计,编码和测试来保障系统高质量的完成。系统主要包含前台用户模块、后台管理模块、心理测试、心理文章、专家指导、心理导师、在线交流、关于我们、用户管理、系统管理等功能。通过系统为广大学生解决了心理问题咨询难、心理咨询渠道少的问题,为提高学生们的心理素质以及保持健康的人生观、价值观作了一定贡献。
关键词:心理服务;管理系统;Java;SSM;MySQL
2.2 功能需求
管理员主要功能模块:管理员可以对测试题目进行增删改查、模块管理、帖子管理审核管理、频道文章管理、发布文章、频道管理、添加新闻,还可以对学生、教师、管理员进行统一管理以及对网站的基本系统进行设置。
教师功能模块:教师可以使用前台的所有功能,还可以发布文章、对文章进行管理、在线指导以及提供账户管理等功能。
学生功能模块:学生模块前台可以进行登录注册、心理测试、心理文章的浏览、浏览专家指导建议、预约信息导师进行交流并且还可以在线咨询心理教师进行心理咨询。
2.3 用例模块分析
系统分为了学生、教师、管理员三种角色,学生用户主要的功能包括登录注册、首页模块、心理测试、心理文章、专家指导、心理导师、在线交流、关于我们浏览、个人信息维护等功能。
图 2-1 学生模块用例图
教师的主要功能包括学生用户的所有功能以及文章的发布、心理指导文章的管理、在线指导以及个人账户信息的维护。
图2-2 教师模块用例图
管理员是基于Java的心理服务平台的重要角色之一。管理员可以对平台进行管理和维护,包括用户信息管理、心理咨询师资质审核、心理测评题库管理等。管理员还负责维护平台的安全性和稳定性,监控平台运行情况,及时处理系统异常和故障。平台设计了完善的权限控制机制,确保管理员只能访问其具有权限的功能,保障用户信息的安全性。
图2-3 管理员用例图
第3章 总体设计
3.1 系统总成设计
根据需求分析最后设计出系统的整体功能架构,将大学生心理服务平台的主要功能模块大致分为三个部分:学生、教师和管理员。
学生用户主要是对系统的前台功能进行使用,主要模块分为了学生注册、学生登录、浏览文章、评论文章、心理测试、我的测试、咨询专家、我的咨询、我的发言、论坛交流、我的收藏、评论文章、搜索文章、会员中心、账号维护等功能模块。
教师用户是基于Java的心理服务平台的一类用户。教师用户可以通过平台进行在线心理咨询和心理测评,获取专业的心理支持和帮助。平台提供了多种心理测评工具和咨询方式,教师用户可以根据自身需求选择合适的服务。平台的心理咨询师团队由专业心理学家和咨询师组成,保证教师用户的隐私和信息安全。
管理员用户在基于Java的心理服务平台中扮演着特殊角色,持有对整个系统的管理权限和维护权。他们拥有审查心理咨询师资历的权力,具备管理用户信息的能力,以及保持系统稳定运行的职责。除此之外,他们还负责处理各类用户的投诉以及突发的异常情况,确保平台信息的安全性。为了更有效地执行这些职责,管理员用户需要拥有专业的心理学知识和技能。
平台运用了严密的权限控制机制,以确保管理员用户只能访问到他们被授权的功能,从而极大地提高了用户信息的安全性。这种权限控制的严格性是为了防止信息泄露,保障用户数据的私密性和安全性,同时也维护了平台的信誉和用户的信任度。
图3-3 管理员功能模块图
编辑
编辑
编辑
编辑
编辑
编辑
技术栈
- 后端:Spring+SpringMVC+Mybatis
- 前端:JSP+CSS+JavaScript+jQuery
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
- 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; - 将项目中springmvc-servlet.xml配置文件中的数据库配置改为自己的配置;
- 运行项目,在浏览器中输入http://localhost:8080/ 登录
运行截图
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑
用户管理控制层:
package com.houserss.controller;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.houserss.common.Const;
import com.houserss.common.Const.Role;
import com.houserss.common.ServerResponse;
import com.houserss.pojo.User;
import com.houserss.service.IUserService;
import com.houserss.service.impl.UserServiceImpl;
import com.houserss.util.MD5Util;
import com.houserss.util.TimeUtils;
import com.houserss.vo.DeleteHouseVo;
import com.houserss.vo.PageInfoVo;
/**
- Created by admin
*/
@Controller
@RequestMapping(“/user/”)
public class UserController {
@Autowired
private IUserService iUserService;
/**
* 用户登录
* @param username
* @param password
* @param session
* @return
*/
@RequestMapping(value = "login.do",method = RequestMethod.POST)
@ResponseBody
public ServerResponse login(User user,String uvcode, HttpSession session){
String code = (String)session.getAttribute("validationCode");
if(StringUtils.isNotBlank(code)) {
if(!code.equalsIgnoreCase(uvcode)) {
return ServerResponse.createByErrorMessage("验证码不正确");
}
}
ServerResponse response = iUserService.login(user.getUsername(),user.getPassword());
if(response.isSuccess()){
session.setAttribute(Const.CURRENT_USER,response.getData());
}
return response;
}
}
管理员管理控制层:
package com.sxl.controller.admin;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import com.sxl.controller.MyController;
@Controller(“adminController”)
@RequestMapping(value = “/admin”)
public class AdminController extends MyController {
@RequestMapping(value = "/index")
public String frame(Model model, HttpServletRequest request)throws Exception {
return "/admin/index";
}
@RequestMapping(value = "/main")
public String main(Model model, HttpServletRequest request)throws Exception {
return "/admin/main";
}
@RequestMapping(value = "/tj1")
public String tj1(Model model, HttpServletRequest request)throws Exception {
String sql="select DATE_FORMAT(insertDate,'%Y-%m-%d') dates,sum(allPrice) price from t_order order by DATE_FORMAT(insertDate,'%Y-%m-%d') desc";
List
}
修改密码业务逻辑:
package com.sxl.controller.admin;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import com.sxl.controller.MyController;
@Controller(“userController”)
@RequestMapping(value = “/user”)
public class UserController extends MyController {
@RequestMapping(value = "/index")
public String frame(Model model, HttpServletRequest request)throws Exception {
return "/user/index";
}
@RequestMapping(value = "/main")
public String main(Model model, HttpServletRequest request)throws Exception {
return "/user/main";
}
@RequestMapping(value = "/password")
public String password(Model model, HttpServletRequest request)throws Exception {
return "/user/password";
}
@RequestMapping(value = "/changePassword")
public ResponseEntity loginSave(Model model,HttpServletRequest request,String oldPassword,String newPassword) throws Exception {
Map user = getUser(request);
if(oldPassword.equals(user.get("password").toString())){
String sql="update t_user set password=? where id=?";
db.update(sql, new Object[]{newPassword,user.get("id")});
return renderData(true,"1",null);
}else{
return renderData(false,"1",null);
}
}
@RequestMapping(value = "/mine")
public String mine(Model model, HttpServletRequest request)throws Exception {
Map user =getUser(request);Map map = db.queryForMap(“select * from t_user where id=?”,new Object[]{user.get(“id”)});model.addAttribute(“map”, map); return “/user/mine”;
}
@RequestMapping(value = "/mineSave")
public ResponseEntity mineSave(Model model,HttpServletRequest request,Long id
,String username,String password,String name,String gh,String mobile) throws Exception{
int result = 0;
String sql="update t_user set name=?,gh=?,mobile=? where id=?";
result = db.update(sql, new Object[]{name,gh,mobile,id});
if(result==1){
return renderData(true,"操作成功",null);
}else{
return renderData(false,"操作失败",null);
}
}
}
通用管理模块:
package com.sxl.controller;
import java.nio.charset.Charset;
import java.util.Locale;
import java.util.ResourceBundle;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import com.sxl.util.JacksonJsonUtil;
import com.sxl.util.StringUtil;
import com.sxl.util.SystemProperties;
public class BaseController {
public static final Long EXPIRES_IN = 1000 * 3600 * 24 * 1L;// 1天
@Autowired
private SystemProperties systemProperties;
/**
* 获得配置文件内容
*/
public String getConfig(String key) {
return systemProperties.getProperties(key);
}
/**
* 返回服务器地址 like http://192.168.1.1:8441/UUBean/
*/
public String getHostUrl(HttpServletRequest request) {
String hostName = request.getServerName();
Integer hostPort = request.getServerPort();
String path = request.getContextPath();
if (hostPort == 80) {
return "http://" + hostName + path + "/";
} else {
return "http://" + hostName + ":" + hostPort + path + "/";
}
}
/***
* 获取当前的website路径 String
*/
public static String getWebSite(HttpServletRequest request) {
String returnUrl = request.getScheme() + "://"
+ request.getServerName();
if (request.getServerPort() != 80) {
returnUrl += ":" + request.getServerPort();
}
returnUrl += request.getContextPath();
return returnUrl;
}
/**
* 初始化HTTP头.
*
* @return HttpHeaders
*/
public HttpHeaders initHttpHeaders() {
HttpHeaders headers = new HttpHeaders();
MediaType mediaType = new MediaType("text", "html",
Charset.forName("utf-8"));
headers.setContentType(mediaType);
return headers;
}
/**
* 返回 信息数据
*
* @param status
* @param msg
* @return
*/
public ResponseEntity renderMsg(Boolean status, String msg) {
if (StringUtils.isEmpty(msg)) {
msg = "";
}
String str = "{"status":"" + status + "","msg":"" + msg + ""}";
ResponseEntity responseEntity = new ResponseEntity(str,
initHttpHeaders(), HttpStatus.OK);
return responseEntity;
}
/**
* 返回obj数据
*
* @param status
* @param msg
* @param obj
* @return
*/
public ResponseEntity renderData(Boolean status, String msg,
Object obj) {
if (StringUtils.isEmpty(msg)) {
msg = "";
}
StringBuffer sb = new StringBuffer();
sb.append("{");
sb.append(""status":"" + status + "","msg":"" + msg + "",");
sb.append(""data":" + JacksonJsonUtil.toJson(obj) + "");
sb.append("}");
ResponseEntity responseEntity = new ResponseEntity(
sb.toString(), initHttpHeaders(), HttpStatus.OK);
return responseEntity;
}
/***
* 获取IP(如果是多级代理,则得到的是一串IP值)
*/
public static String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
if (ip != null && ip.length() > 0) {
String[] ips = ip.split(",");
for (int i = 0; i
}
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
Capstone 是一款开源的反汇编框架,目前该引擎支持的CPU架构包括x86、x64、ARM、MIPS、POWERPC、SPARC等,Capstone 的特点是快速、轻量级、易于使用,它可以良好地处理各种类型的指令,支持将指令转换成AT&T汇编语法或…