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

怎么自己建立网站及建立网站方法辽宁网站建设学校

怎么自己建立网站及建立网站方法,辽宁网站建设学校,淘宝上的网站建设为什么便宜,专门做软陶的网站目录 一、拦截器#xff08;Interceptor#xff09;和过滤器#xff08;Filter#xff09;#xff1a;都是“守门员”#xff01;二、如何实现拦截器和过滤器#xff1f;三、拦截器和过滤器的区别四、执行顺序五、真实的应用场景六、总结 #x1f31f;如果喜欢作者的讲… 目录 一、拦截器Interceptor和过滤器Filter都是“守门员”二、如何实现拦截器和过滤器三、拦截器和过滤器的区别四、执行顺序五、真实的应用场景六、总结 如果喜欢作者的讲解方式关注作者不迷路同时也可以看看我的其他文章 感谢 从乐高积木到乐队指挥用最通俗易懂的方式带你玩转 Spring Boot Bean 就让我用这篇文章来讲解 SpringBoot 的拦截器和过滤器吧给它安排明白 一、拦截器Interceptor和过滤器Filter都是“守门员” 想象一下你的 SpringBoot 应用就像一个豪华酒店。 过滤器Filter 就像酒店大门口的保安负责检查所有进出酒店的人请求。它可以决定是否允许客人进入或者在客人进入前做一些处理比如检查身份证、测量体温️。拦截器Interceptor 就像酒店内部各个楼层的楼层经理‍只负责检查进入特定楼层Controller的客人。它可以在客人进入楼层前、进入楼层后、离开楼层后都进行干预比如登记访客信息、提供楼层指引️。 二、如何实现拦截器和过滤器 1. 过滤器Filter 步骤一 创建一个类实现 javax.servlet.Filter 接口。步骤二 实现 doFilter() 方法。这个方法就是过滤器的核心逻辑在这里你可以对请求和响应进行处理。步骤三 使用 WebFilter 注解或者在 WebConfig 类中注册过滤器。 // 方式一使用 WebFilter 注解 WebFilter(urlPatterns /*, filterName MyFilter) // 拦截所有请求 public class MyFilter implements Filter {Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {System.out.println(过滤器请求来了我要检查一下);// 可以对 request 和 response 进行处理HttpServletRequest req (HttpServletRequest) request;String uri req.getRequestURI();System.out.println(请求的URI uri);// 放行让请求继续往下走chain.doFilter(request, response);System.out.println(过滤器请求走了我要记录一下);} }// 方式二在 WebConfig 类中注册 Configuration public class WebConfig {Beanpublic FilterRegistrationBeanMyFilter myFilterRegistrationBean() {FilterRegistrationBeanMyFilter registration new FilterRegistrationBean();registration.setFilter(new MyFilter());registration.addUrlPatterns(/*); // 拦截所有请求registration.setName(MyFilter);registration.setOrder(1); // 设置优先级数字越小优先级越高return registration;} }2. 拦截器Interceptor 步骤一 创建一个类实现 org.springframework.web.servlet.HandlerInterceptor 接口。步骤二 实现 preHandle()、postHandle()、afterCompletion() 方法。 preHandle()在 Controller 处理请求之前调用可以进行权限验证、参数校验等。如果返回 false则请求会被拦截不会继续执行。postHandle()在 Controller 处理请求之后但在视图渲染之前调用可以对 ModelAndView 进行修改。afterCompletion()在整个请求处理完毕之后调用可以进行资源清理、日志记录等。 步骤三 创建一个配置类实现 org.springframework.web.servlet.config.annotation.WebMvcConfigurer 接口并重写 addInterceptors() 方法将拦截器注册到 Spring 容器中。 public class MyInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println(拦截器Controller 要处理请求了我要先检查一下‍♀️);// 可以进行权限验证、参数校验等String token request.getHeader(token);if (token null || token.isEmpty()) {System.out.println(拦截器没有 token拒绝访问);response.setStatus(401); // 返回未授权状态码return false; // 拦截请求}return true; // 放行请求}Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println(拦截器Controller 处理完请求了我可以修改 ModelAndView);// 可以对 ModelAndView 进行修改if (modelAndView ! null) {modelAndView.addObject(message, 拦截器添加的额外信息);}}Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println(拦截器请求处理完成了我可以清理资源、记录日志);// 可以进行资源清理、日志记录等} }Configuration public class InterceptorConfig implements WebMvcConfigurer {Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new MyInterceptor()).addPathPatterns(/api/**) // 拦截 /api/ 下的所有请求.excludePathPatterns(/api/login); // 排除 /api/login 请求} }三、拦截器和过滤器的区别 特性过滤器Filter拦截器Interceptor实现方式实现 javax.servlet.Filter 接口实现 org.springframework.web.servlet.HandlerInterceptor 接口拦截范围拦截所有进出 Servlet 容器的请求拦截特定的 Controller 方法执行时机在 DispatcherServlet 之前和之后执行在 Controller 方法执行之前、之后和完成之后执行依赖性不依赖 Spring 容器依赖 Spring 容器可以访问 Spring 上下文功能字符编码转换、请求内容过滤、敏感词过滤等权限验证、日志记录、参数校验等精确度粗粒度只能拦截 URL细粒度可以访问 HandlerMethod获取方法信息 总结 过滤器 拦截所有请求不依赖 Spring功能比较通用。拦截器 拦截特定 Controller 方法依赖 Spring功能更精细。 四、执行顺序 过滤器Filter在 DispatcherServlet 之前执行。拦截器Interceptor preHandle()在 Controller 方法执行之前执行。Controller 方法执行。postHandle()在 Controller 方法执行之后但在视图渲染之前执行。视图渲染。afterCompletion()在整个请求处理完毕之后执行。 记住 多个过滤器和拦截器可以配置执行顺序通常通过 order 属性或者 Order 注解来设置数字越小优先级越高。 五、真实的应用场景 过滤器 字符编码转换 统一设置请求和响应的字符编码避免乱码。XSS 攻击防御 过滤请求中的恶意脚本防止 XSS 攻击。日志记录 记录所有请求的 URL、IP 地址等信息。 拦截器 权限验证 检查用户是否已登录是否有权限访问特定资源。参数校验 校验请求参数的合法性防止恶意请求。性能监控 记录 Controller 方法的执行时间分析性能瓶颈。防止重复提交 避免用户重复提交表单。 六、总结 过滤器 就像酒店大门口的保安啥人都拦主要做一些通用的检查比如身份证、体温啥的。拦截器 就像楼层经理只管特定楼层的人可以做更细致的检查比如登记访客信息、提供楼层指引。执行顺序 先保安再楼层经理。保安先检查楼层经理在客人进房间前、进房间后、离开房间后都可以管。 如果编写了AOP逻辑会在拦截器之后执行相关内容请看 被重复代码逼疯AOP来当“舔狗”日志/事务/权限随叫随到 希望这篇文章能让你有趣的理解 SpringBoot 的拦截器和过滤器
http://www.tj-hxxt.cn/news/135465.html

相关文章:

  • 360网站导航公司地址怎么做网页制作教程田田田田田田田田田田田田田田
  • 网站发布新闻的好处 seowordpress theme 权限
  • 网站的在线支付怎么做哈尔滨建站流程
  • 哪些是+joomla做的网站网站后台seo优化如何做
  • 专业外贸网站建设_诚信_青岛微信开放平台怎么跳过
  • 桂林商品房做民宿在哪个网站登记好wordpress用户邮箱验证失败
  • 医院网站建设与维护题库凡客建站登陆
  • 莆田专业网站建设公司价格沈阳的网站制作公司
  • 怎样用文本建一个网站怎么做外国网站流量
  • 贵卅省住房和城乡建设厅网站设计网站大全下载
  • 网络教学网站建设公司名称logo设计
  • 保山网站制作用div做网站中间部分
  • 手机网站 制作wordpress信息流主题
  • 河北邢台官方网站wordpress手机页面没有注册
  • 黄村网站建设价格常见的三种网站类型
  • 怎让做淘宝网站微商城开发用华网天下首选
  • 网站升级维护需要多久信息流广告代理公司排名
  • 网站公司排行榜长沙微信群
  • 色一把做最好的网站南宁制作网站服务商
  • 武进网站建设机构做名宿比较好的网站
  • 网站收款即时到账怎么做的如何选择南京网站建设
  • 品牌网站建设内容网站开发服务计入什么科目
  • 怎么给网站刷流量wordpress编辑器自动加p标签
  • 唐山公司网站建设 中企动力济南哪家公司做网站好
  • 深圳市网站建设制作设计品牌怎么自己做彩票网站
  • 网站自动更新时间代码wordpress哪个主题适合做网址导航
  • 哪些网站有搜索引擎作弊的呼和浩特公司做网站
  • 青岛设计网站的公司哪家好下载的网站模板怎么编辑
  • 网站建设绿茶a站怎么进
  • 河南商务学校网站建设学建筑设计出来能干嘛