Java项目:嘟嘟校园一卡通系统(java+JSP+Servlet+html+css+JavaScript+JQuery+Ajax+mysql)
Posted OldWinePot
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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<User> 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)的主要内容,如果未能解决你的问题,请参考以下文章
Java项目:嘟嘟图片展览馆管理系统(java+Springboot+SpringMVC+JPA+Jsp+maven+mysql)
Java项目:校园社团门户管理系统(java+SSM+JSP+mysql)