基于javaweb的健身房管理系统(java+html+bootstrap+servlet+echarts+mysql)
基于javaweb的健身房管理系统(java+html+bootstrap+servlet+echarts+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的健身房管理系统(java+HTML+bootstrap+servlet+echarts+Mysql)
项目介绍
角色:管理员、吧台、前台、收银员、店长,可动态添加
功能如下:权限管理 商品管理 会员管理 消费收银 统计 权限管理 商品列表 商品增加 商品分类 会员登记 会员列表 会员充值 会员刷卡 商品消费 消费订单 充值统计 销售统计 会员增长趋势 员工管理 职位管理 员工列表
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本; 6.是否Maven项目: 否;
技术栈
- 后端:servlet 2. 前端:HTML+css+javacript+bootstrap+jQuery+echarts
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中db.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入http://localhost:8080/ 登录
管理员登录代码如下:
/**
@Descriiption: 管理员登录Controller控制层
xiaoc
@Date: 2020/4/4
*/
@Controller
@RequestMapping(“/”)
public class AdminuserConntroller {
@Autowired
private AdminuserDao adminuserDao;
/**
@Descriiption: 输入端口号直接跳转登录界面
xiaoc
@Date: 2020/4/29
*/
@RequestMapping(“/”)
public String beforeLogin(){
return “login”;
/**
@Descriiption: 管理员登录验证方法
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” ;
model.addAttribute(“mag”,“账号或密码错误”);
return “login”;*/
/**
@Descriiption: 退出登录后清楚session
xiaoc
@Date: 2020/5/1
*/
@RequestMapping(“/logout”)
public String logout(){
Subject subject = SecurityUtils.getSubject();
subject.logout();
return “redirect:/login”;
/**
@Descriiption: 跳转到修改密码界面
xiaoc
@Date: 2020/5/1
*/
@RequestMapping(“/updPassword”)
public String updPassword(){
return “WEB-INF/jsp/updPassword”;
/**
@Descriiption: 修改密码
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”;
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”;
密码加密方式:
@Configuration
public class ShiroConfig {
/**
密码校验规则HashedCredentialsMatcher
这个类是为了对密码进行编码的 ,
防止密码在数据库里明码保存 , 当然在登陆认证的时候 ,
这个类也负责对form里输入的密码进行编码
处理认证匹配处理器:如果自定义需要实现继承HashedCredentialsMatcher
*/
// @Bean(“hashedCredentialsMatcher”)
// public HashedCredentialsMatcher getHashedCredentialsMatcher() {
// HashedCredentialsMatcher credentialsMatcher = new HashedCredentialsMatcher();
// //指定加密方式为MD5
// credentialsMatcher.setHashAlgorithmName(“MD5”);
// //加密次数
// credentialsMatcher.setHashIterations(1024);
// credentialsMatcher.setStoredCredentialsHexEncoded(true);
// return credentialsMatcher;
// }
@Bean
public MyRealm getMyRealm(){
MyRealm myRealm = new MyRealm() ;
// myRealm.setCredentialsMatcher(getHashedCredentialsMatcher());
return myRealm ;
@Bean
public SimpleCookie rememberMeCookie() {
//System.out.println(“ShiroConfiguration.rememberMeCookie()”);
//这个参数是cookie的名称,对应前端的checkbox的name = rememberMe
SimpleCookie simpleCookie = new SimpleCookie(“ckbox”);
//
simpleCookie.setMaxAge(259200);
return simpleCookie;
@Bean
public EhCacheManager getEhCacheManager(){
EhCacheManager ehCacheManager = new EhCacheManager() ;
ehCacheManager.setCacheManagerConfigFile(“classpath:ehcache-shiro.xml”);
return ehCacheManager ;
@Bean
public 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;
@Bean
public DefaultWebSecurityManager getDefaultWebSecurityManager(){
DefaultWebSecurityManager defaultWebSecurityManager = new DefaultWebSecurityManager() ;
defaultWebSecurityManager.setRealm(getMyRealm());
//注册记住我
defaultWebSecurityManager.setRememberMeManager(rememberMeManager());
//注册缓存
defaultWebSecurityManager.setCacheManager(getEhCacheManager());
return defaultWebSecurityManager ;
@Bean
public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(){
System.out.println(“开启了Shiro注解支持”);
AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor();
authorizationAttributeSourceAdvisor.setSecurityManager(getDefaultWebSecurityManager());
return authorizationAttributeSourceAdvisor;
@Bean
@ConditionalOnMissingBean
public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() {
DefaultAdvisorAutoProxyCreator defaultAAP = new DefaultAdvisorAutoProxyCreator();
defaultAAP.setProxyTargetClass(true);
return defaultAAP;
@Bean
public ShiroFilterFactoryBean getShiroFilterFactoryBean(){
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean() ;
//设置网页安全管理器
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
private IUserService userService;
@ResponseBody
@RequestMapping(“/login”)
public String toIndex(User user,HttpSession session){
String account=user.getAccount();
user=userService.userLogin(user.getAccount(),user.getPwd());
if(user!=null){
List<Map<String,Object>> list = userService.findUserByAccount(account);
session.setAttribute(“userInfo”, JSON.toJSON(list));
session.setAttribute(“account”, account);
return “true”;
else{
return “false”;
@RequestMapping(“/Forward”)
public String loginForward(){
return “user/index”;
@RequestMapping(“/exit”)
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”;
@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”)
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”;
加粗样式
基于javaweb的健身房管理系统(java+html+bootstrap+servlet+echarts+mysql)相关推荐
- 基于javaweb的汽车维修管理系统(java+ssm+jsp+easyui+echarts+mysql)
基于javaweb的汽车维修管理系统(java+ssm+jsp+easyui+echarts+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/id ...
- 基于javaweb的养老院管理系统(java+ssm+bootstrap+jsp+mysql)
基于javaweb的养老院管理系统(java+ssm+bootstrap+jsp+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/mye ...
- 基于javaweb的出租车管理系统(java+ssm+html+javascript+jsp+mysql)
基于javaweb的出租车管理系统(java+ssm+html+javascript+jsp+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/id ...
- 基于javaweb的人事管理系统(java+ssm+ligerui+metronic+jsp+mysql)
基于javaweb的人事管理系统(java+ssm+ligerui+metronic+jsp+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/id ...
- 基于javaweb的物流快递管理系统(java+ssm+html+js+jsp+mysql)
基于javaweb的物流快递管理系统(java+ssm+html+js+jsp+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myec ...
- 基于javaweb的日记系统(java+jsp+bootstrap+servlet+mysql)
基于javaweb的日记系统(java+jsp+bootstrap+servlet+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/my ...
- 基于javaweb的新闻管理系统(java+ssm+html+js+jsp+mysql)
基于javaweb的新闻管理系统(java+ssm+html+js+jsp+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myecli ...
- 基于javaweb的图书管理系统(java+jsp+layui+bootstrap+servlet+mysql)
基于javaweb的图书管理系统(java+jsp+layui+bootstrap+servlet+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse ...
- 基于javaweb的宠物店管理系统(java+jsp+javascript+bootstrap+mysql)
基于javaweb的宠物店管理系统(java+jsp+javascript+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/i ...
最新文章
- 《iPhone与iPad开发实战—iOS经典应用剖析》连载二
- PDF与doc格式互换
- 【Java学习】多线程2
- akka actor java_Akka:使用非默认构造函数在Scala中定义一个actor并从Java代码创建它 - java...
- 基于bootstrap_登陆页面
- Android中保存网络图片到SD卡
- android安卓字体下载,安卓Android简中综艺手机字体
- linux comd skill
- vtiger 安装中文语言包(汉化的步骤)--拓展繁体中文
- 多边形的凹凸性判断及python实现
- Oracle备份与恢复-误删数据文件恢复(非归档模式)
- python支付宝自动转账_如何使用python实现支付宝转账接口
- 2022树莓派安装甜糖 步骤分享
- superset 完全汉化
- python 智能识别 商品_python人工智能-图像识别
- 我的世界java版1.7.10咋刷物品,我的世界1.7.10刷物品mod
- ngrok私有服务搭建(docker交叉编译)
- 苹果店里卖移动套餐,走出甲方思维
- 3DMAX入门教程,这样还担心学不会?
- Java零基础学习全套视频笔记