办公车辆管理系统的实现(内附项目源码)

1. 一个简单的SpringBoot项目实现

  • 目前的功能大概有这些
    在这里插入图片描述
  • 小组校内实习,分工合作完成,项目结构如下(内附sql文件,红色波浪线请自动忽略,装一个lombok插件就好了)
    在这里插入图片描述

2.后台主要代码展示

  • 登录过滤实现,阻止未登录越权访问
@Component
@WebFilter(filterName = "LoginFilter",urlPatterns = "/*")
@Order(1)  //Order(1)在定义多个Filter时,用于决定执行顺序的,数字越小,越先执行。
public class LoginFilter implements Filter {
    private static final String [] ALLOWEDPATH = {"/login","/register",".ico",".js",".css",".jpg",".png","/fonts/"};
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
      // 这样在每个Servlet执行的时候都会先进行这个
        HttpServletRequest request= (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        if(needLogin(request)) {
            // 需要登录则跳转到登录Controller
            String userName = (String)((HttpServletRequest) request).getSession().getAttribute("username");
            System.out.println(userName);
            if(Optional.ofNullable(userName).map(String::length).orElse(0) <= 0){
                //response.sendRedirect("login.html");
                response.sendRedirect(request.getContextPath()+"/login.html");
                //throw new ZcException(ExceptionEnums.NOT_LOGGED_IN);
            }
            filterChain.doFilter(servletRequest, servletResponse);
            return;
        }else{
        }
        //因为有可能不止这一个过滤器,所以需要将所有的过滤器执行
        filterChain.doFilter(servletRequest, servletResponse);
    }

    @Override
    public void destroy() {

    }

    private boolean needLogin(HttpServletRequest request) {
        //进行是否需要登录的判断操作
        String path = request.getRequestURI().substring(request.getContextPath().length()).replaceAll("[/]+$", "");
        System.out.println(path);
        boolean allowedPath = false;
        for (String url : ALLOWEDPATH) {
            if(path.contains(url)){
                allowedPath = true;
                break;
            }
        }
        return !allowedPath;
    }
}

  • 配置切面异常处理,枚举异常,异常结果封装(advice、enums、exception、vo)
    在这里插入图片描述
@ControllerAdvice
public class CommonExceptionHandler {

    @ExceptionHandler(ZcException.class)
    public ResponseEntity<ExceptionResult> handleException(ZcException e){
        return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ExceptionResult(e.getExceptionEnums()));
    }
}
@AllArgsConstructor
public enum  ExceptionEnums {

    UNIMPLEMENTED(1, "Not yet implemented."),
    UNEXPECTED(2, "Unexpected error."),
    REGISTER_FAILED(3, "Register failed."),
    FORMAT_CORRUPTED(4, "Format corrupted."),
    NOT_FOUND(5, "Not found."),
    INCORRECT_STATE(6, "Incorrect state."),
    RESTRICTED(7, "Operation is not allowed."),
    CANCELLED(8, "Ope
  • 2
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
超级管理员账号:admin 密码:www.shop008.com 联 系 人:QQ 14572054   诚一智能办公管理系统主菜单功能: 我的办公桌 公共事务 个人办公 销售管理 合同管理 公文管理 人力资 信息交流 件程序 系统设置 注销退出   1、COOKIES、SESSION二种记录用户资料方式,使不支持COOKIESE的浏览器自动选择SESSION方式记录用户资料 2、免费、开,非凡的访问速度和强大的负载能力。诚一网络办公系统一直坚持免费+开的策略,依靠优质的服务,采用国际通用的项目管理方法,模块化、高效统一的内核编写模式。 3、周密的安全部署和攻击防护。独创的用户登录机制保持用户不同地点的安全登录,对各种不同浏览方式的识别并给予不同的安全防护和处理,对全局运行日志的把握和管理让您随时掌握论坛的运行情况。 4、无需独立服务器,有个虚拟空间就可以快速建立企业信息中枢 5、客户端无需安装专用软件,使用浏览器即可实现全球办公 6、支持部门/成员单位模式,全面面向企事业单位应用 7、方便挂接外部的B/S系统,具有良好的扩展性 8、集成WEBSMS即时通讯工具,实现类似企业QQ的即时通讯 9、集成Internet邮件管理组件,提供 web方式的远程邮件服务 10、集成网络硬盘组件,提供便捷的局域网、广域网文件共享方案 11、集成商业管理组件,轻松的管理客户、供应商资料和产品销售记录 12、集成内部邮件、即时短信、文件柜、聊天室、论坛等模块,提供企业内部信息交流的多种方式 13、集成考勤管理、员工日程安排查询、员工工作日志查询、会议管理车辆管理等模块,提供企业管理者全新的管理工具

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值