当前位置: 首页 > 面试题库 >

Spring HandlerInterceptor与Servlet过滤器

国高杰
2023-03-14
问题内容

现在可以将Spring中的HandlerInterceptor s配置为仅使用来在某些URL上调用<mvc:interceptors>

Servlet过滤器可以实现相同的功能(日志记录,安全性等)。那么应该使用哪一个呢?

我认为使用Interceptor,可以使用ModelAndView对象与模型一起使用,因此它具有更多的优势。谁能提出过滤器或拦截器比其他方法更具优势的方案?


问题答案:

org.springframework.web.servlet.HanderInterceptor接口的JavaDoc本身有两个段落讨论这个问题:

HandlerInterceptor基本上类似于Servlet 2.3过滤器,但与后者相反,它仅允许自定义预处理以及禁止执行处理程序本身和自定义后处理的选项。过滤器功能更强大,例如,它们允许交换传递到链中的请求和响应对象。请注意,在应用程序上下文中的HandlerInterceptor web.xml中配置了过滤器。

作为基本准则,与处理程序相关的细粒度预处理任务是HandlerInterceptor实现的候选对象,尤其是分解出的公共处理程序代码和授权检查。另一方面,过滤器非常适合请求内容和视图内容处理,例如多部分表单和GZIP压缩。这通常显示何时需要将过滤器映射到某些内容类型(例如图像)或所有请求。



 类似资料:
  • 问题内容: Servlet和Filter有什么区别?您建议使用什么来授权页面? 问题答案: 当你要根据特定条件过滤和/或修改请求时,请使用。使用时要控制,预处理和/或后处理请求。 在Java EE的教程中提到有关筛选如下: 筛选器是可以转换请求或响应的标头和内容(或两者)的对象。过滤器与Web组件的不同之处在于,过滤器本身通常不会创建响应。相反,过滤器提供的功能可以“附加”到任何类型的Web资源。

  • Servlet 过滤器可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息。 可以将一个或多个 Servlet 过滤器附加到一个 Servlet 或一组 Servlet。Servlet 过滤器也可以附加到 JavaServer Pages (JSP) 文件和 HTML 页面。调用 Servlet 前调用所有附加的 Servlet 过滤器。 Servlet 过滤器是可用于 Servlet

  • 我正在研究一个合作医疗系统。 我的代码在url调用的servlet的

  • 我有下面的servlet过滤器。

  • 问题内容: “过滤后的查询和过滤器”与“根查询和过滤器”之间有什么区别吗?例如 情况1: 情况2: 我在http://elasticsearch-users.115913.n3.nabble.com/Filtered-query-vs-using- filter-outside-td3960119.html中 找到了此讨论,但所引用的URL是404,并且解释过于简洁我。 请示教或提供指出这些区别的

  • 我有一个简单的过滤器,用于检查请求是否包含一个带有静态密钥的特殊头(无用户身份验证),以保护endpoint。这个想法是,如果键不匹配,抛出一个,然后映射到带有注释的类的响应。但是我不能让它工作。我的未被调用。 客户端 访问禁止例外 例外控制器 我错在哪里了?简单的servlet过滤器可以与Spring Boot的异常映射一起工作吗?