当前位置: 首页 > news >正文

基于Java的民宿管理系统设计与实现(源码+lw+部署文档+讲解等)(民宿预约、民宿预订、民宿管理、酒店预约通用)

文章目录

  • 前言
  • 具体实现截图
  • 论文参考
  • 详细视频演示
  • 代码参考
  • 源码获取

前言

💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗
👇🏻 精彩专栏 推荐订阅👇🏻
2023-2024年最值得选的微信小程序毕业设计选题大全:100个热门选题推荐✅

2023-2024年最值得选的Java毕业设计选题大全:500个热门选题推荐✅

Java精品实战案例《500套》

微信小程序项目精品案例《500套》

🌟文末获取源码+数据库🌟
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

在这里插入图片描述

具体实现截图

如图5.1显示的就是用户信息管理页面,此页面提供给管理员的功能有:用户信息的查询管理,可以删除用户信息、修改用户信息、新增用户信息,
还进行了对用户名称的模糊查询的条件

在这里插入图片描述
如图5.2显示的就是民宿信息管理页面,此页面提供给管理员的功能有:查看已发布的民宿信息数据,修改民宿信息,民宿信息作废,即可删除,还进行了对民宿信息名称的模糊查询 民宿信息信息的类型查询等等一些条件。

在这里插入图片描述
如图5.3显示的就是公告类型管理页面,此页面提供给管理员的功能有:根据公告类型进行条件查询,还可以对公告类型进行新增、修改、查询操作等等。

在这里插入图片描述

论文参考

在这里插入图片描述

详细视频演示

请联系我获取更详细的演示视频

代码参考

@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {UsersEntity user = userService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));if(user==null || !user.getPassword().equals(password)) {return R.error("账号或密码不正确");}String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());return R.ok().put("token", token);
}@Overridepublic String generateToken(Long userid,String username, String tableName, String role) {TokenEntity tokenEntity = this.selectOne(new EntityWrapper<TokenEntity>().eq("userid", userid).eq("role", role));String token = CommonUtil.getRandomString(32);Calendar cal = Calendar.getInstance();   cal.setTime(new Date());   cal.add(Calendar.HOUR_OF_DAY, 1);if(tokenEntity!=null) {tokenEntity.setToken(token);tokenEntity.setExpiratedtime(cal.getTime());this.updateById(tokenEntity);} else {this.insert(new TokenEntity(userid,username, tableName, role, token, cal.getTime()));}return token;}/*** 权限(Token)验证*/
@Component
public class AuthorizationInterceptor implements HandlerInterceptor {public static final String LOGIN_TOKEN_KEY = "Token";@Autowiredprivate TokenService tokenService;@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {//支持跨域请求response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");response.setHeader("Access-Control-Max-Age", "3600");response.setHeader("Access-Control-Allow-Credentials", "true");response.setHeader("Access-Control-Allow-Headers", "x-requested-with,request-source,Token, Origin,imgType, Content-Type, cache-control,postman-token,Cookie, Accept,authorization");response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));// 跨域时会首先发送一个OPTIONS请求,这里我们给OPTIONS请求直接返回正常状态if (request.getMethod().equals(RequestMethod.OPTIONS.name())) {response.setStatus(HttpStatus.OK.value());return false;}IgnoreAuth annotation;if (handler instanceof HandlerMethod) {annotation = ((HandlerMethod) handler).getMethodAnnotation(IgnoreAuth.class);} else {return true;}//从header中获取tokenString token = request.getHeader(LOGIN_TOKEN_KEY);/*** 不需要验证权限的方法直接放过*/if(annotation!=null) {return true;}TokenEntity tokenEntity = null;if(StringUtils.isNotBlank(token)) {tokenEntity = tokenService.getTokenEntity(token);}if(tokenEntity != null) {request.getSession().setAttribute("userId", tokenEntity.getUserid());request.getSession().setAttribute("role", tokenEntity.getRole());request.getSession().setAttribute("tableName", tokenEntity.getTablename());request.getSession().setAttribute("username", tokenEntity.getUsername());return true;}PrintWriter writer = null;response.setCharacterEncoding("UTF-8");response.setContentType("application/json; charset=utf-8");try {writer = response.getWriter();writer.print(JSONObject.toJSONString(R.error(401, "请先登录")));} finally {if(writer != null){writer.close();}}
//				throw new EIException("请先登录", 401);return false;}
}

源码获取

文章下方名片联系我即可~
大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻
精彩专栏推荐订阅:在下方专栏👇🏻
Java精品实战案例《500套》
微信小程序项目精品案例《500套》

http://www.lryc.cn/news/186636.html

相关文章:

  • 039:mapboxGL更换地图上的鼠标样式
  • 【云原生】K8S对外服务之Ingress
  • 分布式锁如何实现
  • Mysql存储-EAV模式
  • 全局变量报错:\Output\STM32.axf: Error: L6218E: Undefined symbol
  • 算法错题簿(持续更新)
  • 基于Springboot实现疫情网课管理系统项目【项目源码+论文说明】
  • Linux文件与目录的增删改查
  • JVM的内存模型
  • 数据采集项目之业务数据(三)
  • vuedraggable影响点击事件的解决办法
  • Linux 中的 grep 命令
  • 阶段五-Day03-Ajax
  • EPOLL单线程版本 基于reactor 的 httpserver文件下载 支持多个客户端同时处理
  • uniapp实现微信小程序隐私协议组件封装
  • 【Node.js】NPM 和 package.json
  • 周总结【java项目】
  • 《深度不确定条件下的决策:从理论到实践》PDF
  • 【MySQL】表的基础增删改查
  • 第11章 Redis(二)
  • mybatis配置entity下不同文件夹同类型名称的多个类型时启动springboot项目出现TypeException源码分析
  • 淘宝商品评论数据分析接口,淘宝商品评论接口
  • RK3288 android7.1 修改双屏异触usb tp触摸方向
  • 软考 系统架构设计师系列知识点之软件架构风格(8)
  • ubuntu安装ssh
  • webpack不同环境下使用CSS分离插件mini-css-extract-plugin
  • [MongoDB]-权限验证管理
  • bootstrapjs开发环境搭建
  • 远程实时监控管理:5G物联网技术助力配电站管理
  • ubuntu 23.04安装中文输入法