首页 > 其他分享 >基于SSM框架的电脑测评系统

基于SSM框架的电脑测评系统

时间:2024-09-25 19:52:20浏览次数:8  
标签:return 测评 电脑 SSM user userService import com public

系统描述

随着信息技术在管理上越来越深入而广泛的应用,作为一个一般的用户都开始注重与自己的信息展示平台,实现基于SSM框架的电脑测评系统在技术上已成熟。本文介绍了基于SSM框架的电脑测评系统的开发全过程。通过分析用户对于基于SSM框架的电脑测评系统的需求,创建了一个计算机管理基于SSM框架的电脑测评系统的方案。文章介绍了基于SSM框架的电脑测评系统的系统分析部分,包括可行性分析等,系统设计部分主要介绍了系统功能设计和数据库设计。

本基于SSM框架的电脑测评系统有管理员和用户两个角色。管理员功能有个人中心,用户管理,电脑类型管理,电脑分类管理,电脑品牌管理,电脑信息管理,电脑评测管理,论坛互助,系统管理等。用户功能有,个人中心,电脑品牌管理,电脑信息管理,电脑评测管理,我的收藏管理,论坛互助,系统管理等。因而具有一定的实用性。

本站是一个B/S模式系统,采用Java的SSM框架作为开发技术,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得基于SSM框架的电脑测评系统管理工作系统化、规范化。

技术描述

文章末尾获取源码

开发语言:Java

技术框架:SSM

前端语言:Vue\HTML

持久层框架:Mybatis

服务器:Tomcat7\8\9\10

数据库:MySQL5.7以上

项目管理工具:Maven

项目开发工具:IDEA\Eclipse

系统展示

基于SSM框架的电脑测评系统的系统管理员可以管理用户信息,可以对用户信息添加修改删除操作。具体界面的展示如图5.1所示。

 系统管理员可以对电脑类型进行添加,修改,删除操作。具体界面如图5.2所示。

 系统管理员可以对电脑信息进行添加,修改,删除操作。界面如下图所示:

 用户登录后,可以在首页查看电脑信息。界面如下图所示:

 用户登录后,点击后台管理以后,再点击电脑评测,就可以查看电脑评测信息。界面如下图所示:

 用户登录后可以在首页个人中心里面点击我的收藏,可以查看我的收藏。界面如下图所示:

 

代码实现:

跨域实现

package com.interceptor;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import com.alibaba.fastjson.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;

import com.annotation.IgnoreAuth;
import com.entity.EIException;
import com.entity.TokenEntity;
import com.service.TokenService;
import com.utils.R;

/**
 * 权限(Token)验证
 */
@Component
public class AuthorizationInterceptor implements HandlerInterceptor {

    public static final String LOGIN_TOKEN_KEY = "Token";

    @Autowired
    private TokenService tokenService;
    
	@Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

        //支持跨域请求
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Credentials", "true");
        response.setHeader("Access-Control-Allow-Headers", "x-requested-with,request-source,Token, Origin,imgType, Content-Type, cache-control,postman-token,Cookie, Accept,authorization");
        response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));

        IgnoreAuth annotation;
        if (handler instanceof HandlerMethod) {
            annotation = ((HandlerMethod) handler).getMethodAnnotation(IgnoreAuth.class);
        } else {
            return true;
        }

        //从header中获取token
        String token = request.getHeader(LOGIN_TOKEN_KEY);
        
        /**
         * 不需要验证权限的方法直接放过
         */
        if(annotation!=null) {
        	return true;
        }
        
        TokenEntity tokenEntity = null;
        if(StringUtils.isNotBlank(token)) {
        	tokenEntity = tokenService.getTokenEntity(token);
        }
        
        if(tokenEntity != null) {
        	request.getSession().setAttribute("userId", tokenEntity.getUserid());
        	request.getSession().setAttribute("role", tokenEntity.getRole());
        	request.getSession().setAttribute("tableName", tokenEntity.getTablename());
        	request.getSession().setAttribute("username", tokenEntity.getUsername());
        	return true;
        }
        
		PrintWriter writer = null;
		response.setCharacterEncoding("UTF-8");
		response.setContentType("application/json; charset=utf-8");
		try {
		    writer = response.getWriter();
		    writer.print(JSONObject.toJSONString(R.error(401, "请先登录")));
		} finally {
		    if(writer != null){
		        writer.close();
		    }
		}
//				throw new EIException("请先登录", 401);
		return false;
    }
}

登录实现


package com.controller;


import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;

/**
 * 登录相关
 */
@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);
    	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    	if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    		return R.error("用户名已存在。");
    	}
        userService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

标签:return,测评,电脑,SSM,user,userService,import,com,public
From: https://blog.csdn.net/Steve792/article/details/142464313

相关文章

  • 基于SSM的学生学情预警系统的设计与实现
    系统描述随着信息互联网购物的飞速发展,一般有能力的机构管理系统。本文介绍了学生学情预警系统的开发全过程。通过分析企业对于学生学情预警系统的需求,创建了一个计算机管理学生学情预警系统的方案。文章介绍了学生学情预警系统的系统分析部分,包括可行性分析等,系统设计部分主......
  • Java毕业设计-基于SSM框架的校园失物招领平台系统项目实战(附源码+论文)
    大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。......
  • Java毕业设计-基于SSM框架的网上奶茶店系统项目实战(附源码+论文)
    大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。......
  • bugtrap.dll报错影响工作?从根源解决bugtrap.dll缺失难题,让你的电脑告别频繁报错
    当您在使用电脑时遇到“找不到bugtrap.dll”或“bugtrap.dll报错”的提示,这意味着您的计算机上缺少或损坏了一个重要的动态链接库文件。bugtrap.dll文件通常是某些应用程序或游戏运行所需的组件之一,缺失或损坏该文件会导致程序无法正常启动或运行。此外,这类错误可能会频繁出现,......
  • 电脑视频删除可以恢复吗?学会这4招,找回消失的它
    剪了好久的视频丢失了,该怎么找回来?相信不少人都经历过这样的事情:刚把视频保存好,转眼间就不见了!电脑视频删除可以恢复吗?别太担心,尽管藏得再深,通过文章分享的4个小技巧,相信你能够将它找回来!究竟是哪4招呢?接下来就为大家揭晓!第1招:通过恢复工具找回删除的视频其实,发现电脑视频......
  • 电脑如何找回已删除的文件?4个方法,方便有效
    什么?文件被删除?恢复之神有话要说:电脑,博大精深,其内藏之秘密不可胜数。人有时误触键盘,将所需之文件删去,遂致心忧。如何找回已删除的文件?今吾将示4法,以助尔找回所失之文件使尔免受损失。听之,记之,实践之,则所失之文件可复矣。那么,就根据恢复之神的指引,一起来看看这4个方法吧!方......
  • SSM实验室排课系统 毕业设计源码24944
    摘要随着社会的发展,社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是使用动态网页开发技术java作为系统的开发语言,MySQL作为后台数据库。整个开发过程首先对实验室排......
  • 使用nssm将nacos注册为系统服务教程
    每次启动项目之前,都需要去启动nacos服务,感觉非常的麻烦,所以想办法将它注册为系统服务,想用的时候,直接用命令启动,不想用的时候,直接用命令停止,最终找到一个不错的解决方案,操作起来也比较简单。nssm官网地址:https://nssm.cc/这里我们选择日期比较新的版本下载使用,当然你可以通过下面的......
  • 公司用什么软件监控电脑?分享6个常见的电脑监控软件,赶紧Get吧!
    在现代企业中,监控员工电脑活动不仅能够保护企业信息安全,还能有效提高工作效率。通过专业的电脑监控软件,企业可以全面掌握员工的网络活动、数据操作等情况。以下为大家推荐6款常见的电脑监控软件,帮助企业有效管理员工,促进企业发展。1.安企神系统——全面的企业电脑监控管......
  • 电脑如何录屏?无水印、高清晰度电脑录屏教程
    现如今,电脑录屏已成为我们工作、学习和娱乐中不可或缺的一部分,日常可以用来录制教学视频、游戏直播、会议记录等等,但有些朋友可能还不知道怎么高清录制视频,今天就给大家带来了几个简单又实用的方法,需要的朋友快码住!1.嗨格式录屏大师(录屏大师软件免费下载_高清电脑屏幕录像......