基于javaweb+springboot的健身房管理系统(Java+ssm+springboot)

主要技术:springmvc、 springboot 、mybatis、mysql 、jQuery、layui、css、jsp shiro权限控制

主要功能截图如下:
用户登录、首页主要功能有:会员信息管理、会员到期续费管理、充值管理、教练课程管理、私教管理、器材管理、小商品售卖管理、信息统计、修改密码等主要功能:

















适用

课程设计,大作业,毕业设计,项目练习,学习演示等

        return "login";}/*** @Description: 管理员登录验证方法* xiaoc* @Date: 2020/4/4*/@RequestMapping("/dl/yz")public String login(String username, String password,HttpSession httpSession,Model model){Subject subject= SecurityUtils.getSubject();UsernamePasswordToken userToken=new UsernamePasswordToken(username,DigestUtils.md5Hex(password));try{subject.login(userToken);Adminuser a= adminuserDao.findByAdminNameAndAdminPassword(username,DigestUtils.md5Hex(password));httpSession.setAttribute("user",a);return "WEB-INF/jsp/index";}catch (UnknownAccountException e){
    @RequestMapping("/logout")public String logout(){Subject subject = SecurityUtils.getSubject();subject.logout();return "redirect:/login";}/*** @Description: 跳转到修改密码界面* xiaoc* @Date: 2020/5/1*/@RequestMapping("/updPassword")
    }@Beanpublic EhCacheManager getEhCacheManager(){EhCacheManager ehCacheManager = new EhCacheManager() ;ehCacheManager.setCacheManagerConfigFile("classpath:ehcache-shiro.xml");return ehCacheManager ;}@Beanpublic CookieRememberMeManager rememberMeManager() {//System.out.println("ShiroConfiguration.rememberMeManager()");CookieRememberMeManager cookieRememberMeManager = new CookieRememberMeManager();cookieRememberMeManager.setCookie(rememberMeCookie());//rememberMe cookie加密的密钥 建议每个项目都不一样 默认AES算法 密钥长度(128 256 512 位)//  cookieRememberMeManager.setCipherKey(Base64.decode("2AvVhdsgUs0FSA3SDFAdag=="));return cookieRememberMeManager;}@Beanpublic DefaultWebSecurityManager getDefaultWebSecurityManager(){DefaultWebSecurityManager defaultWebSecurityManager = new DefaultWebSecurityManager() ;defaultWebSecurityManager.setRealm(getMyRealm());//注册记住我defaultWebSecurityManager.setRememberMeManager(rememberMeManager());//注册缓存
}
用户管理控制层:
@Controller
@RequestMapping("/user")
public class UserController {@Resource  private IUserService userService;  @ResponseBody@RequestMapping("/login")  public String toIndex(User user,HttpSession session){
        CookieRememberMeManager cookieRememberMeManager = new CookieRememberMeManager();cookieRememberMeManager.setCookie(rememberMeCookie());//rememberMe cookie加密的密钥 建议每个项目都不一样 默认AES算法 密钥长度(128 256 512 位)//  cookieRememberMeManager.setCipherKey(Base64.decode("2AvVhdsgUs0FSA3SDFAdag=="));return cookieRememberMeManager;}@Beanpublic DefaultWebSecurityManager getDefaultWebSecurityManager(){DefaultWebSecurityManager defaultWebSecurityManager = new DefaultWebSecurityManager() ;defaultWebSecurityManager.setRealm(getMyRealm());//注册记住我defaultWebSecurityManager.setRememberMeManager(rememberMeManager());//注册缓存defaultWebSecurityManager.setCacheManager(getEhCacheManager());return defaultWebSecurityManager ;
    /*** @Description: 跳转到修改密码界面* xiaoc* @Date: 2020/5/1*/@RequestMapping("/updPassword")public String updPassword(){return "WEB-INF/jsp/updPassword";}/*** @Description: 修改密码* xiaoc* @Date: 2020/5/1
        UsernamePasswordToken userToken=new UsernamePasswordToken(username,DigestUtils.md5Hex(password));try{subject.login(userToken);Adminuser a= adminuserDao.findByAdminNameAndAdminPassword(username,DigestUtils.md5Hex(password));httpSession.setAttribute("user",a);return "WEB-INF/jsp/index";}catch (UnknownAccountException e){model.addAttribute("msg","用户名或密码错误,请重新输入");return "login";}/*Adminuser a= adminuserDao.findByAdminNameAndAdminmima(username,password);if(a!=null){httpSession.setAttribute("user",a);return "WEB-INF/jsp/index" ;}model.addAttribute("mag","账号或密码错误");return "login";*/}/**
        defaultWebSecurityManager.setRealm(getMyRealm());//注册记住我defaultWebSecurityManager.setRememberMeManager(rememberMeManager());//注册缓存defaultWebSecurityManager.setCacheManager(getEhCacheManager());return defaultWebSecurityManager ;}@Beanpublic AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(){System.out.println("开启了Shiro注解支持");AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor();authorizationAttributeSourceAdvisor.setSecurityManager(getDefaultWebSecurityManager());return authorizationAttributeSourceAdvisor;}@Bean@ConditionalOnMissingBeanpublic DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() {
        //设置网页安全管理器shiroFilterFactoryBean.setSecurityManager(getDefaultWebSecurityManager());Map<String,String> map = new LinkedHashMap<String,String>() ;//定义可以直接访问的资源map.put("/login.jsp","anon") ;map.put("/vcode.jsp","anon");map.put("/dl/yz","anon") ;map.put("/static/**","anon") ;//取消认证map.put("/logout","logout") ;
        if(!newPassword.equals(newPasswordAgain)){model.addAttribute("msg","两次输入新密码不一致,请重新输入");return "WEB-INF/jsp/updPassword";}Adminuser adminuser=(Adminuser) httpSession.getAttribute("user");if(null != adminuser){if(!adminuser.getAdminPassword().equals(DigestUtils.md5Hex(oldPassword))){model.addAttribute("msg","原密码不正确,请重新输入");return "WEB-INF/jsp/updPassword";}adminuserDao.updPassword(adminuser.getAdminId(), DigestUtils.md5Hex(newPassword));}Subject subject = SecurityUtils.getSubject();subject.logout();return "redirect:/login.jsp";}
}
密码加密方式:
    public String exit(HttpSession session){  session.invalidate();return "login";}  @RequestMapping("/myInfo")  public String myInfo(HttpSession session){  String account=(String) session.getAttribute("account");List<Map<String,Object>> list = userService.findUserByAccount(account);session.setAttribute("userInfo", JSON.toJSON(list));return "user/index";}
        System.out.println("开启了Shiro注解支持");AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor();authorizationAttributeSourceAdvisor.setSecurityManager(getDefaultWebSecurityManager());return authorizationAttributeSourceAdvisor;}@Bean@ConditionalOnMissingBeanpublic DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() {DefaultAdvisorAutoProxyCreator defaultAAP = new DefaultAdvisorAutoProxyCreator();defaultAAP.setProxyTargetClass(true);return defaultAAP;}@Beanpublic ShiroFilterFactoryBean getShiroFilterFactoryBean(){ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean() ;//设置网页安全管理器shiroFilterFactoryBean.setSecurityManager(getDefaultWebSecurityManager());Map<String,String> map = new LinkedHashMap<String,String>() ;//定义可以直接访问的资源
     return "true";}
}
管理员登录代码如下:
/*** @Description: 管理员登录Controller控制层* xiaoc* @Date: 2020/4/4*/
@Controller
@RequestMapping("/")
public class AdminuserConntroller {@Autowiredprivate AdminuserDao adminuserDao;/*** @Description: 输入端口号直接跳转登录界面
        SimpleCookie simpleCookie = new SimpleCookie("ckbox");//<!-- 记住我cookie生效时间30天 ,单位秒;-->simpleCookie.setMaxAge(259200);return simpleCookie;}@Beanpublic EhCacheManager getEhCacheManager(){EhCacheManager ehCacheManager = new EhCacheManager() ;ehCacheManager.setCacheManagerConfigFile("classpath:ehcache-shiro.xml");return ehCacheManager ;}@Beanpublic CookieRememberMeManager rememberMeManager() {//System.out.println("ShiroConfiguration.rememberMeManager()");CookieRememberMeManager cookieRememberMeManager = new CookieRememberMeManager();cookieRememberMeManager.setCookie(rememberMeCookie());//rememberMe cookie加密的密钥 建议每个项目都不一样 默认AES算法 密钥长度(128 256 512 位)//  cookieRememberMeManager.setCipherKey(Base64.decode("2AvVhdsgUs0FSA3SDFAdag=="));return cookieRememberMeManager;}@Beanpublic DefaultWebSecurityManager getDefaultWebSecurityManager(){
    //    }@Beanpublic MyRealm getMyRealm(){MyRealm myRealm = new MyRealm() ;//        myRealm.setCredentialsMatcher(getHashedCredentialsMatcher());return myRealm ;}@Beanpublic SimpleCookie rememberMeCookie() {//System.out.println("ShiroConfiguration.rememberMeCookie()");//这个参数是cookie的名称,对应前端的checkbox的name = rememberMeSimpleCookie simpleCookie = new SimpleCookie("ckbox");
用户管理控制层:
@Controller
@RequestMapping("/user")
public class UserController {@Resource  private IUserService userService;  @ResponseBody@RequestMapping("/login")  public String toIndex(User user,HttpSession session){  String account=user.getAccount();user=userService.userLogin(user.getAccount(),user.getPwd());
    /*** @Description: 管理员登录验证方法* xiaoc* @Date: 2020/4/4*/@RequestMapping("/dl/yz")public String login(String username, String password,HttpSession httpSession,Model model){Subject subject= SecurityUtils.getSubject();UsernamePasswordToken userToken=new UsernamePasswordToken(username,DigestUtils.md5Hex(password));try{subject.login(userToken);Adminuser a= adminuserDao.findByAdminNameAndAdminPassword(username,DigestUtils.md5Hex(password));httpSession.setAttribute("user",a);return "WEB-INF/jsp/index";}catch (UnknownAccountException e){model.addAttribute("msg","用户名或密码错误,请重新输入");return "login";}/*Adminuser a= adminuserDao.findByAdminNameAndAdminmima(username,password);if(a!=null){httpSession.setAttribute("user",a);return "WEB-INF/jsp/index" ;
        //设置网页安全管理器shiroFilterFactoryBean.setSecurityManager(getDefaultWebSecurityManager());Map<String,String> map = new LinkedHashMap<String,String>() ;//定义可以直接访问的资源map.put("/login.jsp","anon") ;map.put("/vcode.jsp","anon");map.put("/dl/yz","anon") ;map.put("/static/**","anon") ;//取消认证map.put("/logout","logout") ;////  map.put("/add.jsp","perms[user:*]") ;map.put("/**","user") ;shiroFilterFactoryBean.setFilterChainDefinitionMap(map);shiroFilterFactoryBean.setLoginUrl("/login.jsp");shiroFilterFactoryBean.setUnauthorizedUrl("/unauth.jsp");return shiroFilterFactoryBean ;}
}
用户管理控制层:
@Controller
@RequestMapping("/user")
public class UserController {@Resource
            model.addAttribute("msg","两次输入新密码不一致,请重新输入");return "WEB-INF/jsp/updPassword";}Adminuser adminuser=(Adminuser) httpSession.getAttribute("user");if(null != adminuser){if(!adminuser.getAdminPassword().equals(DigestUtils.md5Hex(oldPassword))){model.addAttribute("msg","原密码不正确,请重新输入");return "WEB-INF/jsp/updPassword";}adminuserDao.updPassword(adminuser.getAdminId(), DigestUtils.md5Hex(newPassword));}Subject subject = SecurityUtils.getSubject();subject.logout();return "redirect:/login.jsp";}
     * @Date: 2020/5/1*/@RequestMapping("/updPassword")public String updPassword(){return "WEB-INF/jsp/updPassword";}/*** @Description: 修改密码* xiaoc* @Date: 2020/5/1*/@RequestMapping("/upd/updPassword")public String updPasswordConfirm(String oldPassword,String newPassword,String newPasswordAgain,HttpSession httpSession,Model model){Pattern p = Pattern.compile("^(?=.*[A-Za-z])(?=.*\\d)(?=.*[$@$!.%*#?&])[A-Za-z\\d$@$!.%*#?&]{8,}$");Matcher m = p.matcher(newPassword);if(!m.matches()){model.addAttribute("msg","新密码最少为8位并为字母+数字+特殊字符");return "WEB-INF/jsp/updPassword";
    public EhCacheManager getEhCacheManager(){EhCacheManager ehCacheManager = new EhCacheManager() ;ehCacheManager.setCacheManagerConfigFile("classpath:ehcache-shiro.xml");return ehCacheManager ;}@Beanpublic CookieRememberMeManager rememberMeManager() {//System.out.println("ShiroConfiguration.rememberMeManager()");CookieRememberMeManager cookieRememberMeManager = new CookieRememberMeManager();cookieRememberMeManager.setCookie(rememberMeCookie());//rememberMe cookie加密的密钥 建议每个项目都不一样 默认AES算法 密钥长度(128 256 512 位)//  cookieRememberMeManager.setCipherKey(Base64.decode("2AvVhdsgUs0FSA3SDFAdag=="));return cookieRememberMeManager;}
    public String exit(HttpSession session){  session.invalidate();return "login";}  @RequestMapping("/myInfo")  public String myInfo(HttpSession session){  String account=(String) session.getAttribute("account");List<Map<String,Object>> list = userService.findUserByAccount(account);session.setAttribute("userInfo", JSON.toJSON(list));return "user/index";}  @RequestMapping("/classTable")  public String classTable(HttpSession session){  List<Map<String,Object>> list = userService.findClass();session.setAttribute("classInfo", JSON.toJSON(list));return "user/classTable";}
    //    }@Beanpublic MyRealm getMyRealm(){MyRealm myRealm = new MyRealm() ;//        myRealm.setCredentialsMatcher(getHashedCredentialsMatcher());return myRealm ;}@Beanpublic SimpleCookie rememberMeCookie() {//System.out.println("ShiroConfiguration.rememberMeCookie()");//这个参数是cookie的名称,对应前端的checkbox的name = rememberMeSimpleCookie simpleCookie = new SimpleCookie("ckbox");//<!-- 记住我cookie生效时间30天 ,单位秒;-->simpleCookie.setMaxAge(259200);return simpleCookie;}@Beanpublic EhCacheManager getEhCacheManager(){EhCacheManager ehCacheManager = new EhCacheManager() ;ehCacheManager.setCacheManagerConfigFile("classpath:ehcache-shiro.xml");return ehCacheManager ;}@Beanpublic CookieRememberMeManager rememberMeManager() {
            return "login";}/*Adminuser a= adminuserDao.findByAdminNameAndAdminmima(username,password);if(a!=null){httpSession.setAttribute("user",a);return "WEB-INF/jsp/index" ;}model.addAttribute("mag","账号或密码错误");return "login";*/}/*** @Description: 退出登录后清楚session* xiaoc* @Date: 2020/5/1*/@RequestMapping("/logout")public String logout(){Subject subject = SecurityUtils.getSubject();subject.logout();return "redirect:/login";}/**
     userService.chooseTeach(id,cid,uid);return "true";}  @ResponseBody@RequestMapping("/updateUserInfo")  public String updateUserInfo(Integer id,String account,Integer sex,Integer age,String name,String pwd,String tel,String address){  userService.updateUserInfo(id,account,sex,age,name,pwd,tel,address);return "true";}
}
管理员登录代码如下:
                model.addAttribute("msg","原密码不正确,请重新输入");return "WEB-INF/jsp/updPassword";}adminuserDao.updPassword(adminuser.getAdminId(), DigestUtils.md5Hex(newPassword));}Subject subject = SecurityUtils.getSubject();subject.logout();return "redirect:/login.jsp";}
}
密码加密方式:
    @RequestMapping("/teachList")  public String teachList(HttpSession session){  return "user/teachList";}  @ResponseBody@RequestMapping("/selectTeach")  public String selectTeach(HttpSession session,Integer id){  List<Map<String,Object>> list = userService.findSeTeach(id);session.setAttribute("SelectTeachInfo", JSON.toJSON(list));return "true";}  @ResponseBody@RequestMapping("/chooseTeach")  public String chooseTeach(Integer id,Integer cid,Integer uid){  userService.chooseTeach(id,cid,uid);return "true";}  @ResponseBody@RequestMapping("/updateUserInfo")
            return "WEB-INF/jsp/updPassword";}Adminuser adminuser=(Adminuser) httpSession.getAttribute("user");if(null != adminuser){if(!adminuser.getAdminPassword().equals(DigestUtils.md5Hex(oldPassword))){model.addAttribute("msg","原密码不正确,请重新输入");return "WEB-INF/jsp/updPassword";}adminuserDao.updPassword(adminuser.getAdminId(), DigestUtils.md5Hex(newPassword));}Subject subject = SecurityUtils.getSubject();subject.logout();return "redirect:/login.jsp";

基于javaweb+springboot的健身房管理系统(Java+ssm+springboot)相关推荐

  1. 基于javaweb+mysql的健身管理系统(java+ssm+springboot)

    基于javaweb+mysql的健身管理系统(java+ssm+springboot) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/myeclipse/sts等均可 ...

  2. 基于javaweb的在线健身房管理系统(java+springboot+jsp+html+mysql)

    基于javaweb的在线健身房管理系统(java+springboot+jsp+html+mysql) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/myeclips ...

  3. 基于javaweb+springboot的健身管理系统(Java+ssm+springboot)

    基于javaweb+springboot的健身管理系统(Java+ssm+springboot) 主要技术:springmvc. springboot .mybatis.mysql .jQuery.l ...

  4. 基于javaweb+jsp的健身俱乐部管理系统(java+SSM+Mysql+Jsp)

    基于javaweb+jsp的健身俱乐部管理系统(java+SSM+Mysql+Jsp) 基于jsp+mysql+Spring+mybatis的SSM健身房管理系统 运行环境: jdk 1.8 IDE环 ...

  5. 基于javaweb的高校运动会管理系统(java+ssm+jsp+js+jquery+mysql)

    基于javaweb的高校运动会管理系统(java+ssm+jsp+js+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/m ...

  6. 基于javaweb的律师事务所律师管理系统(java+ssm+html+js+jsp+mysql)

    基于javaweb的律师事务所律师管理系统(java+ssm+html+js+jsp+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/m ...

  7. 基于javaweb的设备台账管理系统(java+ssm+html+jsp+js+mysql)

    基于javaweb的设备台账管理系统(java+ssm+html+jsp+js+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myec ...

  8. 基于javaweb的医药信息管理系统(java+ssm+html+easyui+mysql)

    基于javaweb的医药信息管理系统(java+ssm+html+easyui+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myec ...

  9. 基于javaweb的中药药方管理系统(java+ssm+jsp+bootstrap+mysql)

    基于javaweb的中药药方管理系统(java+ssm+jsp+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/my ...

最新文章

  1. win10家庭版gpedit.msc无法打开本地组策略
  2. MyEclipse的Debug功能最基本的操作
  3. 洛谷 P1008 [NOIP1998 普及组] 三连击
  4. codeforces 471B. MUH and Important Things 解题报告
  5. Contoso 大学 - 3 - 排序、过滤及分页
  6. crypto在web的使用
  7. 计算机系统保密软件,计算机系统保密检查工具
  8. 基于Qt开发的游戏手柄小程序例子
  9. 海信电视显示有设备连接服务器,海信电视屏幕上显示“智能电视系统启动中,请稍后”是什么意思?怎样处理?...
  10. 在C#中使用WIA获取扫描仪数据
  11. [Unity]利用Mesh在Unity中绘制扇形图片2
  12. ARM Neon 编程笔记一(ARM NEON Intrinsics, SIMD运算, 优化心得)
  13. Translatium for Mac(Google在线翻译工具)
  14. 一个逗比 程序员 web前端的理想!
  15. java cleartype_等宽雅黑宋体2.1(支持ClearType和GDI++)
  16. oracle存储过程语法和用法,oracle存储过程 语法 函数 总结
  17. 学习笔记 - 5步理解Gradle. How build execution is controlled by gradle tasks?
  18. Hijackthis浏览器劫持日志精解_网络安全日志,还我蓝色天空(转载)
  19. C语言实现循环码系统与非系统编码
  20. 老板,我想请假去旅游!

热门文章

  1. (学习总结)鸟哥基础篇第三版:第二十四章
  2. Linux中内部命令和外部命令
  3. 中国房地产数字化厂商全景报告
  4. 服务器发送邮件出现Could not connect to SMTP host错误 解决办法
  5. Excel 2010 SQL应用003修改数据源的连接路径
  6. python最最最重要的数据分析工具之pandas
  7. PHP的序列化操作生成的哪种格式,超声的两项生物学效应是
  8. linux如何使用cd命令进入目录,cd命令 – 切换目录
  9. 阅读理解机器问答系统
  10. JS章节 第一节总结知识点