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

一级a做爰片免费网站国语版的小程序做网站

一级a做爰片免费网站国语版的,小程序做网站,设计好的建设网站,上海外贸网站搭建Spring MVC 提供了一套拦截器(Interceptor)机制,主要用于处理 Web 请求到达控制器之前或响应离开控制器之后执行一些操作。拦截器可以用于执行预处理(如验证用户身份)和后处理(如清理资源或修改响应&#x…

Spring MVC 提供了一套拦截器(Interceptor)机制,主要用于处理 Web 请求到达控制器之前或响应离开控制器之后执行一些操作。拦截器可以用于执行预处理(如验证用户身份)和后处理(如清理资源或修改响应)。拦截器可以用来执行一系列的任务,如身份验证、权限检查、请求/响应处理、日志记录等。

1.Handler 拦截器

Handler 拦截器是 Spring MVC 中最常见的拦截器类型。 Handler 拦截器实现 HandlerInterceptor 接口。

该接口定义了三个方法:

  1. preHandle:

    • 方法签名: boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception;
    • 用途: 在控制器方法调用之前执行。
    • 返回值: 如果返回 true,则控制器方法将被调用;如果返回 false,则控制器方法不会被调用,并且后续的拦截器也不会被调用。
  2. postHandle:

    • 方法签名: void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception;
    • 用途: 在控制器方法调用之后执行,但在视图渲染之前。
    • 参数:
      • request: 当前请求。
      • response: 当前响应。
      • handler: 被调用的控制器实例。
      • modelAndView: 控制器方法返回的模型和视图。
  3. afterCompletion:

    • 方法签名: void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception;
    • 用途: 在整个请求完成后执行,无论是否出现异常。
    • 参数:
      • request: 当前请求。
      • response: 当前响应。
      • handler: 被调用的控制器实例。
      • ex: 如果在请求处理过程中出现了异常,则此参数为异常对象;否则为 null

2.实现示例

下面是一个简单的 Handler 拦截器示例:

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class MyHandlerInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("Pre Handle: " + request.getMethod() + " " + request.getRequestURI());return true; // 继续处理请求}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println("Post Handle: " + request.getRequestURI());}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println("After Completion: " + request.getRequestURI());}
}

3.配置拦截器

要使拦截器生效,你需要将其注册到 Spring MVC 的配置中。这可以通过 XML 配置文件或 Java 配置类来实现。

3.1.XML 配置示例

<mvc:interceptors><bean class="com.example.MyHandlerInterceptor" />
</mvc:interceptors>

3.2.Java 配置示例

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration
public class WebConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new MyHandlerInterceptor()).addPathPatterns("/**") // 指定拦截器的应用路径.excludePathPatterns("/resources/**", "/static/**"); // 排除静态资源}
}

4.与过滤器Filter比较

Spring MVC 中的拦截器(Interceptor)和过滤器(Filter)都是处理 Web 请求的重要机制,但它们之间存在一些关键的区别。下面将详细比较这两种机制:

1. 概念区别

  • 过滤器 (Filter):

    • 过滤器是 Servlet 规范的一部分,因此它适用于所有基于 Servlet 的容器,包括 Spring MVC。
    • 过滤器可以在请求到达任何其他组件之前和响应发送给客户端之后执行。
    • 过滤器可以应用于整个 Web 应用程序,也可以针对特定 URL 模式。
  • 拦截器 (Interceptor):

    • 拦截器是 Spring MVC 特有的概念,它只能在 Spring MVC 上下文中使用。
    • 拦截器主要用于处理 HTTP 请求和响应的生命周期,但仅限于那些通过 Spring MVC DispatcherServlet 处理的请求。
    • 拦截器可以针对特定的控制器方法或一组控制器方法。

2. 生命周期

  • 过滤器 (Filter):

    • 过滤器在整个应用生命周期内只初始化一次,并且每个请求/响应都会经过过滤器链。
    • 过滤器可以实现 init()doFilter()destroy() 方法。
    • doFilter() 方法在每次请求时调用,而 init()destroy() 分别在容器初始化过滤器和销毁过滤器时调用。
  • 拦截器 (Interceptor):

    • 拦截器也只初始化一次,但它们仅在请求到达 Spring MVC DispatcherServlet 时生效。
    • 拦截器可以实现 preHandle()postHandle()afterCompletion() 方法。
    • preHandle() 在控制器方法之前调用,postHandle() 在控制器方法之后但视图渲染之前调用,afterCompletion() 在整个请求完成后调用。

3. 配置方式

  • 过滤器 (Filter):

    • 过滤器可以通过部署描述符(web.xml 文件)或 Java 配置类(通过 FilterRegistrationBean)来配置。
    • 过滤器需要指定 URL 模式,以确定哪些请求应通过该过滤器。
  • 拦截器 (Interceptor):

    • 拦截器可以通过 XML 配置文件或 Java 配置类来配置。
    • 拦截器可以针对特定的控制器方法或一组控制器方法,通过指定路径模式来配置。

4. 适用场景

  • 过滤器 (Filter):

    • 通常用于执行全局性的操作,如编码转换、登录验证、安全过滤等。
    • 适合在请求到达任何其他组件之前执行的操作,例如登录检查、安全过滤、压缩等。
  • 拦截器 (Interceptor):

    • 更侧重于与 Spring MVC 相关的功能,如权限检查、数据校验、日志记录等。
    • 适合在控制器方法之前或之后执行的操作,例如数据预处理、视图后处理、资源清理等。
http://www.yayakq.cn/news/128788/

相关文章:

  • 个人网页模板网站一个人完成网站建设
  • 沈阳家用电梯公司网站制作php企业网站模板下载
  • 咖啡网站设计模板净化科技网站建设
  • 网站站外优化做电工的有接单的网站吗
  • 建网站不花钱免费建站福州网站建设询q479185700上快
  • 优化设计六年级上册答案南宁网站关键字优化
  • 网站设计视频简单电子商务网站建设
  • 二手车 东莞网站建设中国网站建设新闻
  • 怎么做公司网站竞价WordPress做app下载
  • 深圳地铁建设集团网站德州口碑好的网站制作公司
  • 网站建设信息在哪儿发布wordpress 大型站
  • 网站开发的软件支持企业年报入口官网查询系统
  • html网站开发实例网站谁建设的
  • 企业网站建设的管理制度广西壮族自治区简称
  • 浦东区网站建设专业教育网站建设
  • 受欢迎的锦州网站建设获取网站物理路径
  • 临清做网站花都区水务建设管理中心官方网站
  • 织梦网站图片怎么修改wordpress头部文字改不了
  • 织梦网站装修公司源码沧州网络制作公司有哪些
  • 备案 新增网站万宁市住房和城乡建设厅网站
  • 网站建设的扩展性分析网站建设为什么不清晰
  • 网站域名注册基本流程绿植租摆网站建设
  • 洪泽网站建设做图骂人的图片网站
  • 给人做网站网站犯法嘛山东泰安房价2023最新价格
  • 做兼职的网站有哪些工作内容群辉docker安装wordpress
  • 长春门户网站建设制作商城软件开发
  • 找人做网站去哪里淘宝指数
  • ico 众筹网站开发上海 政务网站建设情况
  • 网站开发公司经营范围wordpress阅读次数
  • 深圳网站建设 利科技公司内网站建设