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

深圳电子网站建设一站式网页设计服务平台

深圳电子网站建设,一站式网页设计服务平台,wordpress 主页排序,怎么在百度上做推广上首页目录 1 拦截器介绍 2 创建一个拦截器类 3 配置拦截器 1 拦截器介绍 在 SpringMVC 中,拦截器 (Interceptor) 是一种用于拦截 HTTP 请求并在请求处理之前或之后执行自定义逻辑的组件。拦截器可以用于实现以下功能: 权限验证:在请求处理之前…

目录

1 拦截器介绍

2 创建一个拦截器类

3 配置拦截器


1 拦截器介绍

        在 SpringMVC 中,拦截器 (Interceptor) 是一种用于拦截 HTTP 请求并在请求处理之前或之后执行自定义逻辑的组件。拦截器可以用于实现以下功能:

  • 权限验证:在请求处理之前进行用户身份验证和授权
  • 日志记录:记录请求的相关信息,如请求路径、参数、处理时间等
  • 异常处理:捕获并处理请求处理过程中抛出的异常
  • 性能监控:统计请求的响应时间、吞吐量等性能指标
  • 数据转换:在请求处理之前或之后对请求或响应的数据进行转换或修改
  • 缓存控制:在请求处理之前检查缓存,决定是否从缓存中获取数据

从以上功能可以看出,拦截器和过滤器作用很相似,但它们存在一些区别。

  • 层次结构:拦截器是 SpringMVC 框架特有的组件,不依赖 servlet 容器,过滤器是 Web 容器级别的组件,依赖 servlet 容器,可以应用于任何 Web 应用
  • 拦截范围:拦截器只能对 SpringMVC 的请求起作用,而过滤器则可以对几乎所有的请求起作用。拦截器可以获取 Spring 容器中的各个 bean,而过滤器就不行,在拦截器注入一个 service,可以调用业务逻辑
  • 触发时机:拦截器在 SpringMVC 的控制器方法被调用之前或之后触发,可以拦截并处理控制器方法的调用。过滤器在 HTTP 请求到达 Web 服务器之前或之后触发,可以在请求进入应用 (SpringMVC) 之前或响应返回给客户端之前进行处理
  • 调用顺序:过滤器在拦截器之前被调用,它们都可以按照 XML 文件中的配置顺序依次执行或注解 @Order 指定的顺序执行

2 创建一个拦截器类

        创建一个拦截器类需要实现 HandlerInterceptor 接口,该接口包括三个方法:preHandle、postHandle 和 afterCompletion。在这些方法中,可以编写拦截器的逻辑。

  • preHandle:控制器方法执行之前执行 preHandle(),其 boolean 类型的返回值表示是否拦截或放行,返回 true 表示放行,即调用控制器方法;返回 false 表示拦截,即不调用控制器方法
  • postHandle:控制器方法执行之后,渲染视图之前执行 postHandle()
  • afterComplation:处理完视图和模型数据,渲染视图完毕之后执行 afterComplation()
public class CustomInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {// 在处理器执行之前调用String userName=request.getParameter("userName");String password = request.getParameter("password");if (userName==null||password==null){response.setStatus(500);response.setContentType("text/html; charset=UTF-8");response.getWriter().print("参数缺失");return false;}//进行用户校验if (userName.equals("admin")&&password.equals("admin")){return true; // 返回true继续执行,返回false中断执行}else {response.setStatus(500);response.setContentType("text/html; charset=UTF-8");response.getWriter().print("用户名或密码错误");return false;}}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {// 在处理器执行之后,返回ModelAndView之前调用}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {// 在整个请求处理完成后调用}
}

3 配置拦截器

基于注解

addPathPatterns 用于设置拦截哪些请求,excludePathPatterns 用于设置不拦截哪些请求

@Configuration
public class MvcConfig implements WebMvcConfigurer {@Autowiredprivate CustomInterceptor customInterceptor ;@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(customInterceptor).addPathPatterns("/**").excludePathPatterns("/error");}
}

基于 XML

通过 <mvc:mapping> 设置需要拦截的请求,通过 <mvc:exclude-mapping> 设置需要排除的请求,即不需要拦截的请求
<mvc:interceptors><mvc:interceptor><!-- 拦截所有 URL --><mvc:mapping path="/**"/><!-- 不拦截 /testRequestEntity/ --><mvc:exclude-mapping path="/testRequestEntity"/><-- 拦截器类 --><bean class="com.example.CustomInterceptor" /></mvc:interceptor>
</mvc:interceptors>

注:对于多个拦截器,前面的拦截器不通过,即 preHandle() 返回 false,中断后续执行。

http://www.yayakq.cn/news/168675/

相关文章:

  • html5 图片网站网站做优化公司
  • 安徽省高等级公路工程建设指挥部网站什么网站可以做调查
  • 做一个电影网站需要多少钱手机网站页面尺寸
  • 上海企业建站代理注册企业邮箱
  • 哪个公司的网站制作衡阳网站优化方案
  • 建一个设计网站要多少钱网络游戏的利与弊
  • 天津做网站价格西安东郊做网站
  • 超市代理商网站模板微网站定制开发
  • 深圳商业网站建设哪家专业网站设计的步骤
  • 网站设计制作哪家好济南品质网站建设费用
  • 建设部网站是什么网站建设工程安全员教育网站
  • 大连网站建设招聘网手机网站预览
  • 湖州 外贸网站建设做中介卖房子开哪个网站
  • 长沙网站推广seo长沙百度网站优化
  • 网站建设 焦作许昌市建设路小学网站
  • 济南模板建站多少钱有实力自适应网站建设哪家好
  • 做网站需要多少人win2003 建设网站
  • 网站开发后端语言如何开电商店铺
  • 免费的写作网站鄂州建设网站
  • 南京网站建设物业网站模板下载
  • 深圳做网站的公司哪家好未来产品设计
  • 网页设计实训报告大专北京seo编辑
  • 内蒙古网站开发网站备案域名证书
  • 刚开始做网站要传数据库吗做电音的软件的专业下载网站
  • 南京建设机械网站织梦自定义表单做网站在线留言
  • 外贸企业网站优化做外贸推广的公司
  • 新手学做网站12天婴域名做网站出售合法吗
  • 浙江省建设建材工会网站世界500强企业排名2024最新名单
  • 政务公开与网站建设工作总结存在问题和困难广东做网站策划
  • 做一个网站维护多少钱软件推广平台有哪些?哪个比较好