package com.cb.controller;
import com.cb.domain.User;
import com.cb.mapper.UserMapper;
import com.cb.service.UserService;
import entity.PageResult;
import entity.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
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.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
/**
* 用户登录和注销Controller
*/
@Controller
public class UserController {
@RequestMapping("/toMainPage")
public String toMainPage() {
return "main";
}
//注入userService
@Autowired
private UserService userService;
@Autowired
private UserMapper userMapper;
/*
用户登录
*/
@RequestMapping("/to_login")
public String to_login() {
return "/login";
}
@RequestMapping("/login")
public String login(User user, HttpServletRequest request) {
try {
User u = userService.login(user);
/*
用户账号和密码是否查询出用户信息
是:将用户信息存入Session,并跳转到后台首页
否:Request域中添加提示信息,并转发到登录页面
*/
if (u == null) {
request.setAttribute("msg", "用户名或密码错误");
return "forward:to_login";
}
//<!--获取用户的状态--> 0:可登录 1:禁用
else if (u.getStatus() == 1) {
request.setAttribute("msg", "账号异常,请联系管理员");
return "forward:to_login";
} else {
request.getSession().setAttribute("USER_SESSION", u);
return "redirect:/admin/main.jsp";
}
} catch (Exception e) {
e.printStackTrace();
request.setAttribute("msg", "系统错误");
return "forward:to_login";
}
}
/*
注销登录
*/
@RequestMapping("/logout")
public String logout(HttpServletRequest request) {
try {
HttpSession session = request.getSession();
//销毁Session
session.invalidate();
return "forward:to_login";
} catch (Exception e) {
e.printStackTrace();
request.setAttribute("msg", "系统错误");
return "forward:to_login";
}
}
/*
注册功能
*/
@RequestMapping("/to_register")
public String to_register() {
return "/register";
}
@RequestMapping("/register")
public String register(User user, HttpServletRequest request,
@RequestParam("name") String name,
@RequestParam("password") String password,
@RequestParam("password2") String password2,
@RequestParam("email") String email,
Model model) {
User u = new User();
u.setName(name);
u.setPassword(password);
u.setPassword2(password2);
u.setEmail(email);
u.setRole("USER");
u.setStatus(0);
//验证用户名
if (u.getName() == "") {
model.addAttribute("msg", "用户名不能为空!");
return "forward:to_register";
}
//验证邮箱
else if (u.getEmail() == "") {
model.addAttribute("msg", "邮箱不能为空!");
return "forward:to_register";
}
//验证密码是否为空
else if (u.getPassword() == "") {
model.addAttribute("msg", "密码不能为空!");
return "forward:to_register";
}
//验证邮箱地址
else if (!u.getEmail().matches
("^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$")) {
model.addAttribute("msg", "邮箱格式填写不正确!");
return "forward:to_register";
}
//验证邮箱是否已被注册
else if (userMapper.findUserByEmail(email) != null) {
model.addAttribute("msg", "该邮箱已被注册,请登录!");
return "forward:to_register";
}
else if (!u.getPassword().equals(u.getPassword2()) ) {
model.addAttribute("msg","两次输入的密码不一致!");
return "forward:to_register";
}
//通过验证
else {
try {
//进行注册操作,把信息插入数据库
userService.register(u);
User user1 = userService.login(user);
if (user1 != null) {
return "forward:to_login";
} else {
request.setAttribute("msg", "注册失败!");
return "forward:to_register";
}
} catch (Exception e) {
e.printStackTrace();
request.setAttribute("msg", "系统错误");
return "forward:to_register";
}
}
}
/**
* 分页查询所有用户信息
*
* @param user 查询的条件封装到user中
* @param pageNum 数据列表的当前页码
* @param pageSize 数据列表1页展示多少条数据
*/
@RequestMapping("/users")
public ModelAndView searchUser(User user, Integer pageNum, Integer pageSize, HttpServletRequest request) {
if (pageNum == null) {
pageNum = 1;
}
if (pageSize == null) {
pageSize = 10;
}
//查询到的图书信息
PageResult pageResult = userService.findAll(user, pageNum, pageSize);
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("user");
//将查询到的数据存放在 ModelAndView的对象中
modelAndView.addObject("pageResult", pageResult);
//将查询的参数返回到页面,用于回显到查询的输入框中
modelAndView.addObject("search", user);
//将当前页码返回到页面,用于分页插件的分页显示
modelAndView.addObject("pageNum", pageNum);
//将当前查询的控制器路径返回到页面,页码变化时继续向该路径发送请求
modelAndView.addObject("gourl", request.getRequestURI());
return modelAndView;
}
/*
新增用户
*/
@ResponseBody
@RequestMapping("/addUser")
public Result addUser(User user,HttpServletRequest request,
@RequestParam("password") String password,
@RequestParam("password2") String password2,
@RequestParam("email") String email) {
User u = new User();
u.setPassword(password);
u.setPassword2(password2);
u.setEmail(email);
if (!u.getPassword().equals(u.getPassword2()) ) {
return new Result(false, "两次输入密码不一致,新增用户失败!");
}
else if(!u.getEmail().matches(
("^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$")))
{
return new Result(false, "邮箱格式错误,新增用户失败!");
}
else {
try {
Integer count = userService.addUser(user);
if (count != 1) {
return new Result(false, "新增用户失败!");
}
return new Result(true, "新增用户成功!");
} catch (Exception e) {
e.printStackTrace();
return new Result(false, "系统错误,新增用户失败!");
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于SSM框架的云借阅图书管理系统源码+数据库.zip已获导师指导并通过的高分项目 基于SSM框架的云借阅图书管理系统源码+数据库.zip已获导师指导并通过的高分项目 基于SSM框架编写云借阅图书管理系统主要实现了两大功能模块:用户登录模块和图书管理模块,用户登录模块主要用于实现用户的登录与注销;图书管理模块主要用于管理图书,如新书推荐、图书借阅等。 数据库设计: 云借阅图书管理系统中主要包括用户登录和图书管理两大模块,用户登录模块会用到用户表,图书管理模块会用到图书信息表。除此之外,在图书管理模块中,每次图书借阅完成后,系统会记录图书借阅情况,因此,图书管理模块还需要一个借阅记录表。 基于SSM框架的云借阅图书管理系统源码+数据库.zip已获导师指导并通过的高分项目 基于SSM框架的云借阅图书管理系统源码+数据库.zip已获导师指导并通过的高分项目 基于SSM框架编写云借阅图书管理系统主要实现了两大功能模块:用户登录模块和图书管理模块,用户登录模块主要用于实现用户的登录与注销;图书管理模块主要用于管理图书,如新书推荐、图书借阅等。 数据库设计: 云借阅图书管理系统
资源推荐
资源详情
资源评论

















收起资源包目录





































































































共 206 条
- 1
- 2
- 3
资源评论

- 天下第一好2102022-12-24感谢资源主的分享,很值得参考学习,资源价值较高,支持!
- 2301_783102902025-05-29资源很好用,有较大的参考价值,资源不错,支持一下。

程序员张小妍
- 粉丝: 2w+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 学生工作页-plc四层电梯编程与调试.doc
- 学习机械设计制造及其自动化专业的好处.doc
- 学习网络课程-如何提高效率?.doc
- 延迟容忍网络的路由.ppt
- 异步电机矢量控制Matlab仿真实验.doc
- 怎样计算服务器虚拟化硬件配置.doc
- 怎么制作Authorware自定义按钮.doc
- 怎样在PP在PPT中嵌入Excel分析图表的呢.doc
- 知识管理与电子商务.ppt
- 第3章--通用财务软件的选择与应用过程-3.1--通用财务软件的选择.ppt
- 第3章算法和基本程序设计.ppt
- 第4章-数控铣床与加工中心编程.ppt
- 第5章软件工程.ppt
- 第5章--Photoshop-CS2基础知识调整色彩.ppt
- 第5课《计算机中数的表示》任务练习.doc
- 第6章--软件项目设计阶段的知识与管理.ppt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
