学习笔记:黑马程序员JavaWeb开发教程(2025.4.8)
12.11 登录校验-Filter-详解(过滤器链)
过滤器链及其执行顺序,一个Filter一个过滤器链,类名排名越靠前(按照ABC这样的顺序),就先执行谁
12.12 登录校验-Filter-登录校验过滤器
获取请求参数,前面是使用的HttpServletRequest,所以直接对request和respons进行强转
判断url里面是否包含login,使用url.contains(“login”)
登陆操作之后不需要再往下执行,所以方法最后需要加一个return,如果是登录直接放行,因为是请求登录,所以会被放行到登录功能
过滤器当中没有RestController,所以需要手动将结果转成JSON,使用阿里巴巴提供的fastjson工具包 JSONObject.toJSONString(error)
响应数据通过response这个对象实现,getWriter()获取输出流,使用writer()将字符串响应给浏览器
解析令牌看对错是用的try-catch
把@。。的注释注释掉,就相当于注释掉了这个Filter
12.13 登录校验-Interceptor-入门
第二个方法是在controller方法运行之后再执行
拦截器当中要拦截所有的资源是/**
注册配置拦截器需要定义一个配置类
加上注解@Configuration说明是一个配置类
addInterceptors方法用来注册拦截器
registry.addInterceptor(loginCheckInterceptor)添加拦截器loginCheckInterceptor
需要把loginCheckInterceptor注入进来
registry.addInterceptor(loginCheckInterceptor).addPathPatterns(“/**”)指拦截所有的资源
.excludePathPatterns(“/login”)指排除/login这个路径
12.14 登录校验-Interceptor-详解
Tomcat不识别controller程序,但是识别serverlet程序,因为tomcat是一个serverlet容器,springweb中提供了一个serverlet 前端控制器,教DispatcherServlet
12.15 登录校验-Interceptor-登录校验拦截器
Filter和Interceptor发行的逻辑不一样