SpringMVC是MVC的改改,它也属于Spring框架,可以零配置的进行开发,缩减了开发的时间,当用户通过浏览器发送Request请求时,在配置文件里通过DispatcherServlet前端进行处理连接器。通过HandlerMapping识别器进行匹配,识别器是通过Control的控制器进行调用,Control完成处理后传送给DispatcherServlet解析Model和View后,返回信息到前台页面。
Spring是J2EE的一个标准,Spring将表现层、业务层耦合降低,因为它包含IOC控制反转,支持依赖注入。Spring支持七个模块,每个模块可单独使用,也可以相互之间进行调用。Spring核心容器是通过工厂模式实现,代码的依赖和配置分离,另外一个是面向切片,也就是AOP,通过配置文件的配置,很轻松的实现切片管理,比如说实现事务管理。Spring也提供了数据访问对象,通过数据库操作,并将异常和数据提供给业务逻辑。
论文首先阐述了抑郁症科普交流网站的开发,并对该系统进行了较详细的需求分析,探讨了抑郁症科普交流网站的功能需求、业务流程、系统结构和数据库设计等方面的问题。望能利用先进的计算机技术和网络技术来改变目前的抑郁症科普状况,提高管理效率。
本系统包含前台和后台两个部分的功能。前台主要包括用户注册登陆、抑郁症小常识、疾病自测、预防措施、相关案例、治疗措施、论坛交流、资源分享、会员中心、私聊、医生推荐等模块。在抑郁症小常识模块,用户可以查看有关疾病原因、疾病危害等知识。用户通过注册会员并登陆,可以在论坛发表帖子,分享自己的一些经历,并对其他用户的帖子进行评论,用户也可以在资源分享模块分享抗抑郁的音乐和视频,以及推荐抗抑郁的书籍和文章;在疾病自测模块,用户可以通过填写一些表格来进行初步测试;在会员中心模块,用户可以修改自己的个人信息和登陆密码;在私聊模块,用户可以和其他 用户进行详细的交流沟通,同时也可以对私聊内容进行删除和查看;同时用户可以在医生推荐模块查看相关权威的医生。
后台主要实现用户管理、论坛管理、资源分享管理、抑郁症小常识管理、疾病自测管理、医生推荐管理、预防措施管理、相关案例管理、治疗措施管理,管理员可以在网站页面的主要模块进行内容的修改,管理论坛的正常运行,防止恶意语言的出现,还可以对会员的信息进行管理。
本抑郁症科普交流网站设计目标是实现抑郁症科普的信息化管理,提高管理效率,使得抑郁症科普工作规范化、科学化、高效化。
本文研究的抑郁症科普交流网站基于SSM架构,采用JSP技术、JAVA编程语言和MYSQL数据库设计开发。通过本系统,实现了管理员和用户两个角色的功能,能够有效提高抑郁症科普效率。本系统经过测试,运行效果稳定,操作方便、快捷,是一个功能全面、实用性好、安全性高,并具有良好的可扩展性、可维护性的抑郁症科普平台。
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
目录
1 绪论 1
1.1课题背景 1
1.2课题研究现状 1
1.3初步设计方法与实施方案 2
1.4本文研究内容 2
2 系统开发环境 4
2.1 JAVA简介 4
2.2MyEclipse环境配置 4
2.3 B/S结构简介 4
2.4MySQL数据库 5
2.5 SPRINGBOOT框架 5
3 系统分析 6
3.1系统可行性分析 6
3.1.1经济可行性 6
3.1.2技术可行性 6
3.1.3运行可行性 6
3.2系统现状分析 6
3.3功能需求分析 7
3.4系统设计规则与运行环境 8
3.5系统流程分析 8
3.5.1操作流程 8
3.5.2添加信息流程 9
3.5.3删除信息流程 10
4 系统设计 11
4.1系统设计主要功能 11
4.2数据库设计 11
4.2.1数据库设计规范 11
4.2.2 E/R图 11
4.2.3数据表 12
5 系统实现 25
5.1系统功能模块 25
5.2后台模块 27
5.2.1管理员功能模块 27
5.2.2用户功能模块 30
6 系统测试 33
6.1功能测试 33
6.2可用性测试 33
6.3性能测试 34
6.4测试结果分析 34
7结 论 35
参考文献 36
致 谢 37