基于springboot的Android的考试模拟系统设计与实现

基于springboot的Android的考试模拟系统设计与实现基于 SpringBoot 的 Android 考试模拟系统介绍基于 SpringBoot 的 Android 考试模拟系统是一款为学生和考生打造的便捷学习工具

大家好,欢迎来到IT知识分享网。

前言

详细视频演示

请联系我获取更详细的演示视频

具体实现截图

基于java+springboot的Android的考试模拟系统设计与实现
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述










技术栈

后端框架SpringBoot

前端框架Vue

MySQL数据库

核心代码


import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.sun.org.apache.xpath.internal.operations.Mod;
import com.xhu.pojo.Admin;
import com.xhu.pojo.Msg;
import com.xhu.pojo.Student;
import com.xhu.service.AdminService;
import com.xhu.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.servlet.server.Session;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import sun.security.util.Password;

import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;


@Controller
public class LoginController {

    @Autowired
    DefaultKaptcha defaultKaptcha;

    @Autowired
    StudentService studentService;

    @Autowired
    AdminService adminService;


//    @RequestMapping("/login.html")
//    public String login(){
//        return "login";
//    }


    //获取验证码
    @RequestMapping("/getCode")
    public void defaultKaptcha(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception{
        byte[] captchaChallengeAsJpeg = null;
        ByteArrayOutputStream jpegOutputStream = new ByteArrayOutputStream();
        try {
            //生产验证码字符串并保存到session中
            String createText = defaultKaptcha.createText();
            httpServletRequest.getSession().setAttribute("vrifyCode", createText);
            //使用生产的验证码字符串返回一个BufferedImage对象并转为byte写入到byte数组中
            BufferedImage challenge = defaultKaptcha.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();
    }

    //验证码验证
    @RequestMapping("/login")
    public String login(@RequestParam("id")Integer id,
                        @RequestParam("password") String password,
                        @RequestParam("userType") String userType,
                        HttpServletRequest request,
                        HttpServletResponse response,
                        HttpSession session,
                        Model model) {
        //获取session域中验证码
        String captchaId = (String) request.getSession().getAttribute("vrifyCode");
//        System.out.println(captchaId.toLowerCase());
        //获取用户填写的验证码
        String parameter = request.getParameter("code");
//        System.out.println(parameter.toLowerCase());

//        String value1="";
//        String value2="";
//        Cookie cookie1=new Cookie("id",id+"");
//        Cookie cookie2=new Cookie("password",password);
//        cookie1.setMaxAge(60*60*24);
//        cookie2.setMaxAge(60*60*24);
//        response.addCookie(cookie1);
//        response.addCookie(cookie2);

        if ("1".equals(userType)) {
            Admin admin = adminService.queryAdminById(id);
            if (captchaId.toLowerCase().equals(parameter.toLowerCase())) {
                if (admin != null && password.equals(admin.getAdminPassword())) {
                    //用户存在,登录成功
                    session.setAttribute("admin", admin);
                    return "redirect:admin/index.html";
                } else {
                    model.addAttribute("msg", "用户名或者密码错误!");
                    model.addAttribute("id",id);
                    model.addAttribute("userType",userType);
                    return "login.html";
                }
            }
            else {
                //验证码错误
                model.addAttribute("msg", "验证码错误!");
//                Cookie[] cookies=request.getCookies();
//                for(Cookie cookie:cookies){
//                    if("id".equals(cookie.getName())){
//                         value1 = cookie.getValue();
//                    }
//                    if("password".equals(cookie.getName())){
//                        value2 = cookie.getValue();
//                    }
//                }
//                model.addAttribute("id",value1);
//                model.addAttribute("password",value2);
                model.addAttribute("id",id);
                model.addAttribute("password",password);
                model.addAttribute("userType",userType);

                return "login.html";
            }

        }
        else {
            Student student = studentService.queryStuById(id);

            if (captchaId.toLowerCase().equals(parameter.toLowerCase())) {
                if (student != null && password.equals(student.getPassword())) {
                    //用户存在,登录成功
                    session.setAttribute("student", student);
                    Cookie cookie1=new Cookie("id",student.getId()+"");
                    cookie1.setMaxAge(60*60*24);
                    response.addCookie(cookie1);
                    return "redirect:student/index-stu.html";
                } else {
                    model.addAttribute("msg", "用户名或者密码错误!");
                    model.addAttribute("id",id);
                    model.addAttribute("userType",userType);
                    return "login.html";
                }
            } else {
                //验证码错误
                model.addAttribute("msg", "验证码错误!");
                model.addAttribute("id",id);
                model.addAttribute("password",password);
                model.addAttribute("userType",userType);
                return "login.html";
            }

        }
    }

    @RequestMapping("/admin/logout")
    public String logout(HttpSession session){
        session.invalidate();
        return "redirect:login";
    }

    @RequestMapping("/student/logout")
    public String stuLogout(HttpSession session){
        session.invalidate();
        return "redirect:login";
    }
}

源码获取

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/121084.html

(0)
上一篇 2025-10-25 18:20
下一篇 2025-10-25 18:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信