Java项目:嘟嘟校园一卡通系统(java+JSP+Servlet+html+css+JavaScript+JQuery+Ajax+mysql)

2022/1/3 19:12:36

本文主要是介绍Java项目:嘟嘟校园一卡通系统(java+JSP+Servlet+html+css+JavaScript+JQuery+Ajax+mysql),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、项目简述(+需求文档+PPT)
功能:卡管理,卡消费,卡充值,图书借阅,消费,记录,注销等等功能。

二、项目运行

环境配置:

Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)

项目技术:

JSP + Servlet + html+ css + JavaScript + JQuery + Ajax 等等

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
用户管理操作控制层:/**

  • 用户管理操作
    */
    @Controller
    @RequestMapping("/user")
    public class UserController {

    @Autowired
    private UserService userService;

    /**

    • 用户添加页面
    • @return
      */
      @GetMapping("/add")
      public String create() {
      return “user/add”;
      }

    /**

    • 用户添加操作
    • @param user
    • @return
      */
      @PostMapping("/add")
      @ResponseBody
      public Map<String, Object> add(@RequestBody User user) {
      if(StringUtils.isEmpty(user.getUserName())){
      return MapControl.getInstance().error(“请填写用户名”).getMap();
      }
      if(StringUtils.isEmpty(user.getName())){
      return MapControl.getInstance().error(“请填写名称”).getMap();
      }
      if(StringUtils.isEmpty(user.getUserPwd())){
      return MapControl.getInstance().error(“请填写密码”).getMap();
      }
      int result = userService.create(user);
      if (result <= 0) {
      return MapControl.getInstance().error().getMap();
      }
      return MapControl.getInstance().success().getMap();
      }

    /**

    • 根据id删除
    • @param id
    • @return
      */
      @PostMapping("/delete/{id}")
      @ResponseBody
      public Map<String, Object> delete(@PathVariable(“id”) Integer id) {
      int result = userService.delete(id);
      if (result <= 0) {
      return MapControl.getInstance().error().getMap();
      }
      return MapControl.getInstance().success().getMap();
      }

    //批量删除
    @PostMapping("/delete")
    @ResponseBody
    public Map<String, Object> delete(String ids) {
    int result = userService.delete(ids);
    if (result <= 0) {
    return MapControl.getInstance().error().getMap();
    }
    return MapControl.getInstance().success().getMap();
    }

    /**

    • 编辑用户信息操作
    • @param user
    • @return
      */
      @PostMapping("/edit")
      @ResponseBody
      public Map<String, Object> edit(@RequestBody User user) {
      if(StringUtils.isEmpty(user.getUserName())){
      return MapControl.getInstance().error(“请填写用户名”).getMap();
      }
      if(StringUtils.isEmpty(user.getName())){
      return MapControl.getInstance().error(“请填写名称”).getMap();
      }
      if(StringUtils.isEmpty(user.getUserPwd())){
      return MapControl.getInstance().error(“请填写密码”).getMap();
      }
      int result = userService.update(user);
      if (result <= 0) {
      return MapControl.getInstance().error().getMap();
      }
      return MapControl.getInstance().success().getMap();
      }

    /**

    • 根据id查询,跳转修改页面
    • @param id
    • @param modelMap
    • @return
      */
      @GetMapping("/edit/{id}")
      public String edit(@PathVariable(“id”) Integer id, ModelMap modelMap) {
      User user = userService.detail(id);
      modelMap.addAttribute(“user”, user);
      return “user/edit”;
      }

    //查询所有
    @PostMapping("/query")
    @ResponseBody
    public Map<String, Object> query(@RequestBody User user) {
    List list = userService.query(user);
    Integer count = userService.count(user);
    return MapControl.getInstance().success().page(list, count).getMap();
    }

    //跳转列表页面
    @GetMapping("/list")
    public String list() {
    return “user/list”;
    }

}
登录控制层:@Controller
public class LoginController {

@Autowired
private UserService userService;
@Autowired
private TeacherService teacherService;
@Autowired
private StudentService studentService;

//跳转登录页面
@GetMapping("/login")
public String login() {
    return "login";
}

//登录操作
@PostMapping("/login")
@ResponseBody
public Map<String, Object> login(String userName, String password, String captcha, String type, HttpSession session) {
    //判断用户名、密码、用户类型、验证码是否为空
    if (StringUtils.isEmpty(userName) || StringUtils.isEmpty(password) || StringUtils.isEmpty(captcha) || StringUtils.isEmpty(type)) {
        return MapControl.getInstance().error("用户名或密码不能为空").getMap();
    }
    //获取系统生成的验证码
    String _captcha = (String) session.getAttribute("captcha");
    //先判断验证码是否正确
    if (!(captcha.toLowerCase()).equals(_captcha.toLowerCase())) {
        //验证码错误
        return MapControl.getInstance().error("验证码错误").getMap();
    }

    //判断用户类型
    if ("1".equals(type)) { //管理员验证登录
        User user = userService.login(userName, MD5Utils.getMD5(password)); //对密码进行加密处理,因为数据库中存储的是加密后的密码
        if (user != null) {
            session.setAttribute("user", user);
            session.setAttribute("type", 1);
            return MapControl.getInstance().success().add("data", user).getMap();
        } else {
            return MapControl.getInstance().error("用户名或密码错误").getMap();
        }
    }
    if ("2".equals(type)) { //老师验证登录
        Teacher teacher = teacherService.login(userName, MD5Utils.getMD5(password));
        if (teacher != null) {
            session.setAttribute("user", teacher);
            session.setAttribute("type", "2");
            return MapControl.getInstance().success().add("data", teacher).getMap();
        } else {
            return MapControl.getInstance().error("用户名或密码错误").getMap();
        }
    }
    if ("3".equals(type)) { //学生验证登录
        Student student = studentService.login(userName, MD5Utils.getMD5(password));
        if (student != null) {
            session.setAttribute("user", student);
            session.setAttribute("type", "3");
            return MapControl.getInstance().success().add("data", student).getMap();
        } else {
            return MapControl.getInstance().error("用户名或密码错误").getMap();
        }
    }
    return MapControl.getInstance().getMap();
}

}
生成验证码:@Controller
@RequestMapping("/captcha")
public class CaptchaController {

private char[] codeSequence = {'A', '1', 'B', 'C', '2', 'D', '3', 'E', '4', 'F', '5', 'G', '6', 'H', '7', 'I', '8', 'J',
        'K', '9', 'L', '1', 'M', '2', 'N', 'P', '3', 'Q', '4', 'R', 'S', 'T', 'U', 'V', 'W',
        'X', 'Y', 'Z'};

@RequestMapping("/code")
public void getCode(HttpServletResponse response, HttpSession session) throws IOException {
    int width = 80;
    int height = 37;
    Random random = new Random();
    //设置response头信息
    //禁止缓存
    response.setHeader("Pragma", "No-cache");
    response.setHeader("Cache-Control", "no-cache");
    response.setDateHeader("Expires", 0);

    //生成缓冲区image类
    BufferedImage image = new BufferedImage(width, height, 1);
    //产生image类的Graphics用于绘制操作
    Graphics g = image.getGraphics();
    //Graphics类的样式
    g.setColor(this.getColor(200, 250));
    g.setFont(new Font("Times New Roman", 0, 28));
    g.fillRect(0, 0, width, height);
    //绘制干扰线
    for (int i = 0; i < 40; i++) {
        g.setColor(this.getColor(130, 200));
        int x = random.nextInt(width);
        int y = random.nextInt(height);
        int x1 = random.nextInt(12);
        int y1 = random.nextInt(12);
        g.drawLine(x, y, x + x1, y + y1);
    }

    //绘制字符
    String strCode = "";
    for (int i = 0; i < 4; i++) {
        String rand = String.valueOf(codeSequence[random.nextInt(codeSequence.length)]);
        strCode = strCode + rand;
        g.setColor(new Color(20 + random.nextInt(110), 20 + random.nextInt(110), 20 + random.nextInt(110)));
        g.drawString(rand, 13 * i + 6, 28);
    }
    //将字符保存到session中用于前端的验证
    session.setAttribute("captcha", strCode.toLowerCase());
    g.dispose();

    ImageIO.write(image, "JPEG", response.getOutputStream());
    response.getOutputStream().flush();
}

public Color getColor(int fc, int bc) {
    Random random = new Random();
    if (fc > 255)
        fc = 255;
    if (bc > 255)
        bc = 255;
    int r = fc + random.nextInt(bc - fc);
    int g = fc + random.nextInt(bc - fc);
    int b = fc + random.nextInt(bc - fc);
    return new Color(r, g, b);
}

}



这篇关于Java项目:嘟嘟校园一卡通系统(java+JSP+Servlet+html+css+JavaScript+JQuery+Ajax+mysql)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程