SpringBoot-curd3---实现登录/拦截器

**

登录:

**
代码:

@Controller
public class LoginController {
    //@RequestMapping(value = "/user/login",method = RequestMethod.POST)
//    @DeleteMapping    处理不同请求
//    @PutMapping
//    @GetMapping
    @PostMapping("/login")
    public String loginController(@RequestParam("username") String name,@RequestParam String password,Map<String,Object> map){//表明参数是从请求中获取,如果没有就会报错
        //不连接数据库,简单判断
        if(!StringUtils.isEmpty(name)&&password.equals("12345")){
            return "dashboard";   //请求转发
        }else{
            map.put("mesg","用户密码错误");
            return "index";
        }
    }
}

注意的地方:
@Controller
方法的参数,传入的参数和你要传回的参数
在页面的action 中设置数据传送的服务端,url 应该是/xx 而不能是:/xx/xxx 多级的url . 多级的url 前面会被默认为项目名。如果没有在配置文件中设置过项目名。在返回数据的时候一些在类路径下的资源就会找不到

例如:index.html th: action=@{/user/login} 如果执行完处理数据之后返回index.html 在类路径下的静态资源就找不到

开发技巧:
如何让你的模板引擎页面修改后能够实时生效:修改配置;禁用模板缓存spring.thymeleaf.cache=false;改完代码之后:ctrl+f9重新编译

登陆之后转到dashboard.html 页面使用的是请求转发,如果进行刷新表单就会重复提交;如果设置为重定向;

//在SpringMVC 的扩展配置类中,增加视图映射
 registry.addViewController("/user.html").setViewName("dashboard");//ViewName  会被thymeleaf 解析
在@Controller 中:
重定向:return “redirect:/user.html”

但是重定向,会导致只要访问的url =/user,html 用户的页面就会被访问
所以要设置拦截器,拦截不合理的访问


**

拦截器

**

进行登录检查
==要实现拦截器;实现 HandlerInterceptor

拦截器:

public class LoginHandlerInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//        return false;
        //检查session 域中是否有name
        Object user  = request.getSession().getAttribute("loginuser");
        if(user==null){
            //未登录,回到登陆页面
            //传回错误信息
            request.setAttribute("mesg","没有权限请登录");
            request.getRequestDispatcher("/index.html").forward(request,response);
            return false;
        }else {
            //已经登陆,放行
            return true;
        }
    }

将拦截器配置到SpringMVC 中:

//设置拦截器
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
//        super.addInterceptors(registry);
        //页面在访问的时候也会访问静态资源;*.css  *.js
        // 但是springBoot 已经做好了静态资源映射,所以在spring boot 中可以不用考虑
        registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**").excludePathPatterns("/","/index.html","/login");
    }

遇见一个问题:静态资源的访问会被拦截:springboot2.x 底层依赖的是spring 5 静态资源会被自定义的拦截器拦截,spring boot1.5 底层依赖的是spring 4,静态资源是不被拦截的https://blog.csdn.net/ln1593570p/article/details/80607616
解决办法:在配置文件中配置静态资源的映射,在设置拦截的时候,排除静态资源

静态资源的默认路径:/**(不用加static),设置配置文件:spring.mvc.static-path-pattern=
如果设置静态资源的访问路径没有用,那就排除对"/asserts/**"的拦截


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: avue-curd是一款基于Vue框架开发的快速开发平台,它为用户提供了一种简单易用的方式来实现预览与下载功能。要实现这两个功能,首先需要在后台管理系统中上传文件,并将文件信息存储到数据库中。 实现预览功能,可以通过引入第三方插件来完成。例如,使用Vue-pdf插件可以轻松地将PDF文件嵌入到网页中,并提供预览和打印功能。另外,使用Vue-player插件可以将音频和视频文件嵌入到网页中,也可以提供基本的控制功能,如播放、暂停和音量调节等。 实现下载功能也是比较简单的。我们可以在文件列表中为每个文件提供下载链接,这样用户只需点击链接即可下载对应的文件。另外,使用VUE中的ajax请求与后台进行交互,动态的获取可下载文件类型及位置信息。对下载的权限进行相关判断,确保文件暴露问题,同时可以加入防盗链等处理方式。 总之,avue-curd框架提供了丰富的工具和组件,可以轻松实现预览与下载功能,为用户提供更加全面和便捷的前端开发体验。 ### 回答2: avue-curd是一款前端生成页面的工具,它可以快速地生成一些常见的页面,比如CRUD(增删改查)页面。在avue-curd实现预览与下载非常简单,只需要按照以下步骤操作即可。 首先,在avue-curd中生成相应的页面,包括需要预览或下载的内容。 然后,在生成的页面中添加预览和下载的功能。预览可以使用一些常见的插件,比如PDF.js插件或者video.js插件等。下载功能可以使用一些文件下载插件,比如FileSaver.js插件。 接着,在页面中添加按钮或链接,用于触发预览或下载功能。可以使用一些常见的UI框架,比如ElementUI或者Bootstrap,来添加按钮或链接。 最后,在相应的JavaScript文件中编写预览和下载的逻辑代码。可以通过Ajax请求获取预览或下载的内容,然后使用相关的插件进行处理并展示出来。 综上所述,avue-curd实现预览与下载非常简单,只需要按照以上步骤依次操作即可。同时,开发者也可以根据自己的需求修改相应的代码,来实现更加个性化的预览与下载功能。 ### 回答3: AVUE-CURD是一款基于Vue.js框架封装的通用增删改查组件,它集成了丰富的功能模块,包括预览与下载功能。 实现预览功能可以通过引入第三方组件,例如利用VueCropper组件实现图片的裁剪和压缩,利用vue-pdf组件实现PDF文件的预览等等。我们可以在AVUE-CURD组件内部的自定义列中进行配置,添加对应的预览组件,同时需要将需要预览的数据传入该组件中进行渲染。 实现下载功能也是类似的,可以利用第三方组件或者原生javascript,将需要下载的文件的数据、文件名等信息传入下载组件中,实现文件的下载。 总之,AVUE-CURD提供了丰富的接口和配置项,开发人员可以根据自身业务需求,快速实现预览与下载功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值