tnblog
首页
视频
资源
登录

拦截器-简介&自定义拦截器&参数与配置 01

5691人阅读 2022/8/6 12:09 总访问:1590334 评论:0 收藏:0 手机
分类: SpringMVC

一、拦截器简介

  • 拦截器(Interceptor)是一种动态拦截方法调用的机制

  • 作用:

          1.在指定的方法调用前后执行预先设定后的的代码

          2.阻止原始方法的执行

  • 核心原理:AoP思想

  • ·拦截器链:多个拦截器按照一定的顺序,对原始被调用功能进行增强



三、自定义拦截器开发过程(指功能不够时自己开发,springmvc有拦截器的)

1、拦截器开发

  • 制作拦截器功能类(通知)

  • 配置拦截器的执行位置(切入点)


1.1拦截器开发入门
实现接口


在springMVC的配置里配置

案例、
结构、

环境、
1、pom.xml

  1. <!--    servlet规范-->
  2. <dependency>
  3.     <groupId>javax.servlet</groupId>
  4.     <artifactId>javax.servlet-api</artifactId>
  5.     <version>3.1.0</version>
  6.     <scope>provided</scope>
  7. </dependency>
  8. <!--   jsp -->
  9. <dependency>
  10.     <groupId>javax.servlet.jsp</groupId>
  11.     <artifactId>jsp-api</artifactId>
  12.     <version>2.1</version>
  13.     <scope>provided</scope>
  14. </dependency>
  15. <!--      spring-->
  16. <dependency>
  17.     <groupId>org.springframework</groupId>
  18.     <artifactId>spring-webmvc</artifactId>
  19.     <version>5.1.9.RELEASE</version>
  20. </dependency>
  21. <!-- spring Mvc-->
  22. <dependency>
  23.     <groupId>org.springframework</groupId>
  24.     <artifactId>spring-context</artifactId>
  25.     <version>5.1.9.RELEASE</version>
  26. </dependency>
  27. <!-- spring Web-->
  28. <dependency>
  29.     <groupId>org.springframework</groupId>
  30.     <artifactId>spring-web</artifactId>
  31.     <version>5.1.9.RELEASE</version>
  32. </dependency>

2、web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns="http://java.sun.com/xml/ns/javaee"
  3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  5.           http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  6.          version="3.0">
  7.     <!--用于解决中文乱码-->
  8.     <filter>
  9.         <filter-name>CharacterEncodingFilter</filter-name>
  10.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  11.         <init-param>
  12.             <param-name>encoding</param-name>
  13.             <param-value>UTF-8</param-value>
  14.         </init-param>
  15.     </filter>
  16.     <filter-mapping>
  17.         <filter-name>CharacterEncodingFilter</filter-name>
  18.         <url-pattern>/*</url-pattern>
  19.     </filter-mapping>
  20.     <!--拦截-->
  21.     <servlet>
  22.         <servlet-name>DispatcherServlet</servlet-name>
  23.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  24.         <init-param>
  25.             <param-name>contextConfigLocation</param-name>
  26.             <param-value>classpath*:spring-mvc.xml</param-value>
  27.         </init-param>
  28.     </servlet>
  29.     <servlet-mapping>
  30.         <servlet-name>DispatcherServlet</servlet-name>
  31.         <url-pattern>/</url-pattern>
  32.     </servlet-mapping>
  33. </web-app>

3、controller层的方法

4、实现拦截接口

5、spring-mvc.xml

6、测试路径:http://localhost:8080/handleRun
四、拦截器配置与拦截器方法参数
1、拦截器参数
1.1、

1.2、

1.3、

2、拦截器配置项

评价

拦截器-拦截器配置 02

一、用法:二、责任链模式三、小结拦截器链配置方式拦截器链的运行顺序preHandler:与配置顺序相同,必定运行postHandler:与...

Windows平台分布式架构实践 - 负载均衡

原文地址: https://www.cnblogs.com/atree/p/windows_loadbalancer.html 概述  最近.NET的世界开始闹腾了,微软官方终...

分布式-微服务-集群的区别

1.分布式将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。区...

可输入下拉文本框,据输入,动态加载数据 jquery-editable-select

用到一个jquery-editable-select的控件github地址:https://github.com/indrimuska/jquery-editable-select这个插件的原理是...

Python学习 1-安装

Ptyhon非常简单易用的面向对象的脚本语言,跨平台 入门简单python分2个版本 Python2、Python3。Python 2.7 将于 2020 年结...

Python学习 2-基本语法

基础:python脚本语言,不需要编译(像C#、Java、PHP、C++需要编译成机器可识别的语言), 而直接由解释器解释,很多地方类似...

Python学习 3-爬虫基本介绍 及简单实例

爬虫爬虫就是一只猪,蜘蛛。。 网络蜘蛛。互联网是一个网由各个网站组成。无数的蜘蛛就在网上到处爬,根据网址从一个网站爬...

Redis基础安装操作-windows版

一、下载 redis官方没有提供windows版本,需要从微软的git下载releases版二、安装,启动1.解压出来 启动服务 可能会双击会...

Service-stack.redis配置连接池与读写分离(处理并发相关等)

配置连接池与读写分类 //写节点(主节点) List&lt;string&gt;writes=newList&lt;string&gt;(); writes.Add(&quot;123456a...

Service-stack.redis操作Redis 并发相关问题

1:不要循环去创建对象,循环去访问redis的时候要特别注意,应该传一个集合进去处理,而不是循环去处理2:要注意释放对象,使...

皓月有趣论题 - U盘或其他存储设备 存入数据后 质量是否发生改变

转自我的个人博客 http://blog.axibug.com之前、朋友提出“U盘或其他存储设备 存入数据后 质量是否发生改变”的问题。那么...

Python实例 1-日志抓取处理 补错(附日志小技巧)

有时候数据出了问题,可以从日志中恢复数据(如果你没记日志..没备份..→_→..)一、日志展示介绍个平常自己用的小方法,如...

Python实例 2-12306抢票(一) 登陆

开坑年关将近,终于对12306下手了,,平安夜撸代码,攻克了12306的登陆 2018-12-24 22:16:00没错 这篇博客就写从零开始的异...

Python实例 2-12306抢票(二) 下单

第二篇 刷票与下单1.记住登陆上一篇写了登陆:http://www.tnblog.net/cz/article/details/162 为了方便调试 不让每次登陆都...

Vue.js常用指令,事件绑定等,Vue过滤器解析状态过滤器多个参数。vue表格状态解析。vue解析类型,element ui解析类型,状态,el-tag

按照html的编码显示:v-html&lt;div class=&quot;font_info&quot; v-html=&quot;item.Content&quot;&gt;{{item.Content}}&l...
没有个性,不需要签名
排名
4
文章
473
粉丝
3
评论
2
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术