关于struts 2拦截器和servlet过滤器的功能

时间:2012-05-29 06:11:24

标签: struts2

我有一个查询,因为我最近开始探索struts 2,但请注意,在struts 2中我们有拦截器,在servlet中我们有过滤器也执行相同的任务。那么struts 2中是否需要拦截器,什么两者之间的区别。

2 个答案:

答案 0 :(得分:1)

你以其他方式接受了这个概念.Struts2使用Filter拦截给予框架的每个请求。

过滤器“是Servlet规范的一部分;换句话说,它们是Servlet API的一部分。

interceptors是Struts 2框架的一部分,并且只是STruts 2框架完成的请求处理的一部分。如果您使用的是Struts 2,则应该使用拦截器来绕过Struts包装功能2个动作。

简短拦截器是一组可重用的组件,可以在各个地方使用.Struts2创建了一组拦截器来处理每个Action请求的常见任务,如数据传输,数据转换,验证等。

答案 1 :(得分:1)

我能想到的几点差异:

  • Filters是Java EE的一部分,拦截器是Struts的一部分。
  • 过滤器不能是特定于操作的,而是特定于URL(有时可能表示特定于操作),它们只能映射到Servlet。
  • 文件管理器更适用于部署者(虽然开发人员也使用它们,但如果部署者有足够的知识可以在部署期间更改),部署者可以选择配置哪些过滤器将被调用哪个请求,而拦截器是针对开发人员的,他们决定如何在执行操作之前添加逻辑。
  • Method filtering在过滤器中不可用,但可以在拦截器中使用。
  • 如果你没有处理Struts框架的请求,你不能使用拦截器说你使用Servlet来处理特定的请求。

编辑:移动评论作为答案的一部分:

作为模式的拦截器不是特定于Struts2的,并且在Spring,Hibernate e.t.c中可用