企业网站建设的背景和目的百度爱采购优化软件

news/2025/9/23 7:15:09/文章来源:
企业网站建设的背景和目的,百度爱采购优化软件,毕节建设网站,徽章设计制作网站目录 spring中拦截器 过滤器跟拦截器的区别 HandlerInterceptor拦截器 拦截器工作原理 拦截器使用场景 定义拦截器 LoginInterceptor 注册拦截器 MethodInterceptor拦截器 方式一#xff1a;继承 MethodInterceptor 方式二#xff1a;基于注解的AspectJ方…目录 spring中拦截器 过滤器跟拦截器的区别 HandlerInterceptor拦截器 拦截器工作原理   拦截器使用场景         定义拦截器 LoginInterceptor 注册拦截器 MethodInterceptor拦截器 方式一继承 MethodInterceptor 方式二基于注解的AspectJ方式 HandlerInterceptor拦截器与MethodInterceptor拦截器总结 spring中拦截器 在说拦截器之前不得不说一下过滤器有时候往往被这两个词搞的头大。 其实我们最先接触的就是过滤器 你应该知道spring mvc的拦截器是只拦截controller而不拦截jsp,html 页面文件的如果想要拦截那怎么办 这就用到过滤器filter了filter是在servlet前执行的你也可以理解成过滤器中包含拦截器一个请求过来 先进行过滤器处理看程序是否受理该请求 。 过滤器放过后 程序中的拦截器进行处理 。 过滤器跟拦截器的区别 1、拦截器是基于java的反射机制的而过滤器是基于函数回调职责链 2、过滤器依赖与servlet容器而拦截器不依赖与servlet容器 3、拦截器只能对action请求起作用而过滤器则可以对几乎所有的请求起作用 4、拦截器可以访问action上下文、值栈里的对象而过滤器不能 5、在action的生命周期中拦截器可以多次被调用而过滤器只能在容器初始化时被调用一次 6、拦截器可以获取IOC容器中的各个bean而过滤器不行这点很重要在拦截器里注入一个service可以调用业务逻辑。 7、过滤器属于Servlet而拦截器属于springmvc 8、过滤器可以拦截所有请求包括访问静态资源的请求拦截器只能拦截action请求即访问controller的请求。   1过滤器Filter当你有一堆东西的时候你只希望选择符合你要求的某一些东西。定义这些要求的工具就是过滤器。理解就是一堆字母中取一个B 2拦截器Interceptor在一个流程正在进行的时候你希望干预它的进展甚至终止它进行这是拦截器做的事情。理解就是一堆字母中干预他通过验证的少点顺便干点别的东西。   HandlerInterceptor拦截器 HandlerInterceptor是springMVC项目中的拦截器它拦截的目标是请求的地址比MethodInterceptor先执行。 实现一个HandlerInterceptor拦截器可以直接实现HandlerInterceptor接口也可以继承HandlerInterceptorAdapter类。 这两种方法殊途同归其实HandlerInterceptorAdapter也就是声明了HandlerInterceptor接口中所有方法的默认实现而我们在继承他之后只需要重写必要的方法。   拦截器主要应用于登陆校验、权限验证、乱码解决、性能监控和异常处理等功能Spring Boot 同样提供了拦截器功能 拦截器工作原理   一个拦截器只有 preHandle 方法返回 true postHandle 、 afterCompletion 才有可能被执行如果 preHandle 方法返回 false 则该拦截器的 postHandle 、 afterCompletion 必然不会被执行。拦截器不是Filter却实现了Filter的功能其原理在于 所有的拦截器 (Interceptor) 和处理器 (Handler) 都注册在 HandlerMapping 中。 Spring MVC 中所有的请求都是由 DispatcherServlet 分发的。         当请求进入 DispatcherServlet.doDispatch() 时候首先会得到处理该请求的 Handler 即 Controller 中对应的方法以及所有拦截该请求的拦截器。拦截器就是在这里被调用开始工作的。 拦截器使用场景         拦截器本质上是面向切面编程AOP符合横切关注点的功能都可以放在拦截器中来实现主要的应用场景包括 -登录验证判断用户是否登录。         -权限验证判断用户是否有权限访问资源如校验token         - 日志记录记录请求操作日志用户ip访问时间等以便统计请求访问量。         -处理cookie、本地化、国际化、主题等。         -性能监控监控请求处理时长等。   定义拦截器 在 Spring Boot 中定义拦截器十分的简单只需要创建一个拦截器类并实现 HandlerInterceptor 接口即可。 HandlerInterceptor 接口中定义以下 3 个方法如下表。 返回值类型 方法声明 描述 boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) 该方法在控制器处理请求方法前执行其返回值表示是否中断后续操作返回 true 表示继续向下执行返回 false 表示中断后续操作。 void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) 该方法在控制器处理请求方法调用之后、解析视图之前执行可以通过此方法对请求域中的模型和视图做进一步修改。 void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) 该方法在视图渲染结束后执行可以通过此方法实现资源清理、记录日志信息等工作。 LoginInterceptor public class LoginInterceptor implements HandlerInterceptor {private final Logger logger LoggerFactory.getLogger(LoginInterceptor.class);Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {String requestURI request.getRequestURI();log.info(请求的URI,requestURI);String token request.getParameter(token);if(StrUtil.isEmpty(token)){response.sendRedirect(/login);}return true;} } 注册拦截器 Configuration public class MyMvcConfig implements WebMvcConfigurer {......Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new LoginInterceptor()).addPathPatterns(/**) //拦截所有请求包括静态资源文件.excludePathPatterns(/register, /login, /css/**, /images/**, /js/**); //放行登录页登陆操作静态资源} } 在指定拦截器拦截规则时调用了两个方法这两个方法的说明如下 addPathPatterns该方法用于指定拦截路径例如拦截路径为“/**”表示拦截所有请求包括对静态资源的请求。 excludePathPatterns该方法用于排除拦截路径即指定不需要被拦截器拦截的请求。 MethodInterceptor拦截器 MethodInterceptor是AOP项目中的拦截器它拦截的目标是方法即使不是controller中的方法。实现MethodInterceptor拦截器大致也分为两种一种是实现MethodInterceptor接口另一种利用AspectJ的注解或配置。 方式一继承 MethodInterceptor public class MethodInvokeInterceptor implements MethodInterceptor { Override public Object invoke(MethodInvocation methodInvocation) throws Throwable { System.out.println(before method invoke); Object object methodInvocation.proceed(); System.out.println(after method invoke); return object; } } 方式二基于注解的AspectJ方式 Component Aspect public class AutoAspectJInterceptor { Around(execution (* com.test.controller..*.*(..))) public Object around(ProceedingJoinPoint point) throws Throwable{ System.out.println(AutoAspectJInterceptor begin around); Object object point.proceed(); System.out.println(AutoAspectJInterceptor end around); return object; } } HandlerInterceptor拦截器与MethodInterceptor拦截器总结 HandlerInterceptor拦截的是请求地址所以针对请求地址做一些验证、预处理等操作比较合适。当你需要统计请求的响应时间时MethodInterceptor将不太容易做到因为它可能跨越很多方法或者只涉及到已经定义好的方法中一部分代码。MethodInterceptor利用的是AOP的实现机制在对一些普通的方法上的拦截HandlerInterceptoer就无能为力了这时候只能利用AOP的MethodInterceptor。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/911714.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

商业网站的基本构成山东省品牌建设促进会网站

全世界只有3.14 % 的人关注了爆炸吧知识在物理书里,有各种物理大佬的照片。他们正襟危坐,他们不苟言笑,他们看起来就很“物理”。但是,知识君想说,谁不是个有血有肉的人啊?!选照片的时候给我好好…

天津建设银行官方网站电商设计网站模板

Redis设置hash,为不同的field设置不同的过期时间 一、背景需求二、具体要求三、代码实现 一、背景需求 最近做了一个小需求,由于系统对接,导致我们的系统在高峰的时候CPU飙升,所以需要在高峰的时候保护系统进程不受影响。 而且还…

网站平台建设属于固定资产吗线上推广方式

类 ~ ~ ~ 一、面向过程和面向对象初步认识a. 面向过程编程b. 面向对象编程例如:无人机送货系统1、面向过程编程方式2、面向对象编程方式 二、类的引入1、定义类的关键字2、栈的手动实现a. C语言实现栈b. C实现栈 三、类的定义类的两种定义方式: 四、类的…

正定城乡建设局网站有没有专门做商铺招商的网站

如下表所示,接口信号能工作在8Gbps及以上速率,由于速率很高,PCB布线设计要求会更严格,在前几篇关于PCB布线内容的基础上,还需要根据本篇内容的要求来进行PCB布线设计。 高速信号布线时尽量少打孔换层,换层优…

做宠物店网站删除wordpress主题底部

更换jdk版本 只需要改下bin目录下的neo4j.bat, 把set "JAVA_HOMEXXXX"加入进去就行 windows SET "JAVA_HOMEc:\...." linux bin目录下 neo4j 在首行添加JAVA_HOME/usr/local/jdk文件夹即可 tomcat 指定jdk 找到bin下的setclasspath.bat文件;在…

娄底网站设计做网站优化

文章目录 前言 一、单链表是什么?二、单链表的实现总结 顺序表的缺点 1.中间/头部的插入删除,时间复杂度为O (N) 2.realloc 扩容(特别是异地扩,需要申请新空间,拷贝数据,释放旧空间)会有不小的…

如何在门户网站做推广方案网站速度提升

线程:数组形成的栈,方法的调用,出栈入栈 1、线程和进程的区别 资源占用:进程是拥有资源的基本单位,不同进程之间不可以共享资源。线程不占有资源,但一个进程内的所有线程可以共享进程内的资源。并发性&am…

两学一做网站无法做题展示型网站有哪些

MySQL是一个强大的开源数据库。随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈。这里提供一些关于Mysql 数据库查询优化的24条优化建议,仅供参考。Mysql 查询优化1、使用慢查询日志,找出执行慢的查询。2、使用 EXPLAIN 来决定查询功能是否合…

哈尔滨大型网站建设电话郑州发布

一、初识Docker 1. 为什么需要 Docker 大型项目组件较多,运行环境也较为复杂,部署时会遇到一些问题: 依赖关系复杂,容易出现兼容性的问题开发、测试、生产环境有差异 Docker 如何解决依赖的兼容问题 将应用的Libs(…

阜宁做网站价格dw网站建设视频下载

道可云元宇宙每日简报(2023年12月7日)讯,今日元宇宙新鲜事有: 青岛市元宇宙领域新产品推介暨产学研对接会举行 为加快推动青岛市元宇宙技术和产业创新,引领下一代互联网发展,青岛市元宇宙领域新产品推介暨…

手机网站如何建立珠海seo推广

目录 架构 环境部署 一、Ansible安装部署 1.yum安装Ansible 2.修改主机清单文件 3.配置密钥对验证 4.ansible-doc 5.看被控主机 二、常用模块 1.Command模块 2.Shell模块 3.Cron模块 1.添加 2.删除 4.User模块 5.Group模块 1.创建组 ​编辑 ​编辑 ​编辑…

高端品牌羽绒服有哪些seo培训机构哪家好

来源:宸元资本一MEMS基本概念和相关产业政策MEMS基本概念微机电系统(MEMS, Micro-Electro-Mechanical System),也叫做微电子机械系统、微系统、微机械等,指尺寸在几毫米乃至更小的高科技装置。微机电系统其内部结构一般…

某财政局网站建设方案当前最好用的wordpress主题

1 Iphone和Ipad同为IOS,设置方法相同。首先进入IOS系统的“设置”程序。 2 点击“通用”进入通用设置,点击“”; 3 选择"添加设置 "; 4 选择L2TP方式,填写必要信息:描述、服务器地址 、您注册充值的账号及密…

网站建设哪个平台好专业团队打造专业品质

我有魔法✨为你劈开信息大海❗ 高效获取AIGC的热门事件🔥,更新AIGC的最新动态,生成相应的魔法简报,节省阅读时间👻 🔥资讯预览 AI生成技术威胁版权保护,水印技术和法律完善是关键 Sam Altman对…

宁波网站优化东莞建网站公司哪个好

整合JDBC 一、导入依赖二、配置Druid————————创作不易,如觉不错,随手点赞,关注,收藏(* ̄︶ ̄),谢谢~~ 接着 第10的 新注解: ConfigurationProperties ConfigurationPropert…

外流网站建设腾讯广告推广怎么做

自然语言处理(NLP)是计算机科学,人工智能,语言学关注计算机和人类(自然)语言之间的相互作用的领域。自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进…

建设网站比较好国内个人网站设计

第七节 讲述了增加model中类的属性,由于数据库中已存在表,表中没有存在新加的列,所以可以删除数据库或者在数据库中新增一列,另可以在controller中新增一个数据库初始化的类,并在Global.asax添加初始化数据库的代码 …

网站搭建代码大全装修设计公司介绍

相信,一直关注着我们的同学们都知道,小思妹分享了好多好多的资料给大家。为了方便新来的同学自取,小思妹又重新整理了一遍,直接点以下标题即可跳转!这是我见过的最全的训练数据集,没有之一!送你…

网站建设昆明如何制作wordpress模板

文章目录 JS原生开发-文件上传-变量&对象&函数&事件JS导入库开发-登录验证-JQuery库&Ajax技术JS导入库开发-编码加密-逆向调试 JS原生开发-文件上传-变量&对象&函数&事件 1、布置前端页面 2、JS获取提交数据 3、JS对上传格式判断 <script>…